我的 Amazon Elastic Block Store (Amazon EBS) 磁碟區出現 I/O 等待時間較長、佇列長度增加,並且延遲激增的情況。
當 I/O 作業完成有延遲時,您的 Amazon EBS 磁碟區會遇到佇列長度增加和 I/O 等待時間較長的情況。以下是延遲增加的一些常見原因。
如果您即將達到輸送量和 IOPS 配額,則可能會遇到延遲的問題。若要判斷輸送量和 IOPS 配額,請參閱如何計算 Amazon EBS 磁碟區的最大 IOPS 和輸送量?然後,檢查 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的 EBS 磁碟區是否已即將達到輸送量或 IOPS 配額。
如果您經常達到輸送量或 IOPS 配額,請將磁碟區類型或大小變更為符合應用程式需求的磁碟區類型或大小。若要決定要使用哪些磁碟區類型,最佳實務為在測試環境中根據工作負載對 EBS 磁碟區進行基準測試。
EBS 最佳化的 EC2 執行個體具有附加至執行個體之所有 EBS 磁碟區的最大彙總輸送量和 IOPS。您可能會看到 I/O 等待時間較長和延遲增加,但您的磁碟區沒有達到其輸送量或 IOPS 配額。如果發生這種情況,請檢查磁碟區的輸送量或 IOPS 是否達到執行個體的輸送量或 IOPS 配額。
例如,您的 gp3 磁碟區為 1 TiB,其中包含 16,000 次佈建 IOPS 和 700 個 MiBps 輸送量,該磁碟區附加至 t3.medium 執行個體。t3.medium 執行個體可以達到 260.57 MiBps 輸送量和 11,800 次 IOPS 的最大效能,這些效能會在所有附加磁碟區之間彙總。執行個體在 24 小時內僅用 30 分鐘達成此效能。然後,將效能限流至 43.43 MiBps 輸送量和 2,000 次 IOPS 的基準,這些基準會在所有附加磁碟區之間彙總。雖然一個磁碟區最多可以管理 700 個 MiBps 和 16,000 次 IOPS,但執行個體無法達到此效能。
如果您的應用程式效能需求超過執行個體的功能,請將執行個體類型變更為可管理工作負載的執行個體類型。
磁碟區爆量高 IOPS 或輸送時間比收集期間明顯更短時,即會發生微型爆量。Amazon CloudWatch 不顯示微型爆量。如需詳細資訊,請參閱如何識別我的 Amazon EBS 磁碟區是否會發生微型爆量,然後防止這種情況發生?
從快照還原磁碟區時,磁碟區必須初始化資料。第一次存取每個資料區塊時,您可能會遇到延遲增加,因為磁碟區必須從 Amazon Simple Storage (Amazon S3) 下載資料。
若要將延遲降至最低,您可以強制初始化磁碟區。您也可以開啟 Amazon EBS 快速快照還原,以便在建立磁碟區時將磁碟區完全初始化。
如果您已嘗試上述所有疑難排解步驟,但仍然遇到高延遲問題,請聯絡 AWS Support。
如何使用 CloudWatch 指標計算 EBS 磁碟區提供的平均輸送量和 IOPS 平均數量?
從 EBS 快照還原 Amazon EBS 磁碟區時解決 I/O 延遲問題