デフォルトでは、LinuxオペレーティングシステムのIP仮想サーバー (IPVS) モジュールは推定機能を有効にします。 大規模なKubernetesクラスターシナリオなど、大規模なサーバーが多数のサービスをホストするシナリオでは、サーバーがネットワークリクエストを処理するときに、推定機能により数十〜数百ミリ秒のレイテンシまたはネットワークジッターが発生する可能性があります。 Alibaba Cloud LinuxイメージのIPVSの見積もり機能を無効にできます。 この機能を使用してパケット数や接続数などの統計情報を収集しない場合は、IPVSの推定機能を無効にして、統計情報収集中に発生する追加のオーバーヘッドやジッターを排除することをお勧めします。
背景情報
制限事項
IPVSの推定機能は、次のカーネルバージョンを実行するAlibaba Cloud Linuxイメージに対してのみ無効にできます。
Alibaba Cloud Linux 2:
4.19.91-22
以降Alibaba Cloud Linux 3:
5.10.134-14
以降
推定機能を無効にしてネットワークジッタの問題を解決する
sudo ipvsadm -Ln -- stats
コマンドなどのコマンドを使用してIPVSの推定機能を無効にすると、IPVSのサービス統計機能は使用できなくなります。 そのため, 対応するサービスの接続数および受信パケット数の変更を取得できません。 対応するビジネスへの影響を評価します。 見積もり機能を無効にするときは注意してください。
Elastic Compute Service (ECS) インスタンスに接続します。
詳細については、「パスワードまたはキーを使用したLinuxインスタンスへの接続」をご参照ください。
ECSインスタンスの見積もり機能を無効にします。
次のコマンドを実行して、
/etc/sysctl.conf
という名前のsysctl構成ファイルを開きます。sudo vim /etc/sysctl.conf
ファイルの末尾に次の行を追加します。 次に、ファイルを保存して閉じます。
net.ipv4.vs.ru n_estimation = 0
次のコマンドを実行して、変更された構成を有効にします。
sudo sysctl -p
コンテナシナリオでは、次の操作を実行して推定機能を無効にする必要があります。
シナリオ1: IPVSモジュールがリロードされるたびに、
sysctl -p
コマンドを実行して設定を有効にする必要があります。 システムがIPVSモジュールを再ロードするたびに、modprobe構成ファイルを使用してsysctl -p
コマンドを自動的に実行することを推奨します。 これにより、sysctl.conf
設定が有効になり、推定機能が無効になります。modprobe構成ファイルを作成します。 次の例では、
ipvs.conf
ファイルが作成されています。sudo vim /etc/modprobe.d/ipvs.conf
次のコンテンツをファイルに追加します。 次に、ファイルを保存して閉じます。
options ip_vs run_estimation=0 post-up sysctl -p
シナリオ2: ネットワーク名前空間コンテナなどのコンテナにIPVSルールを設定した場合、各コンテナの推定機能を無効にする必要があります。
説明Alibaba Cloud Container Service For Kubernetes (ACK) の場合、Kube-proxyのデフォルトのプロキシモードはIPVSであり、IPVSルールはホスト側で設定されます。 この場合、各コンテナの推定機能を無効にする必要はありません。 ACKを使用する場合は、この操作をスキップします。
推定機能が無効になっていることを確認します。
方法1:
sudo sysctl net.ipv4.vs.ru n_estimation
コマンドを実行します。0
が返された場合、推定機能は無効になります。方法2:
sudo ipvsadm -Ln -- stats
コマンドを実行します。 統計値が変化しない場合、推定機能は無効にされる。重要ipvsadm
ツールをインストールしていない場合は、sudo yum install ipvsadm
コマンドを実行してツールをインストールします。
次に何をすべきか
ネットワークのジッタとレイテンシの問題が解決されたことを確認する
方法1: ECSインスタンスのIPアドレスまたはドメイン名を
Ping
します。 レイテンシ値が比較的安定しており、妥当な範囲内にある場合、ネットワークレイテンシの問題は解決されます。方法2: ネットワークパフォーマンステストツールを使用して、包括的なレイテンシとジッタテストを実行し、ロングテールのレイテンシが存在するかどうかを確認します。 ロングテールレイテンシの頻度と期間が大幅に短縮された場合、またはロングテールレイテンシが再発しない場合、ネットワークジッタとレイテンシの問題は解決されます。
説明推定機能を無効にしても、ネットワークのジッターやレイテンシが残っている場合は、Container Service for Kubernetes (ACK) コンソールのネットワーク診断機能を使用して問題を診断できます。 詳細については、「ネットワーク診断」をご参照ください。
推定機能の再有効化
推定機能を再度有効にする場合は、sysctlおよびmodprobe構成ファイルのrun_estimation
値を1
に変更します。