1.2.2 集群縮放壓測
要更真實地評估系統服務的容量情況,我們還是要在生產環境上做壓測。集群縮放壓測是一種在生產環境中進行系統服務容量評估的早期實踐,它的做法是逐步縮減集群內的服務器數量或實例數量,使得單臺服務器或單個實例所承載的流量不斷增加,從而評估出集群可承載的最大流量,并以此推算出單位流量增長所需擴容的服務器數量或實例數量。
集群縮放壓測的優勢是很明顯的,它基于系統的線上真實流量,我們不需要編寫任何壓測腳本,也不需要準備任何壓測數據,壓測過程中也不會產生臟數據。但它的劣勢同樣明顯,首先,系統線上操作的風險比較高,一旦集群規模被縮減至瓶頸點,容易引發系統的線上事故;其次,由于集群縮放壓測基于系統的線上真實流量,因此對流量規模有一定要求,如果流量太小,當集群縮減到單服務器或單實例后依然沒有達到容量瓶頸點,就無法推測容量情況。
集群縮放壓測還存在一個“致命傷”,即無法對底層基礎設施(如數據庫、消息隊列等中間件)的容量進行評估。雖然我們縮減了應用服務的集群規模,但這些基礎設施的資源規模是不變的,在外部請求量恒定的情況下,依然無法評估它們的容量情況。