zk服务端的基础指标没有发现明显异常,但是客户端时不时出现超时现象,由于部分客户端处理逻辑很简单,只是单存的读写zk,如果读写超时则断开相关链接,因此面临客户端和服务端之间的极限拉扯。对于生产环境中,如何判断一个zk集群压力,是否到达性能瓶颈,是一个重要的课题,本文探讨如何分析和判断zk集群是否压力过大,以及相关的指标。
1. 机器层面
- cpu使用率不超过60%
- 内存使用率不超过80%
- 机器load不超过cpu核心数
- 磁盘io,读写await不超1ms
2. GC层面
- old gc不过于频繁
3. zk的相关指标
- zk的排队请求队列,不超过200,
- zk的watch数量,不超100w
- zk的znode数量不超过50w
- zk的znode大小不超过1G
- zk的单节点连接数不超过最大连接数,也不能超过5k
4 其他指标
可以进一步参考 ZK监控方法以及核心指标