以下是Kafka在Debian上的性能调优技巧,涵盖配置、硬件、系统及监控层面:
num.partitions
与消费者线程数一致,提升并行处理能力。batch.size
:设为1M-2M,减少网络请求。linger.ms
:设为100ms-200ms,允许更多消息批量发送。compression.type
:选lz4
或snappy
,平衡压缩比与CPU开销。buffer.memory
:设为64M以上,提升缓冲能力。log.flush.interval.messages
/log.flush.interval.ms
:增大批量刷盘间隔,减少磁盘I/O。max.in.flight.requests.per.connection
≥5),提升吞吐量。acks
:all
保证可靠性,1
平衡性能与可靠性。fetch.min.bytes
设为1M,fetch.max.wait.ms
设为1000ms,减少请求频率。max.poll.records
(如500-1000)提升并行度。noatime
挂载选项,减少访问开销。-Xms4G -Xmx4G
),避免频繁GC;预留部分内存给PageCache。net.core.rmem_max
/wmem_max
)。-Xms4G -Xmx4G
(建议为物理内存的50%)。-XX:+UseG1GC
),减少Full GC停顿。echo deadline > /sys/block/sda/queue/scheduler
(针对SSD可尝试noop
)。vm.swappiness=10
,避免内存频繁交换。kafka-topics.sh
:查看分区分布与负载。kafka-consumer-groups.sh
:监控消费滞后量。acks=1
),关键业务需确保acks=all
。参考来源: