以下是通过配置提高Linux Kafka吞吐量的关键方法:
ulimit -n 65536。net.core.somaxconn=1024、net.ipv4.tcp_max_syn_backlog=8192。num.network.threads(建议2-4倍CPU核心数)和num.io.threads(建议4-8倍CPU核心数)。socket.send.buffer.bytes和socket.receive.buffer.bytes(如1MB-4MB),提升网络传输效率。buffer.memory为可用内存的50%-70%,优化消息缓冲。log.retention.hours和log.segment.bytes,避免日志堆积。batch.size(如16KB-1MB),并适当调整linger.ms(如5-10ms),减少网络请求次数。compression.type(如Snappy/LZ4),并设置acks=1或acks=0(权衡可靠性和吞吐量)。fetch.min.bytes(如1KB-8KB)和fetch.max.wait.ms(如50-100ms),减少拉取频率。-Xms和-Xmx设置为相同值(如16GB),避免GC频繁。-XX:+UseG1GC -XX:MaxGCPauseMillis=50,降低GC延迟。关键参数参考:
| 场景 | 参数 | 推荐值/说明 | 
|---|---|---|
| Broker | num.network.threads | 
8-16(根据CPU核心数调整) | 
buffer.memory | 
16GB-32GB(不超过物理内存70%) | |
| Producer | batch.size | 
32KB-1MB(增大可提升吞吐,但增加延迟) | 
| Consumer | fetch.min.bytes | 
8KB-64KB(减少拉取次数,提升并行度) | 
以上配置需结合实际硬件资源和业务负载调整,优先在测试环境验证后再上线。