2021年3月3日 星期三

[觀點]執行壓力測試、設計高承載量系統時,想想廚房的流理台

 


當對外的系統要正式發布前,特別是面向群眾的網站服務,都會進行系統壓力測試(簡稱壓測)。同時,壓測也是設計一個高承載量系統時,比較常被採用的評量工具。

使用壓測工具時,會遇到兩個核心參數,「執行緒數」和「持續時間」。任務的過程就是不斷地排列組合這兩個數值,產生出對目標系統的大量請求,以找出系統總承載量(壓力測試)或系統瓶頸(優化系統)。

在思考這兩個參數的意義時,我們可以假借生活中常見的東西來理解它們。想想流理台中的水管,像藍色的圖形一樣,它有著「口徑」和「管深」,兩者都實際影響著流理台整體可以承受的總水量。比對壓測工具(綠色圖形),「口徑」就是「執行緒數」,「管深」如同「持續時間」,兩者相乘出來的數值,正是工具能製造出來的總請求量。

在設計高承載量的網站服務時,一樣可以延用管線思維,只是描述的對象不同。如紅色圖形呈現的,「入口口徑」是「WEB主機的總承載量」,「出口口徑」是「資料庫主機承載量」,「水管長度」則是「系統資訊流中整體的緩衝容量」。要打造高承載的資訊系統,就像要把水龍頭開更大,而不讓廚房淹水。此時單純把入口口徑(WEB主機數)加大是沒用的。常見的作法,要嘛不是向上擴充,升級成更高等級的資料庫(加大出口口徑),不然就是導入更多緩衝機制,例如Queue/非同步處理(加長水管長度)。

設計、壓測資訊系統時,可別忘了廚房的流理台呦~



沒有留言:

張貼留言