在Ubuntu上优化Kafka配置可从硬件、系统参数、Kafka参数及监控等方面入手,具体如下:
ulimit -n 65535
提升文件句柄数。net.core.rmem_max=4MB
)及启用零拷贝相关参数。num.partitions
:设置为消费者线程数的整数倍,提升并行处理能力。replication.factor
:建议3副本,保障数据可靠性。num.io.threads
:设置为CPU核心数的50%~100%,提高磁盘写入效率。log.segment.bytes
:设为1GB~2GB,减少分段数量,降低索引开销。log.retention.hours
:按需设置(如72小时),避免磁盘占满。num.network.threads
:设置为CPU核心数的50%,处理网络请求。compression.type
:启用snappy
或lz4
压缩,减少网络传输量。batch.size
:设置为16KB~1MB,批量发送消息提升吞吐量。linger.ms
:设为50~100ms,允许消息短暂堆积后批量发送。fetch.min.bytes
:设为1MB,减少拉取频率,提升吞吐量。max.poll.records
:根据消费能力设置(如1000条/次),避免内存溢出。sendfile
机制(需配合操作系统参数),减少数据拷贝开销。-Xms4G -Xmx4G
),并使用G1垃圾回收器(-XX:+UseG1GC
)。kafka-producer-perf-test
和kafka-consumer-perf-test
模拟流量,调整参数至最优。注意:所有配置需在测试环境验证后,再部署到生产环境,避免影响业务稳定性。
参考来源: