集群 QPS、TPS 上不去,从哪些维度逐层排查瓶颈?
1 个赞
排查集群 QPS/TPS 瓶颈,按以下层次逐层检查(由外到内):
- 压测客户端:工具本身是否达到性能上限(CPU/网络/连接数)?是否分布式?
- 网络与负载均衡:带宽是否打满?SLB 实例规格、最大连接数、包转发率是否到顶?
- 应用层
- 线程池队列是否满(大量 RejectedExecutionException)?
- GC 是否频繁(特别是 Full GC)?
- 是否存在锁竞争、同步块?
- 日志级别是否过高(如 Debug)且同步刷盘?
- 依赖中间件:
- 数据库:连接池大小、慢查询、锁等待、死锁。
- 缓存(Redis):网络 IO 是否饱和、大 key 热 key。
- 消息队列:积压、分区倾斜。
- 操作系统与容器
- CPU/内存/IO 使用率(留意软中断 si、iowait)。
- 文件句柄数、端口范围、TCP 连接状态(TIME_WAIT 过多)。
- 容器/虚拟机 CPU 限流(Cgroup throttling)。
1 个赞
此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。