CentOS下Kafka性能提升策略
文件系统选择与挂载优化
推荐使用XFS文件系统(高性能、高伸缩性),挂载时添加noatime选项(禁用文件访问时间更新,减少磁盘写操作)。例如挂载命令:mount -t xfs -o noatime /dev/sdb1 /data/kafka。
内核参数调优
vm.swappiness=1~10(减少交换内存使用,避免OOM Killer终止进程);vm.dirty_background_ratio=5、vm.dirty_ratio=10(控制脏页刷新阈值,平衡磁盘IO与系统性能)。vm.dirty_expire_centisecs=3000(脏页存活时间30秒)、vm.dirty_writeback_centisecs=500(后台刷脏页间隔5秒),优化磁盘写入效率。net.core.rmem_default=262144、net.core.wmem_default=262144;net.ipv4.tcp_rmem=4096 87380 6291456、net.ipv4.tcp_wmem=4096 16384 4194304),提升网络传输能力。硬件资源分配
/data/kafka目录挂载在独立磁盘分区,避免与其他服务争抢IO。分区与副本管理
min.insync.replicas=2(确保至少2个副本同步成功,兼顾可靠性与性能)。I/O与线程优化
日志保留策略
log.retention.bytes(单个分区最大大小)双限制更安全。delete策略(按时间/大小清理),可定期通过kafka-log-dirs工具检查磁盘空间,避免突发数据增长导致故障。批量发送优化
压缩与可靠性
acks=1(Leader确认,平衡吞吐与可靠性,适合大多数业务);acks=all(所有副本确认,高可靠但吞吐降低,适合金融交易等场景)。内存与重试
批量消费与并行度
拉取策略优化
fetch.min.bytes平衡延迟与吞吐(如100ms等待时间可将延迟降低至200ms以内)。实时监控工具
kafka_server_BrokerTopicMetrics_MessagesInPerSec、kafka_network_RequestMetrics_RequestsPerSec),可视化展示集群状态。日志与维护
kafka-configs.sh修改log.retention.hours或使用kafka-delete-records.sh工具删除指定偏移量之前的消息),释放磁盘空间。