Amazon EBS I/O 特性和監控 - Amazon EBS

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon EBS I/O 特性和監控

在指定的磁碟區組態中,某些 I/O 特性會驅動EBS磁碟區的效能行為。SSD支援的磁碟區 (一般用途 SSD (gp2gp3) 和佈建 IOPS SSD (io1io2) — 無論 I/O 作業是隨機還是循序,都能提供一致的效能。HDD支援的磁碟區 (輸送量最佳化 HDD (st1) 和冷 HDD (sc1),只有在 I/O 作業大型且循序時,才能提供最佳效能。若要瞭解HDD磁碟區在應用程式中的執行方式SSD和磁碟區的執行方式,請務必瞭解磁碟區的需求、磁碟區的IOPS可用數量、I/O 作業完成所需的時間,以及磁碟區的輸送量限制。

IOPS

IOPS是表示每秒輸入/輸出操作的度量單位。作業以 KiB 測量,基礎磁碟機技術會決定磁碟區類型計為單一 I/O 的最大資料量。磁碟區的 I/O 大小上限為 256 KiB,磁碟區的 I/O 大小上限為 1,024 KiB,因為SSDSSD磁碟區比HDD磁碟區處理小型或隨機 I/O 的效率更高。HDD

當小型 I/O 作業實際連續時,Amazon 會EBS嘗試將它們合併為單一 I/O 作業,最大 I/O 大小為止。同樣地,當 I/O 操作大於最大 I/O 大小時,Amazon 會EBS嘗試將它們分割成較小的 I/O 操作。下表顯示一些範例。

磁碟區類型 I/O 大小上限 您的應用程式的 I/O 操作 數量 IOPS 備註
SSD 256 KiB 1 x 1024 KiB I/O 操作 4 (1,024÷256=4) Amazon EBS 將 1,024 I/O 操作分成四個較小的 256 KiB 操作。
8 個連續 32 KiB 輸入/輸出操作 1 (8x32=256) Amazon 將八個連續的 32 KiB I/O 操作EBS合併到單個 256 KiB 操作中。
8 個隨機 32 KiB I/O 操作 8 Amazon 分別EBS計算隨機 I/O 操作。
HDD 1,024 KiB 1 x 1024 KiB I/O 操作 1 I/O 操作已經等於 I/O 大小上限。它不會被合併或分割。
8 個連續 128 KiB 輸入/輸出操作 1 (8x128=1,024) Amazon 將八個連續的 128 KiB I/O 操作EBS合併到一個 1,024 KiB I/O 操作中。
8 個隨機 32 KiB I/O 操作 8 Amazon 分別EBS計算隨機 I/O 操作。

因此,當您建立SSD支援 3,000 的支援磁碟區時 IOPS (佈建的IOPSSSD磁碟區為 3,000 IOPS 或將一般用途磁SSD碟區大小調整為 1,000 GiB),並將其附加至可提供足夠頻寬的EBS最佳化執行個體時,您可以每秒傳輸最多 3,000 I/O 的資料,而輸送量由 I/O 大小決定。

磁碟區佇列長度和延遲

磁碟區佇列長度是裝置的待處理 I/O 請求數目。延遲是 I/O 作業的真實 end-to-end 用戶端時間,換句話說,傳送 I/O 到EBS並從 EBS I/O 讀取或寫入完成接收確認之間經過的時間。佇列長度必須正確校準 I/O 大小和延遲,以避免在客體作業系統或網路連結上產生瓶頸。EBS

每個工作負載的最佳佇列長度會有所不同,具體取決於您特定應用程式的敏感度IOPS和延遲。如果您的工作負載沒有提供足夠的 I/O 要求來完全使用EBS磁碟區可用的效能,則您的磁碟區可能無法提供您已佈建的IOPS或輸送量。

交易密集型應用程式對增加的 I/O 延遲很敏感,非常適合備份的磁碟區。SSD您可以維持較低的佇列長度和大量可供磁碟區IOPS使用,IOPS同時降低延遲時間。持續驅動IOPS到磁碟區的數量超過了可用性,可能會導致 I/O 延遲增加。

輸送密集型應用程式對增加的 I/O 延遲較不敏感,而且非常適合支援的磁碟區。HDD在執行大型連續 I/O 時,您可以維持較高的佇列長度,以維持HDD支援磁碟區的高輸送量。

I/O 大小和磁碟區輸送量限制

對於SSD支援的磁碟區,如果您的 I/O 大小非常大,您可能會遇到IOPS比佈建還少的數目,因為您已達到磁碟區的輸送量限制。例如,可用突發積分gp2低於 1,000 GiB 的磁碟區的IOPS限制為 3,000,磁碟區輸送量限制為 250 Mb/s。如果您使用 256 KiB I/O 大小,您的磁碟區會在 1000 時達到輸送量限制 IOPS (1000 x 256 KiB = 250 MiB)。對於較小的 I/O 大小(例如 16 KiB),這個相同的磁碟區可以維持 3,000,IOPS因為輸送量遠低於 250 Mb/s。(這些範例假設您的磁碟區 I/O 未達到執行個體輸送量限制。) 如需每種EBS磁碟區類型輸送量限制的詳細資訊,請參閱Amazon EBS 卷類型

對於較小的 I/O 操作,您可能會看到從執行個體內部測量的 higher-than-provisioned IOPS值。當執行個體作業系統將小型 I/O 作業合併為較大的作業,然後再將它們傳遞給 Amazon EBS 時,就會發生這種情況。

如果您的工作負載在HDD備份st1sc1磁碟區上使用循序 I/O,您可能會遇到從執行個體內部測量的IOPS數量高於預期的數量。當執行個體作業系統合併序列 I/O 並以 1,024 KiB 大小單位來計數時,會發生此情況。如果您的工作負載使用小型或隨機 I/O,則輸送量可能會低於您的預期。這是因為我們會將每個隨機的非連續 I/O 計入總IOPS計數,這可能會導致您比預期的更早達到磁碟區的IOPS限制。

無論您的EBS磁碟區類型為何,如果您在組態中未遇到預期的輸送量IOPS或輸送量,請確保EC2執行個體頻寬並非限制因素。您應該一律使用最新一代EBS最佳化的執行個體 (或包含 10 Gb/s 網路連線的執行個體),以獲得最佳效能。未發生預期情況的另一個可能原因IOPS是您沒有為EBS磁碟區驅動足夠的 I/O。

使用以下方式監控 I/O CloudWatch

您可以使用每個磁碟區的CloudWatch 磁碟區指標來監控這些 I/O 特性。要考慮的重要指標包含下列項目:

  • VolumeStalledIOCheck

  • BurstBalance

  • VolumeReadBytes | VolumeWriteBytes

  • VolumeReadOps | VolumeWriteOps

  • VolumeQueueLength

VolumeStalledIOCheck監控EBS磁碟區的狀態,以判斷磁碟區何時受損。此測量結果是二進位值,會根據EBS磁碟區是否可以完成 I/O 作業,傳回 0 1 (通過) 或 (失敗) 狀態。此檢查可偵測 Amazon 基EBS礎設施的潛在問題,例如:

  • 磁碟區底層儲存子系統上的硬體或軟體問題 EBS

  • 實體主機上的硬體問題會影響從執行個體EBS存取磁碟區的能力 EC2

  • 執行個體和EBS磁碟區之間的連線問題

如果指VolumeStalledIOCheck標失敗,您可以等待 AWS 解決問題,也可以採取動作,例如更換受影響的磁碟區,或停止並重新啟動磁碟區所連接的執行個體。在大多數情況下,當此指標失敗時,EBS會在幾分鐘內自動診斷並復原您的磁碟區。您可以使用中的「暫停 I/O」動作 AWS Fault Injection Service 來執行受控實驗,根據此指標測試您的架構和監控,以改善儲存裝置故障的恢復能力。

您可以使用VolumeReadOpsVolumeWriteOps和來測量 Amazon EBS 儲存 I/O 延遲VolumeTotalWriteTimeVolumeTotalReadTime您可以使用以下公式來監控磁碟區的平均 I/O 延遲:

Average I/O latency in ms/op = (VolumeTotalReadTime + VolumeTotalWriteTime) / (VolumeReadOps + VolumeWriteOps)

如果您的 I/O 延遲高於您的需求,請檢查您的驅動,IOPS並確保您的應用程式嘗試的磁碟機不會IOPS超過佈建的時間。您可以使用下列公式來監控磁碟區IOPS的平均驅動量:

Estimated average IOPS in ops/s = (Sum(VolumeReadOps) + Sum(VolumeWriteOps)) / (Period - Sum(VolumeIdleTime))

如果您的應用程序需要的數量大IOPS於您的卷可以提供的數量,則應考慮使用以下其中一種方法:

  • 佈建足IOPS以達到所需延遲的io2、或io1磁碟區 gp3

  • 較大的gp2磁碟區可提供足夠的基準IOPS效能

HDD支援的sc1磁碟區st1和磁碟區的設計,可在充分利用 1,024 KiB 最大 I/O 大小的工作負載時執行最佳效能。若要確定您的磁碟區之平均 I/O 大小,請將 VolumeWriteBytes 除以 VolumeWriteOps。同樣的計算方式也可套用至讀取操作。如果平均 I/O 大小低於 64 KiB,則增加傳送到 st1sc1 磁碟區的 I/O 操作之大小應可提高效能。

注意

如果平均 I/O 大小為 44 KiB 或接近,您可能正在沒有間接描述項的支援下使用執行個體或核心。任何 Linux 核心 3.8 及更新版本都具備此支援,如同任何最新執行個體。

BurstBalancegp2st1sc1 磁碟區的爆量儲存貯體額度顯示為剩餘額度的百分比。當爆量儲存貯體耗盡時,磁碟區 I/O (對於 gp2 磁碟區) 或磁碟區輸送量 (對於 st1sc1 磁碟區) 將限制為基準。檢查 BurstBalance 值以確定您的磁碟區是否因此受到限制。如需可用 Amazon EBS 指標的完整清單,請參閱以硝基為基礎的執行個體Amazon Amazon CloudWatch 指標 EBS和 Amazon EBS 指標。

相關資源

如需 Amazon EBS I/O 特性的詳細資訊,請參閱下列 re: Invent 簡報:AmazonEBS:針對效能設計