以下是Linux环境下Kafka的调优要点,涵盖系统、Kafka配置、JVM及硬件层面:
noatime,nodiratime减少磁盘写入。net.core.wmem_max=16MB、net.core.rmem_max=16MB。vm.swappiness=10(避免频繁交换)。ulimit -n 65535。num.partitions:按CPU核心数设置(建议2-4倍),提升并行度。log.segment.bytes:设为1GB,平衡日志段数量与磁盘I/O。log.flush.interval.messages/log.flush.interval.ms:根据吞吐量调整(如10000条/1000ms)。num.io.threads:设为CPU核心数的2-3倍,优化磁盘读写。default.replication.factor=3,min.insync.replicas=2,确保数据安全。compression.type=snappy(平衡压缩比与速度)。-Xms和-Xmx设为相同值(如8GB),避免动态扩展开销。-XX:+UseG1GC),并设置-XX:MaxGCPauseMillis=20控制暂停时间。tcp_nodelay)并启用多队列网卡(RSS)提升吞吐量。log.flush.scheduler.interval.ms控制刷盘频率。sendfile减少数据拷贝(需结合操作系统配置)。batch.size、linger.ms,启用压缩,增加分区数。linger.ms、fetch.min.bytes,减少批量处理。参考来源:[1,2,3,4,5,6,7,9,10,11]