跳至內容

如何使用 CloudWatch 指標計算 Amazon Elastic Block Store (Amazon EBS) 磁碟區提供的平均輸送量和平均 IOPS 數量?

2 分的閱讀內容
0

我想使​​用 Amazon CloudWatch 指標來計算 Amazon Elastic Block Store (Amazon EBS) 磁碟區的平均輸送量和每秒讀寫次數 (IOPS)。

簡短說明

若要計算磁碟區的平均輸送量和 IOPS 數量,請使用包含 CloudWatch 指標的數學運算式。若要監控 EBS 磁碟區中的資料,請建立 CloudWatch 警示。

或者,使用 AWSSupport-CalculateEBSPerformanceMetrics 自動化文件。自動化功能會使用 CloudWatch 指標來計算 EBS 磁碟區的彙總輸送量、IOPS 數量以及 I/O 大小。您可以計算單一 EBS 磁碟區的指標,也可以計算附加到 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體所有 EBS 磁碟區的指標。

解決方法

手動計算輸送量

請完成下列步驟:

  1. 開啟 CloudWatch console (CloudWatch 主控台)。
  2. Metrics (指標) 下,選擇 All metrics (所有指標)。
  3. 選擇 EBS namespace (EBS 命名空間),然後選擇 Per-Volume metrics (每個磁碟區指標)。
  4. 為 EBS 磁碟區選取下列指標:
    若要計算平均 IOPS,請選取 VolumeReadOpsVolumeWriteOpsVolumeIdleTime
    若要計算平均輸送量,請選取 VolumeReadBytesVolumeWriteBytesVolumeIdleTime
  5. 選擇 Graphed metrics (圖表化指標) 索引標籤。
  6. 對於 Statistic (統計資料),選擇 Sum (總和)。
  7. 對於 Period (期間),選擇您要檢視的時段期間。
  8. 請記下每個圖表化指標前面的指標 ID,例如 m1、m2、m3 等。
  9. Add math (新增數學) 中,選擇 Start with empty expression (以空白運算式開始),然後輸入下列運算式以計算預期平均值。
    計算平均 IOPS (以每秒運算次數為單位):
    (m1+m2)/(PERIOD(m1))
    **注意:**在上述運算式中,m1VolumeReadOps,而 m2VolumeWriteOps
    當磁碟區作用中時,計算實際平均輸送量 (以每秒位元組為單位):
    (m1+m2)/(PERIOD(m1)-(IF(m3>59, 59, m3)))
    **注意:**在上述運算式中,m1VolumeReadBytesm2VolumeWriteBytes,而 m3VolumeIdleTime
    計算平均輸送量 (以每秒位元組為單位):
    (m1+m2)/(PERIOD(m1))
    **注意:**在上述運算式中,m1VolumeReadBytes,而 m2VolumeWriteBytes

輸送量和 IOPS 以每秒為單位測量。因此,當 VolumeIIdleTime 超過 59 秒時,以 VolumeIdleTime X Period 為基礎計算的指標資料點可能會產生高於預期的值。此外,由於微型爆量,輸送量平均值和 IOPS 可能與實際平均值不同。CloudWatch 不會以每秒的間隔彙總 EBS 磁碟區指標。如需更多資訊,請參閱如何判斷 EBS 磁碟區是否發生微爆量並確保不影響效能?

使用自動化來計算輸送量

在開始之前,請複製您要分析之資源的磁碟區 ID 或執行個體 ID。您必須有資源 ID 才能執行自動化文件。

(選用) 為自動化建立和指定 AWS Identity and Access Management (IAM) 角色。如果您未選擇角色,則 Automation 會使用執行文件的使用者權限。

您可以使用 AWS Systems Manager 主控台或 AWS Command Line Interface (AWS CLI) 來執行自動化。

Systems Manager 主控台

請完成下列步驟:

  1. 在 Systems Manager 主控台上,於資源所在的 AWS 區域中開啟文件
  2. Execute automation document (執行自動化文件) 區段中,選擇 Simple execution (簡單執行)。
  3. Input parameters (輸入參數) 區段中,輸入下列參數:
    ResourceId 中,輸入您要分析之 EBS 磁碟區或 EC2 執行個體的 ID。
    StartTime 中,輸入格式為 yyyy-mm-ddThh:mm:ss 且採用 UTC 的時間。例如,輸入 2021-06-09T13:30:10。
    EndTIme 中,輸入格式為 yyyy-mm-ddThh:mm:ss 且採用 UTC 的時間。例如,輸入 2021-06-16T13:30:10。
    (選用) 在 AutomationAssumeRole 中,選擇您的 IAM 角色。
  4. 選擇 Execute (執行)。

最終輸出是指向儀表板的網址。若要查看網址,請展開 Outputs (輸出) 欄位。使用儀表板來查看分析的指標及其配額。

**注意:**若要刪除儀表板,您必須具有 cloudwatch:DeleteDashboards IAM 權限。

AWS CLI

**注意:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本

執行以下 start-automation-execution 命令:

aws ssm start-automation-execution --document-name "AWSSupport-CalculateEBSPerformanceMetrics" --document-version "\\$DEFAULT" --parameters '{"ResourceId":\["i-example12345"\], "StartTime":\["2021-06-09T13:30:10"\], "EndTime":\["2021-06-16T13:30:10"\], "Period":\["60"\], "AutomationAssumeRole":\[""\]}' --region us-east-1

**注意:**在上述命令中,將 ResourceId 替換為您要分析的資源 ID。將 StartTimeEndTime 替換為開始時間和結束時間,以查看 CloudWatch 中的資料。將 us-east-1 替換為您資源的區域。如果您建立了 IAM 角色來執行自動化,則將 AutomationAssumeRole 替換為您的 IAM 角色。