以下是Debian系统上优化Kafka配置的关键技巧,涵盖硬件、配置参数、系统调优及监控等方面:
num.partitions):设置为消费者线程数的1.5-2倍,提升并行处理能力。log.segment.bytes:增大日志段大小(如1GB),减少频繁刷盘。log.retention.hours:按业务需求设置保留时间,避免磁盘占满。num.network.threads/num.io.threads:根据CPU核心数调整(建议与CPU核心数一致),提升网络和I/O处理能力。listeners:配置监听协议(如PLAINTEXT://0.0.0.0:9092),支持多协议接入。batch.size:增大批处理大小(如1MB),减少网络请求次数。linger.ms:适当延长发送间隔(如100ms),合并更多消息。compression.type:启用压缩(如snappy/lz4),降低网络传输量。vm.dirty_ratio(如40%)和vm.dirty_background_ratio(如10%),减少脏页频繁刷盘。vm.swappiness为0-10,避免频繁使用交换空间。noatime和nodiratime,减少文件访问开销。-Xms/-Xmx,建议设置为物理内存的50%-70%),避免频繁GC。-XX:+UseG1GC),优化大内存场景下的回收效率。kafka-server-start.sh日志中的错误信息)。log.dirs的mmap模式,减少数据在内存中的拷贝。注意:每次修改配置后需重启Kafka服务,并通过压力测试验证性能变化,避免引入新问题。具体参数需根据业务负载和硬件环境调整。