以下是优化Ubuntu中Kafka配置的关键策略,涵盖硬件、参数、网络及监控等方面:
num.partitions
:设置为消费者线程数的1.5-2倍,平衡负载与并行度。log.segment.bytes
:设为1-2GB,减少日志段数量,降低随机I/O。num.io.threads
:设置为CPU核心数的50%-70%,提升磁盘写入效率。buffer.memory
:设为可用内存的50%-70%(如32GB内存设16GB),优化生产者缓冲。compression.type
:启用lz4
/snappy
压缩(牺牲少量CPU换吞吐量)。acks
:设为all
确保数据可靠性,或1
提升吞吐量(非关键场景)。batch.size
:设为1-5MB,批量发送提升吞吐量。linger.ms
:设为50-100ms,平衡延迟与批量效率。fetch.min.bytes
:设为1MB,减少拉取频次。max.poll.records
:按消费能力设置(如500-1000条/次),避免内存积压。# 增加文件描述符限制
ulimit -n 65535
# 优化TCP性能
sysctl -w net.core.rmem_max=16777216
sysctl -w net.core.wmem_max=16777216
sysctl -w net.ipv4.tcp_tw_reuse=1
sudo ufw disable
log.retention.hours
参数控制保留时间)。参考来源:[1,2,3,4,5,6,8,9,10,11]