問題:
有一台機器做性能壓測的時候,無論開多少個線程,QPS一直壓不上去,而服務器和數據庫的性能指標(主要是CPU和內存)一直維持在很低的水平。
希望幫忙排查一下原因。
過去看了下進行壓測的接口代碼,邏輯很簡單,就是一個數據庫查詢,所以不存在耗時操作的問題。
首先觀察服務器(4c32g)和數據庫的詳細性能指標:服務器CPU和內存都很低,數據庫的監控顯示只有一條活躍連接。這就很奇怪了。
在不同網絡環境進行壓測
- 之前測試同學是用jmeter在本地對服務器進行壓測的,QPS只有40左右。
-
后面用ab(Apache Bench)在服務器上對服務器進行壓測,QPS也只有40左右,CPU和內存依然沒上去。
-
測試同學發現本地壓本地,QPS可以達到好幾百。此時,有點懷疑是網絡帶寬的問題了。因為服務器的出口帶寬只有1M。
-
把服務器帶寬臨時升到10M,在本地壓服務器,發現QPS可以達到1000。
OK,找到原因,QPS一直上不去的原因是帶寬太低導致的。