全部產品
Search
文件中心

Elastic Compute Service:磁碟IO高負載演練

更新時間:Apr 19, 2025

IO高負載是一種常見的故障現象,可能由於過高的業務進程負載、非預期的非業務進程佔用、記憶體資源不足等因素導致。IO高負載可能會導致業務效能受損,資料丟失等風險。因此通過此演練情境驗證系統在IO高負載時的警示和恢複情況。

實現原理

本方案使用雲助手外掛程式ACS-ECS-HighIo,內部使用dd工具(data duplicator)實現複製和轉換檔以提高磁碟IO負載,具體說明如下:

  • 對於讀模式,先寫入一個臨時檔案到目標路徑,通過迴圈讀取對應檔案類比讀壓力。

  • 對於寫入模式,通過迴圈寫入類比寫入壓力。

使用指南

演練準備

請確保您的ECS執行個體已安裝雲助手Agent,並且雲助手狀態正常。具體操作,請參見查看雲助手狀態及異常狀態處理

故障注入

  1. 登入ECS執行個體。

    具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體

  2. 使用具有sudo存取權限的使用者,運行雲助手外掛程式ACS-ECS-HighIo

    sudo acs-plugin-manager --exec --plugin ACS-ECS-HighIo --params inject,[model=paramA],[dir=paramB],[bs=paramC],[count=paramD],[duration=paramE]

    []內為可選故障注入參數,參數說明:

    • model(可選):讀/寫入模式,取值read/write,預設為read。

    • dir(可選):目標路徑,通過指定路徑來實現對不同磁碟的壓力測試,預設為系統根目錄。

    • bs(可選):塊大小,格式同dd命令中bs塊參數格式,用於控制每次讀寫的塊大小,該參數可影響讀寫速率,為了保證佔滿IO,預設為1M。

    • count(可選):一次讀取迴圈的塊數量,預設為1024。

    • duration(可選):期間,單位秒,預設為300(秒)。

    顯示如下所示時,說明雲助手外掛程式ACS-ECS-HighIo執行成功。

    image

  3. 執行iotop命令,查看故障注入是否成功。

    顯示如下所示時,說明故障注入成功。

    image

故障恢複

在ECS執行個體中執行故障恢複命令,查看I/O讀寫是否恢複到故障注入前的水平。

重要

演練完畢後必須執行一次該命令,以刪除產生的臨時檔案。

sudo acs-plugin-manager --exec --plugin ACS-ECS-HighIo --params recover

演練案例

  1. 故障注入:對usr路徑進行讀取,持續60s。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-HighIo --params inject,dir=/usr,duration=60

    顯示故障注入參數和注入結果,以及存放臨時檔案的目錄檔案。

    image

  2. usr目錄下,查看當前注入的臨時檔案,可以看到產生了AliFaultHighio.tmp臨時檔案。

    image

  3. 執行iotop命令,查看磁碟I/O讀寫情況。

    image

  4. 執行故障恢複命令。

    sudo acs-plugin-manager --exec --plugin ACS-ECS-HighIo --params recover