前言
原文
Explore autoscale best practices
Autoscale concepts
- Autoscale 是用作增減 instance 數量的(scale in / scale out)
你可以設置 instance 數量的上限/下限和預設的 instance 數量 - Azure 會不停的檢查相關的計量(metric)
以及和閾值(threshold)作比較
看看是不是需要 scale in / scale out - 計量都是全部 instance 一起計算的
比如是全部 instance 的平均值和最大最小值等 - 不論 autoscale 的執行成功與否
相關的 action 都會被寫入 Activity Log
你也可以通過 email, SMS, webhook 收到相關的通知 (需預先設置)
Autoscale best practices
Ensure the maximum and minimum values are different and have an adequate margin between them
Instance 數量的最大及最小值若是相同的話
並不會有 auto scale action 被執行
所以請確保這兩個數值不同且有適當的差距
Choose the appropriate statistic for your diagnostics metric
請根據你的情況
選擇「平均值(Average)」、「最小值(Minimum)」、「最大值(Maximum )」或「總計(Total)」作為據以縮放的計量(Metric)
最常用的統計量為平均值
Choose the thresholds carefully for all metric types
不建議以相同的數值作為 scale out 和 scale in 的 rule 的閾值(threshold)
例如:
- 當執行緒計數 >= 600 時,增加 1 個執行個體
- 當執行緒計數 <= 600 時,減少 1 個執行個體
因為這樣可能會導致一旦 scale out 就觸發 scale in rule
而且一旦 scale in 就觸發 scale out rule
Azure 會因而不停的 scale out 和 scale in
這種情況被稱為波動(flapping)
為避免這種情況
scale in 和 scale out 的 閾值應有一定的差距
此為較恰當的例子:
- 當 CPU% >= 80 時,增加 1 個執行個體
- 當 CPU% <= 60 時,減少 1 個執行個體
Considerations for scaling when multiple rules are configured in a profile
為了確保你的 app 有足夠的資源運行
任意一個 scale out rule 被滿足
scale out 都會被觸發
所有的 scale in rule 都被滿足了
scale in 才會被觸發
Always select a safe default instance count
請選擇一個足以負擔你正常 workload 的 instance 作為預設 instance 數量
當沒有任何 autoscale rule 被觸發時
你的 app 的 instance 數量就會是你的預設 instance 數量
Configure autoscale notifications
一旦下列任何一個情況發生了
相關的消息都會被張貼到 Activity Log
- Autoscale operation(scale in / scale out) 被執行
- 成功執行 autoscale operation
- 未能成功執行 autoscale operation
- 未能取得計量(metric) 用作 scale decision
- 再次成功取得計量用作 scale decision
你也可以用 Activity log alert 來監察 autoscale 的運行狀況
同時也可以在 “autoscale setting” 的 “notification” tab 設定以電子郵件或 Webhook 進行通知
發佈留言