Kafka性能维度标准
如何判断一个kafka集群是否已经处于性能瓶颈,通常的判断条件有如下几点:
维度1:磁盘IO
读写磁盘性能是kafka重要的参数指标,如果磁盘IO到达性能瓶颈会直接导致业务故障。Kafka读写性能跟磁盘IO之间的关系计算如下:
举例:假设磁盘IO的上限为100M/s,数据大小为8k,假设在topic仅设置为单副本的情况下,理论上一块盘能写入的数据量为100*1024/8=12800条。如果一个节点挂载4块盘,那么理论性能为4*12800条。如果kafka集群有4个节点,那么整个集群的性能为4*4*12800条。
维度2:网络IO
现网的网卡设置一般为万兆网卡,一张万兆网卡的理论极限性能为1250MB/s,在多kafka集群场景下,如果每个节点的数据流量不超过这个值,网卡一般不会出现性能瓶颈。
维度3:CPU使用率
Kafka使用CPU的地方主要在请求的处理、数据落盘等,如果CPU使用率频繁出现95%以上的情况表示kafka集群性能已经到达瓶颈。通常影响kafka集群CPU使用率的几个参数主要有以下几个:
num.recovery.threads.per.data.dir,background.threads,num.replica.fetchers,num.network.threads,num.io.threads。具体参数含义见1.4章节。在磁盘和网卡未达到瓶颈的前提下,如果CPU使用率未达到上限,可以适当调大num.io.threads和num.network.threads,以提升kafka的集群处理能力。
以上三个性能指标哪个先达到瓶颈就是kafka集群的瓶颈