ビジネスの安定性を確保するには、CPU 使用率を適切な範囲内に維持する必要があります。CPU 使用率が過度に高いと、ビジネスの遅延、さらには中断が発生する可能性があります。このトピックでは、Elastic Compute Service (ECS) インスタンスに高 CPU 使用率の障害を注入して、業務システムが特定の CPU 負荷にどのように反応するかをテストし、システムの回復機能を検査し、監視およびアラートメカニズムの有効性を検証する方法について説明します。その後、ドリル結果に基づいて対応戦略を開発できます。これにより、本番環境で CPU 使用率が高くなった場合に、システムが迅速に通常の動作を再開できるようになり、ビジネスの中断のリスクを軽減できます。
実装
高 CPU 使用率ドリルでは、ecs-fault-highcpu
クラウドアシスタントプラグインを使用して AliFaultHighCpu
注入プロセスを開始し、特定のデューティサイクルで CPU タイムスライスを消費します。
手順
前提条件
クラウドアシスタントクライアント が、ドリルを実行する ECS インスタンスにインストールされていること。
[クラウドアシスタント] のステータスが、ECS インスタンス上で [正常] であること。詳細については、「クラウドアシスタントのステータスを表示し、異常を処理する」をご参照ください。
障害を注入する
sudo 権限を持つユーザーとして、
ecs-fault-highcpu
クラウドアシスタントプラグインを実行します。sudo acs-plugin-manager --exec --plugin ecs-fault-highcpu --params inject,[cpu-percent=paramA],[cpu-list=paramB]
オプションの障害注入パラメーターは、角かっこ(
[]
)で囲みます。cpu-percent: ターゲット CPU 使用率。このパラメーターを空のままにすると、デフォルト値 100 が使用されます。
説明cpu-percent パラメーターは、注入プロセスの CPU 使用率を指定します。合計 CPU 使用率は、他のプロセスによっても影響を受けます。
cpu-list: 負荷を特定の vCPU にバインドします。たとえば、cpu-list=0-2/4 は、負荷がコア 0、コア 1、コア 2、およびコア 4 にバインドされることを指定します。このパラメーターを空のままにすると、負荷はすべての vCPU にバインドされます。
障害が注入されたかどうかを確認します。
ECS インスタンスで、
top
コマンドを実行します。 CPU 使用率が増加した場合、障害が注入されています。カーネルモード(sy)とユーザーモード(us)の CPU 使用率の合計は、指定されたターゲット CPU 使用率とほぼ等しくなります。CloudMonitor が提供する CPU 使用率チャートを表示します。プラグインの実行後に CPU 使用率が増加した場合、障害が注入されています。
障害から回復する
次の方法を使用して、インスタンスの通常の動作を再開します。
方法 1(推奨): ECS インスタンスで次の回復コマンドを実行し、CPU 使用率が障害注入前のレベルに低下したかどうかを確認します。
sudo acs-plugin-manager --exec --plugin ecs-fault-highcpu --params recover
次のコマンド出力は、CPU 使用率が障害注入前のレベルに低下し、システムが通常の動作を再開したことを示しています。
方法 2:
AliFaultHighCpu
プロセスを終了します。プロセスを終了した後に ECS インスタンスへの後続の障害注入に影響を与えないようにするには、方法 1 で説明されている回復コマンドを実行します。
sudo kill <AliFaultHighCpu PID>