记一次性能压测瓶颈排查

时间:2022-03-10 04:47:55

昨天测试同学过来反应有一台机器做性能压测的时候,无论开多少个线程,QPS一直压不上去,而服务器和数据库的性能指标(主要是CPU和内存)一直维持在很低的水平。

希望帮忙排查一下原因。

过去看了下进行压测的接口代码,逻辑很简单,就是一个数据库查询,所以不存在耗时操作的问题。

首先观察服务器(4c32g)和数据库的详细性能指标:服务器CPU和内存都很低,数据库的监控显示只有一条活跃连接。这就很奇怪了。

在不同网络环境进行压测

  1. 之前测试同学是用jmeter在本地对服务器进行压测的,QPS只有40左右。
  2. 后面用ab(Apache Bench)在服务器上对服务器进行压测,QPS也只有40左右,CPU和内存依然没上去。

  3. 测试同学发现本地压本地,QPS可以达到好几百。此时,有点怀疑是网络带宽的问题了。因为服务器的出口带宽只有1M。

  4. 把服务器带宽临时升到10M,在本地压服务器,发现QPS可以达到1000。

OK,找到原因,QPS一直上不去的原因是带宽太低导致的。

Get技能

  1. JMeter
  2. Apache Bench