CPU和内存不高,TPS偏低上不去的常见排查思路
网络带宽限制
优先将压测工具与被测服务部署在同一网络中,跨机房访问时,无论是带宽还是网速,都不如同一网络中的性能表现
硬件资源
出现上述现象时,服务端机器性能并未达到瓶颈,此时对压力端所在服务器排查,是否由于压力端所在服务器已经达到瓶颈,导致无法支持更高压力。例如测试高并发场景时,压力工具开启太多并发线程,端口数不够用等异常情况
缓存影响
压力请求命中缓存时,不再执行剩余的业务逻辑而是直接返回,对CPU和内存压力大大降低,导致无论如何加压,服务端的CPU和内存数据都上不去。检查构造的压力请求特征,是否都是重复的数据。或者关闭服务器端的缓存
线程池
高并发时,压力工具请求的线程数如果超过服务端的线程数,一部分线程被服务器端拒绝连接,或者长时间等待。解决方式是增大服务端的连接池的线程数,以及增大数据库连接池的线程数(如果涉及数据库连接)
垃圾回收
java程序的Young GC和Full GC如果过于频繁,也会影响TPS的提升。一般使用jstat查看进程的垃圾回收消耗时间,最后一列GCT是程序运行期间消耗的总时间
类型 | 含义 |
---|---|
性能测试 | 正常负载下服务端的各项数据 |
负载测试 | 不同负载下的性能数据 |
稳定性测试 | 长时间负载下的服务端数据 |
压力测试 | 高负载情况下,系统能够承受的最大压力 |
基准测试 | 系统摸底测试,作为后续发版的对比标准 |
网友评论