【性能測試之路】網關壓力測試
背景
公司安全網關需要測試單機狀態下的最大並發,使用ab測試可以達到2W並發,但是為了測試結果的嚴謹性,需要使用loadrunner進行測試。架構很簡單,就是一個安全網關伺服器,一個Nginx web伺服器,網關做數據轉發。
測試方案
因為要求測試並發數2W比較高,所以選用了Linux版本的負載機,Linux版本的性能更強,可以加的並發數比Windows版本要高不少。最開始給了3台虛擬機,4核4G的配置,測試過程中發現負載機CPU到1W並發就產生了瓶頸。於是最後加到了5台負載機,12核4G的配置,但是這裡要說一點的是,給的負載機都是虛擬機,CPU都是虛擬出來的,和實體機還是有區別。
網路的話最好是在內網進行測試,內網是千兆帶寬,盡量避免網路延遲產生的數據誤差。
這次是想測試網關的性能,所以Nginx伺服器只是做輔助的,為了避免誤差,應該對Nginx伺服器進行調優,讓Nginx支持更高的並發壓力。
測試腳本
腳本使用loadrunner的web協議進行編寫,因為安全網關使用的是https,所以腳本需要加入web_set_sockets_option進行SSL版本的設置,同時為了保證發送和接收的數據一致,所以對返回的數據body進行了收集,通過數據長度是否正確來判斷事務是否成功。
測試場景
負載機為Linux版本,所以需要設置dont use RS,並且把單負載機的並發數限制改成1W,不然一台負載機加到5000並發就不會再增加用戶了。
一共5台負載機,所以需要添加5個場景組,每個場景組一台負載機,關閉日誌收集,忽略思考時間,三個超時時間設為最大。
運行場景設置為慢增長方式,每秒鐘加100個用戶,一共運行30分鐘,每秒鐘50個用戶結束。
測試結果
加到2W並發之後,網關的CPU達到了90%左右,已經達到極限,再加就沒有意義了,故該配置下,網關最大支持並發為2W。一般中小型企業最多最多5K的並發,大家這裡要理解一下並發數的概率,它不同於在線用戶數和註冊用戶數。
![](https://pic.pimg.tw/zzuyanan/1488615166-1259157397.png)
![](https://pic.pimg.tw/zzuyanan/1482887990-2595557020.jpg)
TAG:下雨天吶 |