Kafka服务侧常见性能调优参数
kafka集群性能调优:
Kafka的集群调优通常考虑维度主要有两个,第一,是磁盘读写能力,第二,网络带宽。
磁盘的读写的负载可以通过命令:iostat –x -1 查看 idle指标,这个值越大代表磁盘越空闲。万兆网卡的极限能力为1250M/s,网络速度可以通过前台界面的,主机管理->对应主机“网络写入速度”,“网络读取速度”获取。通常在性能的极限情况下,磁盘io会成为性能瓶颈。Kafka侧优化写入性能的参数如下:
配置项 |
缺省值 |
调优场景 |
|
num.recovery.threads.per.data.dir |
10 |
每个数据目录用来数据恢复的线程数目。在Kafka启动过程中,数据量较大情况下,可调大此参数,可以提升启动速度。 |
|
background.threads |
10 |
Broker后台任务处理的线程数目。数据量较大的情况下,可适当调大此参数,以提升Broker处理能力。 |
|
num.replica.fetchers |
1 |
副本向Leader请求同步数据的线程数。增大这个数值会增加副本的I/O并发度。 |
|
num.network.threads |
3 |
Broker用来处理网络请求的线程数目 |
|
num.io.threads |
8 |
Broker用来处理磁盘I/O的线程数目。这个线程数目建议至少等于硬盘的个数。 |
|
queued.max.requests |
500 |
指定用于缓存网络请求的队列的最大容量,这个队列达到上限之后将不再接收新请求。 |
|
socket.receive.buffer.bytes |
102400 |
服务端接收缓冲区大小,增加该参数能够提升生产、消费数据在缓冲区的数量,从而提升网络传输的吞吐量 |
|
socket.send.buffer.bytes |
102400 |
服务端发送缓冲区大小,增加该参数能够提升生产、消费数据在缓冲区的数量,从而提升网络传输的吞吐量 |
|
replica.socket.receive.buffer.bytes |
65536 |
备份时向leader发送网络请求时的socket receive buffer |
|
replica.lag.max.messages |
4000 |
如果一个副本中没有同步的消息条数超过这个数值,Leader会认为该副本已经失效,并将其从ISR中移除。 |
|
KAFKA_HEAP_OPTS |
-Xmx6G -Xms6G |
Kafka内存占用参数配置。 |
|
Kafka集群的性能参数调整到最优值后,kafka数据的处理能力会大幅度提升cpu的使用率也会增加。如果后续节点上的数据流量持续增长,CPU的使用率也会上升。
- 点赞
- 收藏
- 关注作者
评论(0)