Kafka在Linux上的资源消耗优化可从以下方面入手:
- JVM调优:合理设置堆内存(-Xms与-Xmx保持一致),选择G1垃圾回收器,调整GC参数减少暂停时间。
- Kafka配置优化:
- 调整
num.network.threads和num.io.threads为CPU核心数的50%~100%,提升并发处理能力。 - 优化
buffer.memory(建议64MB以上)、batch.size(如1MB)和linger.ms(如100ms),平衡吞吐量与延迟。 - 启用消息压缩(如
compression.type=lz4),减少网络和存储开销。
- 调整
- 系统资源优化:
- 增加文件描述符限制(
ulimit -n 65535),避免连接数受限。 - 调整内核参数(如
vm.swappiness=10、vm.dirty_background_ratio=5),优化内存管理。 - 使用SSD存储,提升磁盘I/O性能,避免随机写。
- 增加文件描述符限制(
- 硬件与网络优化:
- 确保足够CPU核心(建议每节点≥8核),支持多线程处理。
- 增加内存,减少磁盘交换(swap)。
- 配置高性能网络设备,调整TCP参数(如
tcp_nodelay)降低延迟。
- 监控与维护:
- 使用JMX、Prometheus等工具监控CPU、内存、磁盘I/O等指标,及时发现瓶颈。
- 定期清理日志文件,避免磁盘空间不足。
参考来源: