什么是彈性伸縮(Auto Scaling)?
彈性伸縮是指 云計算平臺根據實時負載自動調整計算資源(如服務器實例、容器Pod)數量,以確保系統在高峰時保持穩定,在低谷時節省成本。
什么時候會觸發彈性伸縮?
彈性伸縮的觸發通常基于 預定義的規則,常見條件包括:
1. CPU/內存使用率(最常用)
- 示例規則:
- 如果 CPU 平均使用率 > 70% 持續 3 分鐘,自動擴容 2 臺實例。
- 如果 CPU 平均使用率 < 30% 持續 5 分鐘,自動縮容 1 臺實例。
- 適用場景:通用型業務(如Web服務、API服務)。
2. 請求量/QPS(適合流量波動大的業務)
- 示例規則:
- 如果 平均請求量 > 1000 QPS 持續 2 分鐘,擴容 3 臺實例。
- 如果 平均請求量 < 300 QPS 持續 10 分鐘,縮容 1 臺實例。
- 適用場景:電商大促、秒殺活動、突發流量。
3. 自定義監控指標(如隊列積壓、延遲)
- 示例規則:
- 如果 消息隊列積壓 > 5000 條,擴容消費者實例。
- 如果 API P99 延遲 > 500ms,擴容后端服務實例。
- 適用場景:異步任務處理、高延遲敏感業務。
4. 定時伸縮(預測性擴容)
- 示例規則:
- 每天 9:00 擴容到 20 臺實例(應對早高峰)。
- 每天 23:00 縮容到 5 臺實例(夜間低峰)。
- 適用場景:周期性流量(如辦公系統、打卡應用)。
彈性伸縮的典型工作流程
- 監控:云平臺(如 AWS Auto Scaling、K8s HPA)實時采集指標(CPU/QPS/延遲)。
- 判斷:對比預設閾值,決定是否觸發擴容/縮容。
- 執行:自動創建或銷毀實例,并注冊到負載均衡。
- 穩定:新實例加入后,流量自動均衡,系統恢復穩定。
你的 JMeter 測試如何關聯彈性伸縮?
在壓測中,你可以:
- 觀察觸發時機:
- 當 JMeter 模擬的 QPS 達到 1500 時,是否觸發擴容?
- 擴容后,TPS 是否提升(如從 200→450)?延遲是否下降?
- 驗證伸縮速度:
- 從觸發到完全擴容需要多久?(理想情況:1-3 分鐘)
- 縮容是否過于激進(可能導致短時間內再次擴容)?
- 檢查資源利用率:
- 擴容后 單實例的 CPU/內存是否下降?(說明負載被分攤)
彈性伸縮的注意事項
- 冷卻時間(Cooldown):避免頻繁伸縮,設置合理的間隔(如 3-5 分鐘)。
- 最小/最大實例數:防止無限擴容(成本失控)或過度縮容(服務不可用)。
- 健康檢查:確保新實例啟動完成后再接收流量。
- 成本權衡:突發流量用彈性伸縮,長期高負載建議預留實例(更便宜)。
結論
在你的測試中,如果 TPS 從 200 提升到 450,同時觸發了彈性伸縮(如實例數從 10→15),說明:
- 系統吞吐能力提升(擴容成功)
- 延遲下降(新實例分攤了壓力)
- 資源占用增加是合理的(符合彈性伸縮的設計目標)
支付寶這一次力度夠大的啊,后臺看到有人居然領了 20 元,你也來試試