作者:京東零售 張強
導讀
本文主要講解了Forcebot壓測平臺之中“并發模式”與“RPS模式”兩種模式對于服務端性能指標的影響。通過“商品查詢標簽”的壓測作為具體實踐案例,簡要闡述了“并發模式”與“RPS模式”兩種模式壓測過程中TPS、TP99以及TP999差異性。希望通過本文,讀者可以對“并發模式”與“RPS模式”兩種模式相關概念有更清晰的認識,并且能夠將它們應用到具體的業務場景之中,幫助大家在實際代碼研發、壓測的時候,提供一些參考思路。
1、背景
互聯網的頭部公司,對于接口服務性能要求非常高,各個應用鏈路之間接口要求TP99響應時間在100ms以下,甚至還有要求TP999。為了達到此目標需要不斷的優化接口邏輯性能和服務器性能。基于此前提之下,最近開發了一個“商品查詢標簽”杰夫接口(RPC),外部門要求單機200QPS、TP999響應時間要小于40ms。我們在整個壓測過程中采用了“并發模式”與“RPS模式”兩種模式,但是它們給出的展現效果有一定差異性。其中“并發模式”適用于摸底業務系統各節點能同時承載的在線用戶數,“RPC模式”適用于衡量系統的吞吐能力。
2、并發模式(虛擬用戶模式)
“并發”是指虛擬并發用戶數,從業務角度,也可以理解為同時在線的用戶數。 適用場景:如果需要從客戶端的角度出發,摸底業務系統各節點能同時承載的在線用戶數,可以使用該模式設置目標并發。以下是通過并發模式(虛擬用戶模式)簡單的請求流程圖:
綜上所述:
1)發壓機按照設置的并發數,持續向目標服務端發起請求,經過網絡傳輸和杰夫線程池后,到達具體的方法內部執行邏輯。
2)壓力機監控的性能指標(TP99、TP999)的總時長為網絡傳輸耗時、杰夫線程等待耗時和方法耗時三者相加。
3)壓力機監控的TPS指標為單位時間內持續發出的請求總和。
實踐案例:
?forcebot監控(并發用戶數:1;TPS平均:330;TP99:4ms;TP999:5ms)
?umpkey監控(QPS:300;TP99:1ms;TP999:1ms)
3、RPS模式
RPS(Requests Per Second)是指每秒請求數。 適用場景:RPS模式即“吞吐量模式”,通過設置每秒發出的請求數,從服務端的角度出發,直接衡量系統的吞吐能力,免去并發到RPS的繁瑣轉化一步到位。以下是通過RPS簡單的請求流程圖:
?綜上所述:
1)發壓機按照設置的并發數,同時向目標服務端發起請求,經過網絡傳輸和杰夫線程池后,到達具體的方法內部執行邏輯。
2)壓力機監控的性能指標(TP99、TP999)的總時長為網絡傳輸耗時、杰夫線程等待耗時和方法耗時三者相加。
3)壓力機監控的TPS指標為單位內一次性發出的請求數量。
?實踐案例:
?forcebot監控(并發用戶數:50;TPS平均:47;TP99:6ms;TP999:60ms)
?umpkey監控(QPS:50;TP99:1ms;TP999:1ms)
4、總結
經過“并發模式”與“RPS模式”兩種模式實踐應用數據的對比,總結出以下經驗可以供大家參考。希望此文對大家后續做服務接口性能壓測有一定的幫助和啟發。
1)“并發模式”并發用戶數少于“RPS模式”并發用戶數,但是forcebot壓測事務對應TPS(最大/平均)的數量前者大于后者以及服務端UMP監控到QPS也是前者大于后者。
具體原因:“并發模式”是按照預先設置并發用戶數持續不斷的發送請求,所以在秒級收到的請求數量總和為QPS。然而“RPS模式”是按照預先設置并發用戶數同時一次性將請求發出,并且秒級時間范圍內不持續。所以它的秒級QPS只是這一次發出請求數量。
2)“并發模式”的并發用戶數少于“RPS模式”的并發用戶數并且服務端收到QPS前者大于后者的前提之下,forcebot壓測事務對應TP99/TP999的性能指標前者優于后者。
具體原因:“并發模式”的并發用戶數少于“RPS模式”的并發用戶數,同時能夠到達杰夫線程池的任務數前者少于后者,所以杰夫線程池任務緩沖區處于等待的任務就相對較少、等待時間較短。最終計算TP99/TP999性能的時候,“并發模式”的性能更優于“RPS模式”的性能。
3)“并發模式”和“RPS模式”方法內部UMP監控的時候,可用率、TP99和TP999等性能指標都遠遠優于forcebot壓測事務監控指標。
具體原因:壓測請求傳輸過程中,會經過跨網絡傳輸、杰夫線程池等重要節點,這兩個節點的耗時對于forcebot壓測事務監控指標也有非常大的影響。例如:服務端的young gc或full gc等都會影響到杰夫線程的暫停,導致最終forcebot壓測事務監控指標遠遠高于實際方法內部UMP監控到的值。
審核編輯 黃宇
-
接口
+關注
關注
33文章
8726瀏覽量
152068 -
監控
+關注
關注
6文章
2240瀏覽量
55405
發布評論請先 登錄
相關推薦
電流輸出 vs 電壓輸出:兩種傳感器輸出模式有什么區別?
![電流輸出 vs 電壓輸出:<b class='flag-5'>兩種</b>傳感器輸出<b class='flag-5'>模式</b>有什么<b class='flag-5'>區別</b>?](https://file1.elecfans.com//web3/M00/07/99/wKgZO2enMQOAFclSAADJqIhumi8455.jpg)
ADS1292R有 \"1 ch ECG + 1 ch呼吸偵測\" 或 \"2 ch ECG\" 兩種模式,是否可以在產品上實現自行切換兩種使用模式?
兩種轉換控制模式Zone 1 Transfer和Zone 2 Transfer怎么區分使用?
usb主機模式和設備模式的區別
晶體管的開關模式和放大模式的區別
紅石比較器兩種模式的作用
伺服電機位置模式和速度模式的區別
網絡橋接模式是什么? 網絡橋接模式和路由模式的區別
工業智能網關的網關模式和交換機模式有哪些區別
![工業智能網關的網關<b class='flag-5'>模式</b>和交換機<b class='flag-5'>模式</b>有哪些<b class='flag-5'>區別</b>](https://file1.elecfans.com/web2/M00/C4/04/wKgZomXwH0aAHCr1AABedvOAcDc211.png)
臨界模式與連續模式的區別
![臨界<b class='flag-5'>模式</b>與連續<b class='flag-5'>模式</b>的<b class='flag-5'>區別</b>](https://file1.elecfans.com//web2/M00/C1/AE/wKgaomXYStaAMa87AAA7EEWGAEs460.gif)
評論