Kafka性能调优
操作场景
通过调整Kafka服务端参数,可以提升特定业务场景下Kafka的处理能力。
参数调优
- 登录MRS集群Manager。
登录集群Manager具体操作,请参考访问MRS集群Manager。
- 选择“集群 > 服务 > Kafka > 配置 > 全部配置”。
- 搜索以下参数名称,并根据实际需要修改参数值。
表1 调优参数 配置参数
默认值
调优场景
num.recovery.threads.per.data.dir
10
每个数据目录用来数据恢复的线程数目。
- 线程越多,恢复过程可能越快,但性能可能会降低。
- 在Kafka启动过程中,数据量较大情况下,可调大此参数,可以提升启动速度。
background.threads
10
Broker后台任务处理的线程数目,例如过期数据文件的删除线程。
- 线程越多,任务处理的并行度越高,但也会占用更多系统资源,一般不需要修改。
- 数据量较大的情况下,可适当调大此参数,以提升Broker处理能力。
num.replica.fetchers
1
副本向Leader请求同步数据的线程数。
- 线程越多,副本同步的并行度越高,但也会占用更多系统资源(如CPU和网络带宽)。
- 增大该参数会增加副本的I/O并发度。
num.io.threads
8
Broker用于处理请求的线程数,其中可能包括磁盘I/O。
- 线程数越多,Kafka能同时处理的请求越多,从而提升吞吐量。但线程数过高可能导致占用资源增加,反而降低性能。
- 这个线程数目建议至少等于硬盘的个数。
KAFKA_HEAP_OPTS
-Xmx6G -Xms6G
Kafka Broker进程的JVM堆内存。
- 当Broker上数据量较大时,应适当调整堆内存大小。
- 堆内存越大,Full GC的停顿时间可能越长,影响Kafka的实时性。
- 修改完成后保存配置,并重新启动配置过期的服务或实例以使配置生效。