ネットワーク遅延は、アプリケーションとサービスの応答速度に影響を与え、ネットワーク遅延が大きいとユーザーエクスペリエンスが低下します。ネットワーク遅延につながる要因には、ネットワークトラフィックの増加や回線の不安定化などがあります。このドリルシナリオでは、ネットワーク遅延が発生した場合のシステムアラートと回復メカニズムを検証します。
制限事項
このドリルシナリオでは、tc トラフィックコントロール(TC)ユーティリティとその依存カーネルであるネットワークエミュレータ(NetEm)コンポーネントが必要です。
システムに
tcユーティリティがない場合は、sudo yum install -y iproute-tcまたはsudo apt-get install -y iproute2コマンドを実行してインストールするか、ACS-ECS-NetDelayプラグインの実行時に関連パラメーターを指定して自動的にインストールします。CentOS など、システムカーネルに NetEm コンポーネントがない場合は、
sudo yum install kernel-modules-extraコマンドを実行してコンポーネントパッケージをインストールし、システムを再起動します。警告kernel-modules-extraパッケージをインストールするとカーネルバージョンが変更されることに注意してください。慎重に実行してください。他のオペレーティングシステムを実行している Elastic Compute Service (ECS) インスタンスを使用してドリルを実行することをお勧めします。
実装
このドリルでは、ACS-ECS-NetDelay クラウドアシスタントプラグインを使用します。このプラグインは、tc ユーティリティと NetEm コンポーネントを利用して、ネットワークインターフェースコントローラー(NIC)に特定のルールを追加し、Linux カーネルのトラフィックを制御します。このプラグインは、クラウドアシスタント CIDR ブロック 100.100.0.0/16 のトラフィックに影響を与えることなく、すべての IP アドレスまたは単一の IP アドレスのトラフィックを制限できます。
手順
前提条件
クラウドアシスタントクライアント が、ドリルを実行する ECS インスタンスにインストールされていること。
ECS インスタンスで [クラウドアシスタント] のステータスが [正常] であること。詳細については、「クラウドアシスタントのステータスを表示し、異常を処理する」をご参照ください。
エラーを挿入する
sudo 権限を持つユーザーとして ECS インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
ACS-ECS-NetDelayクラウドアシスタントプラグインを実行します。sudo acs-plugin-manager --exec --plugin ACS-ECS-NetDelay --params inject,dev=eth0,[time=paramA],[jitter=paramB],[target-ip=paramC],[replace=paramD],[duration=paramE],[install-tc=paramF]オプションのエラー挿入パラメーターは、角かっこ(
[])で囲まれています。dev(必須): エラーを挿入する NIC(例: eth0)。
ifconfigコマンドを実行すると、システムで使用可能な NIC を表示できます。time(オプション): 遅延時間。単位: ミリ秒。デフォルト値: 100。
jitter(オプション): ジッター範囲。単位: ミリ秒。デフォルト値: 10。
target-ip(オプション): 影響を与えるターゲット IP アドレス。このパラメーターはデフォルトでは空で、すべての IP アドレスが影響を受けることを示します。ターゲット IP アドレスを指定すると、その IP アドレスのみが影響を受けます。
replace(オプション): NIC に TC ルールを設定した場合、競合が原因でエラー挿入が失敗する可能性があります。既存のルールを 上書き するには、このパラメーターを true に設定します。
duration(オプション): エラー期間。単位: 秒。デフォルト値: 300。
install-tc(オプション): システムに
tcユーティリティがない場合は、このパラメーターをtrueに設定して自動的にインストールします。デフォルト値:false。
次のコマンド出力は、
ACS-ECS-NetDelayプラグインが想定どおりに実行されたことを示しています。
ターゲットネットワークに ping を実行して、エラーが挿入されたかどうかを確認します。
エラーから回復する
方法 1: エラーがタイムアウトした後に自動回復を待ちます。
方法 2: 次のエラー回復コマンドを実行します。
sudo acs-plugin-manager --exec --plugin ACS-ECS-NetDelay --params recover
ドリルケース
ターゲットネットワークへのビジネスアクセスをシミュレートします。
ping www.taobao.comこの例では、www.taobao.com をターゲットネットワークとして使用しています。次のコマンド出力が返されます。

エラーを挿入します。
sudo acs-plugin-manager --exec --plugin ACS-ECS-NetDelay --params inject,dev=eth0,time=1000,jitter=30,duration=120この例では、ターゲット IP アドレスに 1,000 ミリ秒の遅延と 30 ミリ秒のジッターが挿入されます。

挿入結果を確認します。
ネットワーク遅延ステータスを確認します。エラーを挿入した後、ping コマンドの遅延が 1,000 ミリ秒増加し、実際の遅延は 970 ~ 1,030 ミリ秒の範囲になります。

エラー回復を待ちます。
挿入がタイムアウトすると、遅延は元のレベルに戻り、ネットワークは回復します。
