I/O ハングは、オペレーティングシステムが特定の理由により読み取りまたは書き込み操作を完了できない場合に発生し、プロセスまたはオペレーティングシステムの例外を引き起こします。 I/O ハングは、ハードウェア障害、ドライバの問題、ファイルシステムエラー、ネットワーク遅延、ネットワーク輻輳など、さまざまな要因によって発生する可能性があります。 これにより、パフォーマンスの低下、サービスの遅延、データの不整合など、ビジネスにリスクが生じます。 このトピックでは、ディスク I/O ハングを挿入および修正できることを確認するためのドリルの実行方法について説明します。
制限事項
Elastic Compute Service (ECS) インスタンスは、Alibaba Cloud Linux 3 および 2 など、コントロールグループバージョン 1 (cgroup v1) と互換性のある Linux ディストリビューションを実行する必要があります。
実装
ACS-ECS-IoHang という名前のクラウドアシスタントプラグインは、cgroup を使用してディスク I/O 速度制限を実行します。 cgroup は Linux カーネルによって提供されるメカニズムであり、1 つまたは複数のプロセスのリソース使用量を制限して、CPU、メモリ、IO リソース、およびネットワーク帯域幅をきめ細かく制御できます。
手順
前提条件
クラウドアシスタントクライアント が、ドリルを実行する ECS インスタンスにインストールされている。
[クラウドアシスタント] のステータスが、ECS インスタンスで [正常] であること。 詳細については、「クラウドアシスタントのステータスを表示し、異常を処理する」をご参照ください。
エラーの挿入
ECS インスタンスにログオンします。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
sudo ユーザを使用して、
ACS-ECS-IoHangプラグインを実行します。sudo acs-plugin-manager --exec --plugin ACS-ECS-IoHang --params inject,disk=vda,[duration=paramA]角かっこ (
[]) 内のパラメーターはオプションです。 次のパラメーターに注意してください。disk (必須): 宛先ディスク。 lsblk コマンドを実行して、インスタンスに接続されているディスクを表示できます。 すべてのディスクにエラーを挿入する場合は、
diskを all に設定します。duration (オプション): エラー挿入の期間。 単位: 秒。 デフォルト値: 300。
エラー挿入が期待どおりに実行されているかどうかを確認します。
次のコマンド出力が表示された場合は、エラー挿入は成功です。

ビジネスの読み取りおよび書き込み速度が期待どおりであるかどうかを確認します。
エラーの回復
(推奨) 方法 1: タイムアウト後に自動回復を待ちます。
説明エラー挿入は 300 秒後に自動的にタイムアウトします。 システムディスクでエラー挿入が実行された場合、自動エラー回復が発生しない場合があります。 この場合、ECS コンソールでインスタンスを 強制的に再起動 します。 詳細については、「インスタンスを再起動する」をご参照ください。
方法 2: エラーデータがデータディスクのみに挿入されている場合は、次のコマンドを実行して、ECS インスタンスの I/O ハングの問題を解決します。
sudo acs-plugin-manager --exec --plugin ACS-ECS-IoHang --params recover
例
lsblk コマンドを実行して、ECS インスタンスに接続されているディスクを表示および選択します。 この例では、vdb データディスクがエラー挿入に使用されます。
ドリル効果を直感的に観察するために、vdb データディスクからデータを読み取るビジネスシナリオをシミュレートします。 ドリルに実際のビジネスシナリオを使用する場合は、この手順をスキップします。
sudo dd if=/dev/vdb of=/dev/nulliotopコマンドを実行して、I/O 使用量をクエリします。説明iotop ツールがインストールされていない場合は、Linux ディストリビューションに基づいて iotop をインストールするコマンドを実行します。
Alibaba Cloud Linux 3 または 2 または CentOS 7
sudo yum install -y iotopUbuntu または Debian
sudo apt install -y iotop

エラー挿入を実行します。
sudo acs-plugin-manager --exec --plugin ACS-ECS-IoHang --params inject,disk=vdb,duration=120次のコマンド出力は、挿入パラメーターと、指定されたディスクのメジャーおよびマイナーデバイス番号を示しています。 これは、挿入が成功したことを示しています。

エラー挿入の効果を確認します。
iotopコマンドを実行して、I/O 使用量を確認します。 現在のディスク読み取り速度は 0 B/s に低下します。
エラー回復を待ちます。
次の図は、エラー挿入がタイムアウトした後、シミュレートされたビジネスプロセスのディスク読み取り速度が回復したことを示しています。
