问题:
有一台机器做性能压测的时候,无论开多少个线程,QPS一直压不上去,而服务器和数据库的性能指标(主要是CPU和内存)一直维持在很低的水平。
希望帮忙排查一下原因。
过去看了下进行压测的接口代码,逻辑很简单,就是一个数据库查询,所以不存在耗时操作的问题。
首先观察服务器(4c32g)和数据库的详细性能指标:服务器CPU和内存都很低,数据库的监控显示只有一条活跃连接。这就很奇怪了。
在不同网络环境进行压测
- 之前测试同学是用jmeter在本地对服务器进行压测的,QPS只有40左右。
后面用ab(Apache Bench)在服务器上对服务器进行压测,QPS也只有40左右,CPU和内存依然没上去。
测试同学发现本地压本地,QPS可以达到好几百。此时,有点怀疑是网络带宽的问题了。因为服务器的出口带宽只有1M。
把服务器带宽临时升到10M,在本地压服务器,发现QPS可以达到1000。
OK,找到原因,QPS一直上不去的原因是带宽太低导致的。