kafka的配置详尽、复杂,想要进行全面的性能调优需要掌握大量信息,这里只记录一下我在日常工作使用中走过的坑和经验来对kafka集群进行优化常用的几点。
1.JVM的优化
java相关系统自然离不开JVM的优化。首先想到的肯定是Heap Size的调整。
vim bin/kafka-server-start.sh
调整KAFKA_HEAP_OPTS="-Xmx16G -Xms16G”的值
推荐配置:一般HEAP SIZE的大小不超过主机内存的50%
2.网络和ios操作线程配置优化:
# broker处理消息的最大线程数
num.network.threads=9
# broker处理磁盘IO的线程数
num.io.threads=16
3.socket server可接受数据大小(防止OOM异常):
socket.request.max.bytes=2147483600
4.
推荐配置:
根据自己业务数据包的大小适当调大。这里取值是int类型的,而受限于java int类型的取值范围又不能太大:
java int的取值范围为(-2147483648~2147483647),占用4个字节(-2的31次方到2的31次方-1,不能超出,超出之后报错:org.apache.kafka.common.config.ConfigException: Invalid value 8589934592 for configuration socket.request.max.bytes: Not a number of type INT。
5.日志保留策略配置
# 日志保留时长
log.retention.hours=72
# 段文件配置
log.segment.bytes=1073741824