性能测试时,不断增加线程数施压,发现CPU, 负载,QPS没有明显上升,这是为什么呢?
分析思路:
1.大部分情况是被压接口是否有问题,比如有限流,可结合在不断增加压力的过程中,观察压测接口响应耗时是否在增加判断
2.如果接口逻辑有涉及到数据库操作,需要分析SQL操作数据对象是否存在同步锁
3.压力机器与被压机器的系统连接数是否都放开了,在sysctl.conf配置,可参看这篇文章https://www.cnblogs.com/yinzone/p/16354039.html
4.机器硬件配置问题,如网卡,带宽限制
5.网络问题,如防火墙容量限制
6.着重考虑第1,第2点
性能测试时,不断增加线程数施压,发现CPU, 负载上升,QPS没有明显上升,这是为什么呢?
分析思路:
1.CPU上升,tps没有上升,说明CPU干其他事去了。
2.top命令查看机器实时资源状态,观察系统CPU占用是否过高,如果过高,说明cpu在频繁切换上下文,代码有依赖系统调用
3.查看堆栈信息,通过jstack 命令查看堆栈信息,取cpu占用最大的线程id分析,分析代码在做什么