理解及快速測定 Azure 虛擬機器的磁碟效能

2021-08-08 18:13:01 字數 2123 閱讀 7389

隨著越來越多的使用者將生產系統遷移到 azure 平台的虛擬機器服務中,azure 虛擬機器的效能愈發被關注。傳統的資料中心中,我們通常使用 cpu,記憶體,儲存和網路的效能來衡量生產壓力。特別是對於 io 密集型工作負荷,比如虛擬機器內部執行的 sql 服務,儲存系統的吞吐容量,往往成為生產系統的瓶頸所在。

azure 提供了標準儲存和高階儲存兩種儲存服務。針對於生產環境中的 io 密集型負荷,我們推薦使用高階儲存。標準儲存僅推薦在開發測試環境中使用。針對於具體的高階儲存的介紹,以及虛擬機器儲存的最佳實踐等資訊,建議完成以下閱讀:

然而在現實環境中,由於種種條件所限,很多使用者暫時無法使用高階儲存來達到最佳的儲存效能。本文的目的在於幫助目前仍然使用標準儲存的使用者如何準確理解虛擬機器的儲存效能,從而在發生儲存效能問題時快速有效的從支援部門得到幫助。

首先,由於虛擬機器執行在 azure 平台,我們需要了解 azure 儲存空間可伸縮性和效能目標:

其次,針對於虛擬機器操作內部,不同的應用也有不同的磁碟系統優化方案。例如,對於 windows 平台,我們通常使用 storage space 來盡可能分散 io 請求到不同的硬體裝置來提公升儲存頻寬:

在理解了儲存系統的一些基本概念之後,下一步我們需要通過合理的方法衡量虛擬機器的磁碟效能。

在 windows 平台,使用者常常選擇通過檔案管理器直接進行檔案拷貝來觀察磁碟效能。這種測試往往很容易進行。同時,在使用者介面上也有圖形化的吞吐量顯示。然而,檔案拷貝並不是乙個測試儲存效能的合理的方法:

為方便說明,我在中國東區的資料中心建立了乙個伺服器,具體的引數為:

為進行檔案拷貝測試,我們建立了 3 種不同型別的資料檔案:

從下圖中可以看到根據檔案的型別不同,整個過程分為三個階段,

拋開使用者介面上的效能指示,當我們使用 perfmon 來具體分析單個磁碟的效能時,很明顯,無論處理那種型別的檔案拷貝,磁碟仍然未處於完全忙碌的狀態。而磁碟的資料吞吐量和 iops 都處於不穩定狀態

根據以上的分析和測試我們可以確定,使用檔案拷貝的方式無法科學地衡量磁碟的效能。

在現實中,為了得到穩定的磁碟資料,通常建議使用 diskspd 或是 iometer 等工具。

這些工具大多數都是使用伺服器的 cpu 資源產生多個工作執行緒,每個執行緒根據設定的 io 讀或寫的比例,io 請求的大小,順序讀寫或隨機讀寫等,產生大量的併發請求,直接作用於目標儲存裝置。

以同乙個測試伺服器為例,通過以下命令分別對於 d,e,f 和 n 卷進行 4k,8k,64k 大小的隨機讀寫 io 壓力測試(80% 讀操作,20% 寫操作)

複製

diskspd -c50g -d300 -f16 -w20 -r -b4k -o4 [x]:\diskspd.dat

diskspd -c50g -d300 -f16 -w20 -r -b8k -o4 [x]:\diskspd.dat

diskspd -c50g -d300 -f16 -w20 -r -b64k -o4 [x]:\diskspd.dat

由於篇幅所限,僅僅將 4k 大小的結果總結如下:

同時,根據測試時生成的 perfmon 日誌,我們可以清晰地看到單個磁碟在進行測試時基本上保持在完全忙碌的狀態,並體現出一致的 io 效能指標(第乙個測試為 4k 讀寫,第二個為 8k 讀寫,第三個為 64k 讀寫,每個測試區間前者為 e 卷,後者為 g 卷)

需要指出的是,儘管 diskspd 和 iometer 等工具都可以模擬不同的型別的 io 請求,但他們同真實的生產環境中的 io 模型還是有一定區別的。如果可能,盡可能使用生產環境的真實 io 來判斷當前的儲存系統是否滿足需求。

如果使用者環境中的虛擬機器出現類似儲存瓶頸的問題,建議您可以通過以下步驟快速排查:

通過 perfmon 等效能監控工具收集生產環境下的伺服器資料,包括記憶體,cpu,磁碟,網路等等方面。

暫停所有的生產壓力,使用 diskspd 或 iometer 等工具進行單純儲存壓力測試

使用 microsoft automated troubleshooting services,來快速自動排查虛擬機器內部可能影響磁碟效能的問題

檢查儲存賬戶容量,虛擬大小等配置資訊,避免由於併發 io 或是容量配置導致的問題。

如果以上步驟沒有發現明顯問題,但是壓力測試得到的磁碟資料比本文中的資料相差明顯,建議您可以聯絡 azure 支援部門,我們很願意協助您快速定位問題。

立即訪問

理解及快速測定 Azure 虛擬機器的磁碟效能

隨著越來越多的使用者將生產系統遷移到 azure 平台的虛擬機器服務中,azure 虛擬機器的效能愈發被關注。傳統的資料中心中,我們通常使用 cpu,記憶體,儲存和網路的效能來衡量生產壓力。特別是對於 io 密集型工作負荷,比如虛擬機器內部執行的 sql 服務,儲存系統的吞吐容量,往往成為生產系統的...

刪除Azure虛擬機器

1.登入azure門戶 輸入訂閱賬號和密碼 2.選擇虛擬機器選項 3.選擇要刪除的虛擬機器,點選delete刪除虛擬機器刪除以後,原先占用的磁碟依然存在,可以用它重建虛擬機器或者用於其他資源中 1.以管理員方式執行powershell命令 connect azaccount登入azure,輸入訂閱賬...

azure備份虛擬機器

登入經典門戶,新建 資料服務 恢復服務 備份保管庫 快速建立.乙個備份庫可以儲存多個虛擬機器.建立完成,開啟備份庫,點選配置,設定備份的冗餘方式.現在還沒有備份任何虛擬機器。首先點選 已註冊項 然後點選 發現.發現虛擬機器.提示發現虛擬機器,然後註冊.選擇虛擬機器,然後就會在面板上看到選擇虛擬機器狀...