

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

# 延遲注入
<a name="ebs-fis-latency-injection"></a>

使用 中的延遲注入動作 (`aws:ebs:volume-io-latency`) AWS FIS 來模擬 Amazon EBS 磁碟區上增加的 I/O 延遲，以測試您的應用程式如何回應儲存效能降低。此動作可讓您指定要注入的延遲值，以及將影響目標磁碟區的 I/O 百分比。使用 時 AWS FIS，您可以使用預先設定的延遲實驗範本，開始測試儲存故障期間可能觀察到的不同 I/O 延遲模式。這些範本設計成一組初始案例，可用來將中斷引入您的應用程式，以測試彈性。它們並非設計為涵蓋應用程式在真實世界中可能遇到的所有類型影響。我們建議您根據應用程式的效能需求，將它們調整為執行多個不同的測試。您可以自訂可用的範本或建立新的實驗範本，以測試您的應用程式特定需求。

**預先設定的延遲實驗範本**  
Amazon EBS 透過 EBS 主控台和[AWS FIS 案例庫](https://docs.aws.amazon.com/fis/latest/userguide/scenario-library-scenarios.html)提供下列延遲實驗範本。您可以直接在目標磁碟區上使用這些範本來執行延遲注入實驗。
+ **持續延遲** — 模擬持續延遲。此實驗使用一個延遲注入動作，總持續時間為 15 分鐘。此實驗模擬 50% 讀取 I/O 和 100% 寫入 I/O 的持久性延遲：500 毫秒，持續 15 分鐘。
+ **增加延遲** — 模擬逐漸增加的延遲。此實驗利用五個延遲注入動作，總持續時間為 15 分鐘。此實驗將模擬 10% 讀取 I/O 和 25% 寫入 I/O 的延遲逐漸增加：50 毫秒持續 3 分鐘、200 毫秒持續 3 分鐘、700 毫秒持續 3 分鐘、1 秒持續 3 分鐘，以及 15 秒持續 3 分鐘。
+ **間歇延遲** — 模擬急劇的間歇性延遲峰值，以及介於兩者之間的復原期間。此實驗利用三個延遲注入動作，總持續時間為 15 分鐘。此實驗將在 0.1% 的讀取和寫入 I/O 上模擬三個延遲峰值：30 秒峰值持續 1 分鐘、10 秒峰值持續 2 分鐘，以及 20 秒峰值持續 2 分鐘。每個延遲峰值之間會有 5 分鐘的復原期間。
+ **降低延遲** — 模擬逐漸降低的延遲。此實驗利用五個延遲注入動作，總持續時間為 15 分鐘。此實驗將模擬 10% 讀取 I/O 和寫入 I/O 的延遲逐漸減少：20 秒持續 3 分鐘、5 秒持續 3 分鐘、900 毫秒持續 3 分鐘、300 毫秒持續 3 分鐘，以及 40 毫秒持續 3 分鐘。

**自訂預先設定的案例**

您可以使用下列可自訂的參數自訂上述預先設定的範本，或建立自己的新實驗範本。
+ `readIOPercentage` — 注入延遲的讀取 I/O 操作百分比。這是將受到 動作影響之磁碟區上所有讀取 I/O 操作的百分比。

  範圍：最小值 0.1%，最大值 100%
+ `readIOLatencyMilliseconds` — 讀取 I/O 操作注入的延遲量。這是將在實驗期間讀取 I/O 指定百分比上觀察到的延遲值。

  範圍：最短 1 毫秒 (io2)/10 毫秒 （非 io2)，最長 60 秒
+ `writeIOPercentage` — 注入延遲的寫入 I/O 操作百分比。這是將受到 動作影響之磁碟區上所有寫入 I/O 操作的百分比。

  範圍：最小值 0.1%，最大值 100%
+ `writeIOLatencyMilliseconds` — 寫入 I/O 操作時注入的延遲量。這是將在實驗期間於寫入 I/O 指定百分比上觀察到的延遲值。

  範圍：最短 1 毫秒 (io2)/10 毫秒 （非 io2)，最長 60 秒
+ `duration` — 延遲將注入所選 I/O 百分比的持續時間。

  範圍：最短 1 秒，最長 12 小時

**監控延遲注入**  
您可以透過下列方式監控對磁碟區的效能影響：
+ 在 CloudWatch 中使用平均延遲指標，以取得每分鐘平均 I/O 延遲。如需詳細資訊，請參閱[使用 CloudWatch 監控 EBS 磁碟區](https://docs.aws.amazon.com/ebs/latest/userguide/using_cloudwatch_ebs.html)。
+ 使用透過 NVMe-CLI、CloudWatch 代理程式和 Prometheus 提供的 EBS 詳細效能統計資料，以取得每秒平均 I/O 延遲。詳細指標也提供 I/O 延遲長條圖，您可以用來分析磁碟區的延遲差異。如需詳細資訊，請參閱 [ NVMe 詳細效能統計資料](https://docs.aws.amazon.com/ebs/latest/userguide/nvme-detailed-performance-stats.html)。
+ 使用 [Amazon EBS 磁碟區狀態檢查](monitoring-volume-checks.md)。當您注入 I/O 延遲時，磁碟區的狀態會轉換為 `warning` 狀態。

**考量事項**  
使用 EBS 延遲注入時，請考慮下列事項：
+ 所有 [Nitro 型執行個體類型](https://docs.aws.amazon.com/ec2/latest/instancetypes/ec2-nitro-instances.html)都支援延遲注入，但 P4d, P5, P5e, Trn2u, G6, G6f, Gr6, Gr6f, M8i, M8i-flex, C8i-flex, R8i, R8i-flex, I8ge, Mac-m4pro 和 Mac-m4 除外。
+ 您可能會在實驗中指定的延遲值中看到高達 5% 的差異，以及觀察到的結果延遲。
+ 如果您驅動非常少量的 I/O 操作，動作參數中指定的 I/O 百分比可能不符合受動作影響的實際 I/O 百分比。

**在 Amazon EBS 磁碟區上執行延遲注入實驗**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇 **Volumes** (磁碟區)。

1. 選取要執行實驗的磁碟區，然後選擇**動作**、**彈性測試**、**注入磁碟區 I/O 延遲**。

    AWS Fault Injection Service 主控台隨即開啟。

1. 在**建立實驗**視窗中，選取要執行的實驗類型：**間歇性**、**增加**、**持續**或**減少**。

1. 針對 **IAM 角色選擇**，選擇**建立新角色**以建立新的角色， AWS FIS 以用來代表您執行實驗。或者，如果您先前已建立具有所需許可的 **IAM 角色，請選擇使用現有的** IAM 角色。

1. **定價預估**區段為您提供執行實驗成本的預估。使用 AWS FIS時，會根據您實驗的目標帳戶數量，向您收取動作從頭到尾執行的每分鐘費用。

1. 選擇 **Start experiment** (開始實驗)。