如何識別 Amazon EBS 磁碟區是否出現微型爆量問題,並確保它不會影響效能?

2 分的閱讀內容
0

我的 Amazon Elastic Block Store (Amazon EBS) 磁碟區未達到 Amazon CloudWatch 中的輸送量或每秒讀寫次數 (IOPS) 配額。但是磁碟區顯示為限流狀態,並且出現高延遲和佇列過長的問題。

解決方法

CloudWatch 指標每 1 分鐘收集一次樣本。然而 I/O 作業是以毫秒級速度發生的。當磁碟區在比收集間隔更短的時間間隔內出現高 IOPS 或高輸送量的爆量情形時,CloudWatch 不會擷取爆量。

使用 CloudWatch 指標以識別可能的微型爆量

檢查 VolumeIdleTime 指標

VolumeIdleTime 指標圖表會顯示在指定的持續時間內未提交讀取或寫入作業的秒數。如果 VolumeIdleTime 較高,則磁碟區會在在大部分持續時間內保持閒置狀態。如果在相同持續時間內發生了夠高的 IOPS 或輸送量,則表示該磁碟區經歷了微型爆量。

計算 EBS 磁碟區收到的平均輸送量和平均 IOPS

請使用下列公式來計算 EBS 磁碟區的平均輸送量:

預估平均輸送量 = ( Sum(VolumeReadBytes) + Sum(VolumeWriteBytes) ) / Ceil(Period - Sum(VolumeIdleTime))

請使用下列公式來計算 EBS 磁碟區的平均 IOPS:

預估平均 IOPS = ( Sum(VolumeReadOps) + Sum(VolumeWriteOps) ) / Ceil(Period - Sum(VolumeIdleTime))

使用 CloudWatch 以取得微型爆量事件

請完成下列步驟:

  1. 開啟 CloudWatch console (CloudWatch 主控台)。
  2. 選擇 All metrics (所有指標)。
  3. 使用磁碟區 ID 來搜尋經歷微型爆量的磁碟區。
  4. 選擇 EBS,然後選擇 Per-volume metrics (每個磁碟區指標)。
  5. 若要檢視輸送量指標,請選取 VolumeReadBytesVolumeWriteBytesVolumeIdleTime
  6. 選擇 Graphed metrics (圖形化指標)。
  7. Statistics (統計資料) 中選取 Sum (總和),並在 Period (期間) 中選取 1 minute (1 分鐘)。
  8. Add Math (新增數學) 中選擇 Start with empty expression (以空白運算式開始)。
  9. Details of Expression (運算式的詳細資訊) 中,請使用為 VolumeReadBytesVolumeWriteBytesVolumeIdleBytes 指派的圖表 ID 來建立預估平均輸送量 (以 Bps 為單位) 公式。
    例如,使用計算公式 (m1 + m2)/Ceil(60 - m3)。

如果圖表顯示的值大於磁碟區輸送量上限,則表示工作負載出現微型爆量。

若要檢查 I/O 作業是否導致微型爆量,請完成先前的步驟。在步驟 5 中,將 VolumeReadBytesVolumeWriteBytesVolumeIdleTime 替換為 VolumeReadOpsVolumeWriteOpsVolumeIdleTime

使用作業系統層級工具來確認微型爆量

即使 VolumeIdleTime 較低,EBS 磁碟區也可能經歷微型爆量。對於 VolumeIdleTime 較低的磁碟區,請使用具有精細樣本收集的作業系統層級工具,以更有效地識別工作負載是否經歷微型爆量。

Linux

若要以一秒的精度報告所有已裝載磁碟區的 I/O 統計資料,請執行 iostat 命令:

iostat -xdmzt 1

iostat 工具屬於 sysstat 套件。如果您找不到 iostat 命令,則請執行下列命令,在 Amazon Linux Application Machine Images (AMI) 上安裝 sysstat:

sudo yum install sysstat -y

如需詳細資訊,請參閱 Linux 手冊頁網站上的 iostat(1)

若要判斷是否達到了輸送量配額,請檢閱輸出中的 rMBpswMBps。如果 rMBps + wMBps 大於磁碟區的輸送量上限,則表示磁碟區發生了微型爆量。

若要判斷您是否達到了 IOPS 配額,請檢閱輸出中的 rpswps。如果 rps + wps 大於磁碟區的 IOPS 上限,則表示磁碟區發生了微型爆量。

Windows

在 Windows 效能監視器中執行 perfmon 命令。如需詳細資訊,請參閱判斷 IOPS 和輸送量要求

變更磁碟區大小或類型以調整您的應用程式,並防止微型爆量

微型爆量可能會導致應用程式出現 I/O 限流或 I/O 延遲。為了防止此問題,請調整磁碟區的類型與大小,使其即使在發生微型爆量時,也能支援您所需的 IOPS 和輸送量。如需詳細資訊,請參閱 Amazon EBS 磁碟區類型執行個體可以推送至所有已連接 EBS 磁碟區的 IOPS 和輸送量都有上限

最佳做法是根據工作負載進行磁碟區基準效能測試,以在測試環境中確定哪些磁碟區類型能夠安全地滿足您的工作負載。

AWS 官方
AWS 官方已更新 18 天前