本文說明如何在 Windows 虛擬機器 (VM) 執行個體上,對永久磁碟效能進行基準化測試。如果是 Linux VM,請參閱「在 Linux VM 上評估 Persistent Disk 效能」。
如要評估執行中執行個體所用磁碟的 IOPS 和輸送量,請使用預期設定對檔案系統進行基準測試。使用這個選項測試實際工作負載,同時保留現有磁碟的內容。請注意,在現有磁碟上對檔案系統進行基準測試時,開發環境特有的許多因素可能會影響基準測試結果,而且您可能無法達到磁碟效能限制。
如要評估永久磁碟的原始效能,請直接對區塊裝置進行基準測試。使用這個選項,比較原始磁碟效能與磁碟效能限制。
在 C4 VM 上,Windows 支援每個裝置提交佇列的最大深度為 1024。佇列填滿時,Windows 會停止提交 I/O,直到佇列部分排空為止,這會大幅降低效能。為避免觸發這項條件,建議您將基準測試工作負載限制在每個連接磁碟區的匯總佇列深度 1024。
設定基準測試軟體
如要對 Windows VM 上的 Persistent Disk 效能進行基準測試,請使用 DISKSPD。
開啟 Powershell 並使用下列指令下載
DISKSPD工具:$client = New-Object System.Net.WebClient $client.DownloadFile("https://github.com/Microsoft/diskspd/releases/latest/download/DiskSpd.zip","$env:temp\DiskSpd-download.zip") Expand-Archive -LiteralPath "$env:temp\DiskSpd-download.zip" C:\DISKSPD Get-ChildItem C:\DISKSPD
對執行中的 VM 執行個體上的磁碟進行 IOPS 和處理量基準測試
如要測量執行中 VM 執行個體上作用中磁碟的 IOPS 和輸送量,並模擬實際工作負載,請針對現有檔案系統中的新目錄執行基準測試,這樣就不會遺失磁碟內容。
在下列步驟中,假設要測試的磁碟已掛接為 D:,且指令是在具有管理員權限的「命令提示字元」(cmd.exe) 視窗中執行:
驗證
DISKSPD軟體設定,並將目錄變更為 64 位元二進位檔:cd C:\DISKSPD\amd64
在磁碟上建立名為
DISKTEST.DAT的 10 GB 新檔案:set TESTFILE=D:\DISKTEST.DAT diskspd -d0 -c10G %TESTFILE%
使用 1 MB 的 I/O 區塊大小和至少 64 的 I/O 深度,透過多個平行串流 (16 個以上) 執行依序寫入,測試寫入處理量:
diskspd -d300 -b1M -o64 -Sh -w100 -t16 -si %TESTFILE%
執行隨機寫入作業,並使用 4 KB 的 I/O 區塊大小和至少 256 的 I/O 深度,測試寫入 IOPS:
diskspd -d300 -b4K -o256 -Sh -w100 -r %TESTFILE%
使用多個平行串流 (16 個以上) 執行循序讀取,測試讀取總處理量,I/O 區塊大小為 1 MB,I/O 深度至少為 64:
diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTFILE%
執行隨機讀取作業,並使用 4 KB 的 I/O 區塊大小和至少 256 的 I/O 深度,測試讀取 IOPS:
diskspd -d300 -b4K -o256 -Sh -r %TESTFILE%
清除:
del %TESTFILE%
基準測試原始永久磁碟效能
如要單獨測量開發環境以外的 Persistent Disk 磁碟區效能,請在拋棄式 Persistent Disk 和 VM 上測試區塊裝置的讀寫效能。
驗證
DISKSPD軟體設定,並將目錄變更為 64 位元二進位檔:cd C:\DISKSPD\amd64
確認磁碟上沒有非保留分區。在提升權限的「命令提示字元」視窗中輸入
diskpart。diskpart
列出連接至 VM 的磁碟:
DISKPART> list disk輸出內容會顯示新建立的 1 TB 磁碟,在下列輸出內容範例中為 Disk 1:
Disk ### Status Size Free Dyn Gpt -------- ------------- ------- ------- --- --- Disk 0 Online 120 GB 1024 KB * Disk 1 Online 1024 GB 1023 GB *
選取要進行基準測試的磁碟。
DISKPART> select disk 1列出所選磁碟上的磁碟分割區。
DISKPART> list partitionPartition ### Type Size Offset ------------- ---------------- -------- ------- Partition 1 Reserved 15 MB 17 KB Partition 2 Primary 1024 GB 16 MB選取主要分區 2:
DISKPART> select partition 2刪除所選分區:
DISKPART> delete partition結束 diskpart
DISKPART> exit
如果磁碟除了保留磁碟區外還有其他磁碟區,請重複上述步驟。只剩下預留分區時,請繼續執行下列步驟:
找出磁碟並確認沒有任何分割區後,請將
TESTDRIVE環境變數設為「#」,然後輸入要測試的磁碟編號。C:/> set TESTDRIVE=#1使用多個並行串流 (16 個以上) 執行循序寫入作業,並使用 1 MB 的 I/O 區塊大小和至少 64 的 I/O 深度,測試寫入輸送量:
diskspd -d300 -b1M -o64 -Sh -t16 -si -w0 %TESTDRIVE%
執行隨機寫入作業,測試寫入 IOPS,I/O 區塊大小為 4 KB,I/O 深度至少為 256:
diskspd -d300 -b4K -o256 -Sh -r -w0 %TESTDRIVE%
測試寫入延遲。測試 I/O 延遲時間時,VM 不得達到最大頻寬或 IOPS,否則觀察到的延遲時間將無法反映實際的 Persistent Disk I/O 延遲時間。
diskspd -d300 -b4K -o4 -Sh -r -w0 -L %TESTDRIVE%
使用多個平行串流 (16 個以上) 執行循序讀取作業,並使用 1 MB 的 I/O 區塊大小和至少 64 的 I/O 深度,測試讀取輸送量:
diskspd -d300 -b1M -o64 -Sh -t16 -si %TESTDRIVE%
執行隨機讀取作業,並使用 4 KB 的 I/O 區塊大小和至少 256 的 I/O 深度,測試讀取 IOPS:
diskspd -d300 -b4K -o256 -Sh -r %TESTDRIVE%
如要測試讀取延遲時間,請務必將資料填滿磁碟,才能取得實際的延遲時間測量結果。測試期間,VM 不得達到 IOPS 或處理量上限,因為永久磁碟達到飽和度上限後,會推回傳入的 I/O 作業,這會反映為 I/O 延遲時間人為增加。
diskspd -d300 -b4K -o4 -Sh -r -L %TESTDRIVE%
測試循序讀取頻寬。
diskspd -d300 -b1M -o64 -Sh -t4 -si %TESTDRIVE%
測試循序寫入頻寬。
diskspd -d300 -b1M -o64 -Sh -t4 -si -w100 %TESTDRIVE%
清除拋棄式永久磁碟和 VM:
後續步驟
- 如要監控磁碟效能,請查看永久磁碟效能指標。
- 瞭解 Persistent Disk 定價。
- 瞭解如何提高永久磁碟效能。