存储优化
网络优化
net.core.rmem_default=16777216
net.core.wmem_default=16777216
net.core.rmem_max=16777216
net.core.wmem_max=16777216
CPU优化
bash
cpupower frequency-set -g performance
Broker配置
# 增加处理线程数
num.network.threads=8
num.io.threads=16
# 调整日志保留策略
log.segment.bytes=1073741824 # 1GB段大小
log.retention.bytes=-1 # 禁用基于大小的保留
log.retention.hours=168 # 7天保留
# 增加套接字缓冲区
socket.send.buffer.bytes=1048576
socket.receive.buffer.bytes=1048576
socket.request.max.bytes=104857600
# 禁用不必要的功能
auto.create.topics.enable=false
Producer配置
# 批量发送配置
batch.size=65536
linger.ms=5
# 压缩配置
compression.type=lz4 # 或snappy
# 增加缓冲区大小
buffer.memory=67108864
Consumer配置
# 增加每次拉取数据量
fetch.max.bytes=1048576
max.partition.fetch.bytes=1048576
# 调整心跳间隔
heartbeat.interval.ms=3000
session.timeout.ms=10000
文件描述符限制
ulimit -n 100000
echo "* soft nofile 100000" >> /etc/security/limits.conf
echo "* hard nofile 100000" >> /etc/security/limits.conf
内存和交换空间
# 禁用交换空间
swapoff -a
echo "vm.swappiness=1" >> /etc/sysctl.conf
# 调整脏页比例
echo "vm.dirty_background_ratio=5" >> /etc/sysctl.conf
echo "vm.dirty_ratio=60" >> /etc/sysctl.conf
磁盘I/O调度器
echo deadline > /sys/block/sdX/queue/scheduler
分区策略
复制因子
集群扩展
监控指标
性能测试工具
kafka-producer-perf-test
和kafka-consumer-perf-test
通过综合应用以上优化措施,可以显著提高Kafka集群的吞吐量。建议每次只调整少量参数并进行测试,以确定每个变更的实际效果。