以下是Ubuntu中Kafka的优化配置建议,涵盖硬件、参数、网络等多方面:
log.dirs指向高速存储设备。tcp_nodelay、tcp_keepalive_time),增加网络带宽。num.partitions:设置为消费者线程数的1.5-2倍,提升并行处理能力。log.segment.bytes:设为1GB-2GB,减少日志分段数量,降低索引开销。buffer.memory:设置为可用内存的50%-70%,控制生产者/消费者缓冲区大小。batch.size:增大至128KB-1MB,提升批量发送效率。linger.ms:设置为50-100ms,平衡延迟与吞吐量。compression.type:启用snappy或lz4压缩,减少网络传输和存储压力。log.retention.hours:根据业务需求设置(如72小时),自动清理过期数据。num.io.threads:设置为CPU核心数的50%-100%,匹配磁盘I/O能力。num.network.threads:设置为CPU核心数的50%,处理网络请求。kafka-server-start.sh中设置KAFKA_HEAP_OPTS,如-Xms8G -Xmx8G -XX:+UseG1GC,避免频繁GC。ulimit -n 65535增加文件句柄数,支持高并发连接。replication.factor:根据数据重要性设置(通常2-3),平衡冗余与性能。acks:设为all确保数据可靠性,或1提升吞吐量(需权衡)。sendfile系统调用(Kafka默认支持),减少数据拷贝开销。kafka-logs目录,避免磁盘占满。参考来源:[1,2,3,4,5,6,7,9,10,11]