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的驗證失敗的請求數。
指標中有些具有相互影響的關係,所以,在監看的時候,建議看你關心是屬於那部分,就把同類型的指標,用多指標分析方式去看,會比較了解到各項因子的相互關係,上面是目前我常用的指標
另外,也搭配使用AverageE2ELatency和AverageServerLatency這兩個指標,去協助去判斷Blob效能的好壞,這兩個指標分別代表的意義如下:
▪ AverageE2ELatency:即向Blob服務發出的成功完成Reqeuse與Response的
平均時間,這期間包括讀取請求、傳送響應以及接收響應確認所需的處理時間(ms)
▪ 如果,發現AverageE2ELatency指標高,可能就是客戶端的網路問題,或是有其
他情況造成反應過慢,這時候就可以考慮是否要在客戶端放入快取機制
▪ AverageServerLatency:這表示內部blob處理一個成功的Request所需要的
平均時間(ms)
▪ 如果,發現AverageServerLatency指標高,我們可以這樣判斷『當同一個Blob或
Blob集合不斷收到重複的要求』,而且 Blob 下載要求出現高 AverageServerLatency時,
您應該考慮使用Azure快取或是Azure內容傳遞網路(CDN)快取處理這些 Blob』
另外,如果一直發現高AverageServerLatency,有可能表示資料表或是查詢設計不良造成,可以再多參考一些指標去判斷,例如:PercentThrottlingError,透過這樣分析找出整體系統的效能瓶頸是在那邊而去改善