uncategorized

看懂Azure Storage的Blob監控指標

Azure Storage是Azure服務中,最被應用的一個服務,其中又以Blob是被大家常用,雖然,大家常常用卻不知道其實blob本身也是會有效能問題,並非只是把檔案放進去,讓它輸入和輸出這樣簡單,所以,我們透過Blob的監控,看你自己的Blob目前的效能狀況,進而改善檔案配置

分享幾個Blob指標給大家,也可以透過幾個簡單指標去判斷,你目前Blob效能狀況,這些指標都是會有相互影響,怎樣設計出一個好的Blob架構,還是需要看自己業務上的需求來決定,這樣會比較適當。

▪ TotalRequests:向Blob服務發出的請求數
 ▪ TotalEgress:一定時間內從blob傳輸出去的網路流量
 ▪ TotalIngress:一定時間內傳輸進入Blob的網路流量
 ▪ TotalBillableRequests:這是計費的請求數,畢竟,從Azure內部機制而言,
   某些失敗的請求是不會算在計費範圍內的。
 ▪ ThrottlingError:可以了解Request的塞車程度,儲存體本身也會有瓶頸,
   如果遇到這樣狀況,可以適當的去將需求分配到多個儲存帳號,提高系統的整體效能。
 ▪ PercentThrottlingError:請求失敗及錯誤的百分比。
 ▪ PercentTimeoutError,請求失敗和出現超時錯誤的百分比,其數字包括客戶端和
   伺服器超時的都算在這裡面
 ▪ AuthorizationError:驗證失敗的請求百分比。主要是對於安全性方面的監控,
   有助於防止惡意攻擊、侵入等安全隱患。
 ▪ NetworkError:這個即是呼叫Blob API發生NetworkError的驗證失敗的請求數。

指標中有些具有相互影響的關係,所以,在監看的時候,建議看你關心是屬於那部分,就把同類型的指標,用多指標分析方式去看,會比較了解到各項因子的相互關係,上面是目前我常用的指標

另外,也搭配使用AverageE2ELatencyAverageServerLatency這兩個指標,去協助去判斷Blob效能的好壞,這兩個指標分別代表的意義如下:

▪ AverageE2ELatency:即向Blob服務發出的成功完成Reqeuse與Response的
   平均時間,這期間包括讀取請求、傳送響應以及接收響應確認所需的處理時間(ms)
 ▪ 如果,發現AverageE2ELatency指標高,可能就是客戶端的網路問題,或是有其
   他情況造成反應過慢,這時候就可以考慮是否要在客戶端放入快取機制
 ▪ AverageServerLatency:這表示內部blob處理一個成功的Request所需要的
   平均時間(ms)
 ▪ 如果,發現AverageServerLatency指標高,我們可以這樣判斷『當同一個Blob或 
   Blob集合不斷收到重複的要求』,而且 Blob 下載要求出現高 AverageServerLatency時,
   您應該考慮使用Azure快取或是Azure內容傳遞網路(CDN)快取處理這些 Blob』

另外,如果一直發現高AverageServerLatency,有可能表示資料表或是查詢設計不良造成,可以再多參考一些指標去判斷,例如:PercentThrottlingError,透過這樣分析找出整體系統的效能瓶頸是在那邊而去改善

參考資料


  1. https://azure.microsoft.com/zh-tw/documentation/articles/storage-monitoring-diagnosing-troubleshooting/#metrics-show-an-increase-in-PercentTimeoutError

  2. https://azure.microsoft.com/zh-tw/documentation/articles/storage-monitoring-diagnosing-troubleshooting/#metrics-show-high-AverageE2ELatency-and-low-AverageServerLatency