對 EBS 磁碟區進行基準化分析 - Amazon Elastic Compute Cloud

對 EBS 磁碟區進行基準化分析

您可以透過模擬 I/O 工作負載來測試 Amazon EBS 磁碟區的效能。程序如下:

  1. 啟動 EBS 最佳化執行個體。

  2. 建立新 EBS 磁碟區。

  3. 將磁碟區連接至您的 EBS 最佳化執行個體。

  4. 設定和掛載區塊型儲存設備。

  5. 安裝一項工具來基準參考 I/O 效能。

  6. 基準參考您的磁碟區 I/O 效能。

  7. 刪除您的磁碟區並終止您的執行個體,以免繼續收取費用。

重要

某些程序將導致銷毀您衡量之 EBS 磁碟區上現有資料。基準參考程序旨在用於專門為測試目的而建立的磁碟區,而非生產磁碟區。

設定您的執行個體

為了從 EBS 磁碟區獲得最佳效能,我們建議您使用 EBS 最佳化執行個體。EBS 最佳化執行個體在 Amazon EC2 和 Amazon EBS 之間以執行個體提供專用輸送量。EBS 最佳化執行個體在 Amazon EC2 和 Amazon EBS 之間提供專用頻寬,其規格取決於執行個體類型而定。如需詳細資訊,請參閱 Amazon EBS – 最佳化執行個體

若要建立 EBS 最佳化執行個體,請在使用 Amazon EC2 主控台啟動執行個體時選擇 Launch as an EBS-Optimized instance (啟動為 EBS 最佳化執行個體),或者在使用命令列時指定 --ebs-optimized。確認您啟動支援此選項的最新執行個體。如需詳細資訊,請參閱 Amazon EBS – 最佳化執行個體

設定 Provisioned IOPS SSD 或 一般用途 SSD 磁碟區

若要使用 Amazon EC2 主控台建立適用於io1磁碟區類型io2的佈建 IOPS SSD (gp2gp3) 或一般用途 SSD () 磁碟區,請選擇佈建 IOPS SSD (io1)佈建 IOPS SSD (io2)一般用途 SSD (gp2)一般用途 SSD (gp3)。在命令列為 io1 參數指定 io2gp2gp3--volume-type。針對 io1io2gp3 磁碟區,指定 --iops 參數的每秒 I/O 操作次數 (IOPS)。如需詳細資訊,請參閱 Amazon EBS 磁碟區類型建立 Amazon EBS 磁碟區

設定輸送量最佳化 HDD (st1) 或冷 HDD (sc1) 磁碟區

若要建立 st1 磁碟區,請在使用 Amazon EC2 主控台建立磁碟區時選擇輸送量最佳化 HDD,或者在使用命令列時指定 --type st1。若要建立 sc1 磁碟區,請在使用 Amazon EC2 主控台建立磁碟區時選擇冷 HDD,或者在使用命令列時指定 --type sc1。如需建立 EBS 磁碟區的資訊,請參閱 建立 Amazon EBS 磁碟區。如需將這些磁碟區連接至執行個體的資訊,請參閱 將 Amazon EBS 磁碟區連接至執行個體

安裝基準化分析工具

下表列出一些可用於基準參考 EBS 磁碟區效能的工具。

工具 描述
DiskSpd

DiskSpd 是 Microsoft 的 Windows、Windows Server 和 Cloud Server Infrastructure 工程團隊的一種儲存體效能工具。您可在此處下載:https://github.com/Microsoft/diskspd/releases

下載 diskspd.exe 可執行檔之後,(藉由選取「Run as Administrator (以管理員身分登入)」) 開啟具有管理權限的命令提示字元,然後導覽至您要從中複製 diskspd.exe 檔案的目錄。

將所需的 diskspd.exe 可執行檔從適當的可執行資料夾 (amd64frearmfrex86fre)) 複製到簡短的簡單路徑,例如 C:\DiskSpd。在大多數情況下,您需要 amd64fre 資料夾中的 64 位元版本的 DiskSpd。

DiskSpd 的原始程式碼託管於下列位置的 GitHub:https://github.com/Microsoft/diskspd

CrystalDiskMark

CrystalDiskMark 是一個簡單的磁碟效能評定軟體。您可以在 https://crystalmark.info/en/software/crystaldiskmark/ 下載該軟體。

這些基準參考工具支援廣泛種類的測試參數。您應使用磁碟區將會支援之工作負載的類似命令。以下提供的這些命令做為幫助您開始之範例。

選擇磁碟區佇列長度

根據您的工作負載和磁碟區類型選擇最佳磁碟區佇列長度。

SSD 支援的磁碟區佇列長度

若要為 SSD 支援的磁碟區上之工作負載決定最佳佇列長度,建議您為每 1000 個可用 IOPS (一般用途 SSD 磁碟機的基準和 Provisioned IOPS SSD 磁碟區的佈建數量) 指定 1 的佇列長度。您即可監控應用程式效能並根據您的應用程式需求來調整該值。

增加佇列長度有助您達到佈建 IOPS、輸送量或最佳系統佇列長度值 (目前設定為 32)。例如,具有 3,000 個佈建 IOPS 的磁碟區應將目標佇列長度定為 3。您應該調校這些值的高低來試驗,以查看何者最適用於您的應用程式。

HDD 支援的磁碟區佇列長度

若要為支援 HDD 之磁碟區上的工作負載決定最佳佇列長度,建議您在執行 1MiB 序列 I/O 時,將佇列長度的目標至少設定為 4。您即可監控應用程式效能並根據您的應用程式需求來調整該值。例如,爆量輸送量為 500 MiB/s 和 IOPS 為 500 的 2 TiB st1 磁碟區應分別執行 4、8 或 16 佇列長度,同時分別執行 1,024 KiB、512 KiB 或 256 KiB 的序列 I/O。您應該調校這些值的高低來試驗,以查看何者最適用於您的應用程式。

停用 C-states

執行基準參考之前,您應該停用處理器 C-states。支援的 CPU 中暫時閒置的核心可能會進入 C-state 以節省電源。呼叫核心來繼續執行時,需要一定的時間量,核心才會再次完成運作。此延遲可能會干擾處理器基準參考例行作業。如需 C-states 的詳細資訊和支援它們的 EC2 執行個體類型,請參閱您的 EC2 執行個體處理器狀態控制

在 Windows 上停用 C-states

您可以在 Windows 上停用 C-states,如下所示:

  1. 在 PowerShell 中,取得目前作用中的電源配置。

    $current_scheme = powercfg /getactivescheme
  2. 取得電源配置 GUID。

    (Get-WmiObject -class Win32_PowerPlan -Namespace "root\cimv2\power" -Filter "ElementName='High performance'").InstanceID
  3. 取得電源設定 GUID。

    (Get-WmiObject -class Win32_PowerSetting -Namespace "root\cimv2\power" -Filter "ElementName='Processor idle disable'").InstanceID
  4. 取得電源設定子群組 GUID。

    (Get-WmiObject -class Win32_PowerSettingSubgroup -Namespace "root\cimv2\power" -Filter "ElementName='Processor power management'").InstanceID
  5. 將索引的值設定為 1 來停用 C-states。值 0 表示 C-states 已停用。

    powercfg /setacvalueindex <power_scheme_guid> <power_setting_subgroup_guid> <power_setting_guid> 1
  6. 設定作用中配置來確保已儲存設定。

    powercfg /setactive <power_scheme_guid>

執行基準化分析

下列程序說明各種 EBS 磁碟區類型的基準參考命令。

在連接 EBS 磁碟區的 EBS 最佳化執行個體上執行下列命令。如果 EBS 磁碟區是從快照中建立,請務必在進行基準參考前進行初始化。如需詳細資訊,請參閱 初始化 Amazon EBS 磁碟區

完成對磁碟區的測試後,請參閱下列主題以取得清理的幫助:刪除 Amazon EBS 磁碟區終止您的執行個體

對 Provisioned IOPS SSD 和 一般用途 SSD 磁碟區進行基準化分析

在您建立的磁碟區執行 DiskSpd

下列命令將使用位於 C: 磁碟機的 20GB 測試檔案來執行 30 秒隨機 I/O 測試,寫入率為 25%,讀取率為 75%,區塊大小為 8K。它將使用八個背景工作執行緒,每個背景工作執行緒具有四個未完成的 I/O,以及 1GB 的寫入熵值種子。測試結果將儲存到名稱為 DiskSpeedResults.txt 的文字檔。這些參數會模擬 SQL Server OLTP 工作負載。

diskspd -b8K -d30 -o4 -t8 -h -r -w25 -L -Z1G -c20G C:\iotest.dat > DiskSpeedResults.txt

如需解譯結果的詳細資訊,請參閱此教學:Inspecting disk IO performance with DiskSPd