性能測試面試題:如何找到並發數、平均響應時間、tps的最佳平衡點?


面試的機會是有限的,所以,我經常提醒微信或者Q群里的小伙伴:你可以任性的裸辭,但是不能毫無准備的裸面。

我有個習慣,會把曾經面試過的公司及筆試、面試題都記錄到雲筆記上,把答案寫上,方便以后換工作復習。

 

最近在整理自己多年積累的筆記,平時問性能面試的也不少,本篇就分享一個N年前遇到的性能面試題,很基礎,也挺簡單,所以,高手請繞過。

當時,面試官問我:如何找到並發數、平均響應時間、tps的最佳平衡點?

 

初次聽到這個,是不是一臉懵逼?

先回顧下基礎,性能測試常用的指標有三個:並發、響應時間、tps

  並發:跑道里參加賽跑的人數(這里的並發是廣義的並發,即同一個時間段內對系統發起的請求數量)

  響應時間:也就是平均每個事務的處理時間

  tps:每秒處理的事務數

需求指標:分為單指標和多指標

  單指標:一般是單測試tps,或者根據並發測試響應時間,或者根據響應時間測試並發,只考慮單指標的很少

  多指標:要同時考慮多個指標,比如tps + 響應時間(<1s)

 

這個題,意思就是要找到這三個指標同時最佳值的點,即:不能只追求並發數大,而忽略tps,所以,這是一個多指標性能需求,假設是這樣的:要求響應時間1秒以內,並發數要盡可能的多,tps要盡可能的大。

 

是不是依舊有點懵逼?先畫一個簡單的示意圖,方便大家理解(隨手畫的,大家能理解就ok):

 

隨着並發數增加,響應時間肯定是越來越高,所以,上面紅線是響應時間;

隨着並發數增加,tps是先升高到峰值,然后下降(也可能是一直平穩,或者平穩一段時間再下降),所以,上面藍線是tps;

紫色表示並發用戶數;

 

該怎么去找這個最佳平衡點呢?

1.盡可能多的做不同並發數下的壓測,記錄下響應時間(1s以內)和最大tps,當然,服務器端,各個服務器的資源利用率在可接受范圍內(每個公司不一樣,我們是90%以內);

2.然后根據獲取到的不同並發下的指標數據(並發數、tps、響應時間),畫出上圖,關注右側的交點,即tps下降的地方和響應時間的交點,這個點的tps最大,如果響應時間在1s以內,此時並發數也是比較大的,這個點就可以認為是三個指標都不錯的平衡點(當然,我這里把tps放在第一位優先考慮了,這個就看大家最在乎哪個指標了,排個優先級);如果響應時間大於1s,最佳平衡點就往左找,找到響應時間為1秒的點,此時對應的tps和並發值,就是最佳平衡點。總之,測試采樣越多,獲取的平衡點就越准確。

另外,如果是用loadrunner作為並發工具,並發過程中是可以增加或者減少並發用戶數的,就不用必須壓完一次,再調整並發數繼續壓,但是,loadrunner並發過程中調整了並發數,還是要盡可能跑久一點,比如10-15min。

好了,分享完畢,如有疑問,歡迎交流。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM