オペレーティングシステムでは、プロセス ID(PID)はプロセスを一意に識別するために使用される番号であり、プロセスが終了した後に再利用できます。 PID を使い果たすことは困難ですが、誤って使い果たしてしまう可能性があります。 PID が誤って使い果たされると、新しいプロセスを作成できなくなり、サービスが一時停止される可能性があり、ビジネス機能に影響します。 PID 不足訓練を実行して、PID の枯渇またはサービスの一時停止シナリオをシミュレートし、サービスの高可用性をテストする必要があります。
実装
PID 不足訓練では、ACS-ECS-TaskLimit クラウドアシスタントプラグインを使用して、fork() メソッドを使用して、pid_max と threads-max の値の小さい方に達するまでプロセスを作成することにより、新しいプロセスまたはスレッドの作成を防止します。
手順
前提条件
クラウドアシスタントクライアント が、訓練を実行する ECS インスタンスにインストールされている。
ECS インスタンスで [クラウドアシスタント] のステータスが [正常] であること。 詳細については、「クラウドアシスタントのステータスを表示し、異常を処理する」をご参照ください。
エラーを挿入する
ECS インスタンスにログオンします。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
sudo 権限を持つユーザーとして
ACS-ECS-TaskLimitクラウドアシスタントプラグインを実行します。重要ACS-ECS-TaskLimitクラウドアシスタントプラグインは、新しいビジネスプロセスの作成に影響を与えますが、既存のビジネスプロセスには影響を与えません。sudo acs-plugin-manager --exec --plugin ACS-ECS-TaskLimit --params inject次の出力は、
ACS-ECS-TaskLimitクラウドアシスタントプラグインが実行されていることを示しています。
エラーが挿入されたかどうかを確認します。
エラーが挿入された場合、新しいビジネスプロセスは次のエラーメッセージで作成に失敗します:
-bash: fork: retry: Resource temporarily unavailable.
エラーから回復する
次のいずれかの方法を使用して、挿入されたエラーを削除できます。
方法 1(推奨):インスタンスを再起動します。 詳細については、「インスタンスを再起動する」をご参照ください。
方法 2:次の回復コマンドを実行します。
重要システムのブロックが原因で、回復コマンドが実行に失敗する可能性があります。
sudo acs-plugin-manager --exec --plugin ACS-ECS-TaskLimit --params recover