Elastic Remote Direct Memory Access (eRDMA) を監視および確認して、問題を早期に特定して解決し、システム セキュリティを確保し、システム リソースを効率的に管理および最適化できます。このトピックでは、eRDMA の監視と確認に使用できるいくつかの方法とツールについて説明します。
前提条件
eRDMA は Elastic Compute Service (ECS) インスタンスにインストールおよび構成されています。eRDMA の構成方法については、「ECS インスタンスで eRDMA を有効にする」をご参照ください。
CloudMonitor を使用して eRDMA を監視する
Alibaba Cloud CloudMonitor を使用して、eRDMA の動作ステータスを監視できます。ビジネス要件に基づいてカスタム CloudMonitor メトリックを指定して、eRDMA 監視データの処理、レポート、およびアラートを実行できます。詳細については、「カスタム監視」をご参照ください。
eRDMA でサポートされている CloudMonitor メトリックを表示する
CloudMonitor メトリック コンソール にログインします。
Elastic Compute Service (ECS) ページで、メトリック リストの上にある検索ボックスに [eri] と入力して、eRDMA でサポートされている CloudMonitor メトリックを検索します。

eadm を使用して eRDMA の問題を診断およびトラブルシューティングする
eadm は、診断機能とリアルタイム監視機能を提供し、障害の特定に役立つ、ECS インスタンス上の eRDMA ドライバーによって自動的にインストールされるインハウスのユーザー空間管理ツールです。 eadm は以下の機能を提供します。
トラフィック監視や支援診断機能など、デバイス全体のリアルタイム トラフィック統計を収集する機能。
遅延 ack 機能や輻輳制御 (CC) アルゴリズムを構成する機能など、構成を実行およびクエリする機能。
次のセクションでは、いくつかの一般的な eadm コマンドについて説明します。その他の eadm コマンドについては、eadm -h コマンドを実行してコマンド ヘルプを取得してください。
eadm は診断とデバッグの目的でのみ使用され、変更される可能性があります。 eadm はすべてのシナリオに適しているわけではありません。
eadmコマンドのヘルプ ドキュメントを表示するeadm -h
eRDMA デバイスのリアルタイム トラフィックを監視する
ドライバー バージョンが
0.2.34以降の eRDMA デバイスは、トラフィック統計機能をサポートしています。eadm stat -d <ibdev_name> -l<ibdev_name>は、eRDMA デバイスの名前を指定します。ibv_devinfoコマンドを実行して、eRDMA デバイスの名前をクエリできます。 <ibdev_name> を実際の eRDMA デバイス名に置き換えます。環境内で使用可能な eRDMA デバイスが 1 つだけの場合は、-d <ibdev_name>パラメーターを省略できます。
cm メッセージや verebs メッセージの数、トラフィック量など、eRDMA デバイスに関する統計情報を取得します。
eadm stat -d <ibdev_name><ibdev_name>は、eRDMA デバイスの名前を指定します。ibv_devinfoコマンドを実行して、eRDMA デバイスの名前をクエリできます。 <ibdev_name> を実際の eRDMA デバイス名に置き換えます。環境内で使用可能な eRDMA デバイスが 1 つだけの場合は、-d <ibdev_name>パラメーターを省略できます。
現在の eRDMA ドライバーのバージョン情報を取得します。
eadm ver
info、dump、conf などの他の eadm コマンドを実行する場合、制限が適用されます。他の eadm コマンドは使用しないことをお勧めします。
Iproute2 を使用して eRDMA を監視および確認する
Iproute2 は、Linux ネットワークの構成と管理に使用される一連のツールです。 Iproute2 は、ip や ss など、ネットワーク インターフェース、ルーティング テーブル、およびトラフィック制御機能の管理と構成に使用される一連のコマンドライン ユーティリティを提供します。これにより、ネットワーク管理者はネットワーク接続の問題を迅速に特定して解決できます。 Iproute2 は、RDMA サブシステムの監視と確認に使用できる rdma コマンドも提供します。
Iproute2 は、Alibaba Cloud Linux 3 や Ubuntu 20.00 以降など、ほとんどの Linux ディストリビューションにプリインストールされています。詳細については、各オペレーティング システムの公式ドキュメントをご参照ください。
eRDMA デバイスのステータスをクエリします。
rdma link
完了キュー (CQ)、キュー ペア (QP)、メモリ領域 (MR) の数など、eRDMA デバイスのリソース使用量をクエリします。
説明RDMA ネットワーク通信では、キュー ペア (QP)、完了キュー (CQ)、メモリ領域 (MR)、および verbs Opcode がコア コンポーネントです。これらは RDMA 通信において重要な役割を果たし、RDMA ネットワーク通信の高効率と低レイテンシを保証します。
詳細については、「eRDMA の基本機能と仕様」をご参照ください。
rdma res
接続数、接続ステータス、送受信パケット数など、eRDMA デバイスに関するパフォーマンス統計をクエリします。
rdma -p stat
診断ツールを使用して RDMA 関連の問題を確認し、eRDMA パフォーマンスを評価する
診断ツールを使用して、eRDMA の基本機能、eRDMA ハイパフォーマンス コンピューティング (HPC) 環境、および eRDMA の基本レイテンシを確認できます。これは、eRDMA を効果的に使用するために役立ちます。
診断ツールは、チェック項目に対して次のいずれかの結果を返す場合があります。
PASS: チェック項目はチェックに合格しました。SKIP: チェック項目はチェックをサポートしておらず、スキップされます。FAIL: チェック ツールがインストールされていないか、チェック項目がチェックに失敗しました。fail infoセクションにリストされているコマンドを実行して、FAIL 項目を確認し、問題をトラブルシューティングできます。その他の INFO 情報: インストール モード、ドライバー バージョン、CC アルゴリズムなど、eRDMA 関連の構成情報を示します。
診断ツールをインストールする
eRDMA が構成されている ECS インスタンスでコマンドを実行して、診断ツールを取得します。
次のコマンドを実行して、内部 URL から診断ツールを取得します。
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py次のコマンドを実行して、パブリック URL から診断ツールを取得します。
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
eRDMA の基本機能を確認する
diagnose ツールを使用して、eRDMA ドライバーが想定どおりにインストールされているかどうか、ネットワーク接続が良好かどうか、eRDMA カーネルモード ドライバーのインストール方法など、eRDMA の基本機能を確認できます。これにより、eRDMA の基本機能が想定どおりに動作し、eRDMA の高スループットと低レイテンシの利点が活用されます。
次の手順を実行します。
eRDMA が構成されている ECS インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のいずれかのコマンドを実行して、診断ツールを取得します。
次のコマンドを実行して、内部 URL から診断ツールを取得します。
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py次のコマンドを実行して、パブリック URL から診断ツールを取得します。
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
次のコマンドを実行して、eRDMA の基本機能を確認します。
python diagnose.py -dチェック項目の結果を含む、次のコマンド出力が返されます。チェック項目については、「eRDMA 基本機能チェックで使用されるチェック項目」をご参照ください。

eRDMA HPC 環境を確認する
eRDMA 環境で HPC アプリケーションを実行する場合は、追加の依存関係と構成が必要になる場合があります。診断ツールを使用して、eRDMA HPC 環境に必要な依存関係を確認できます。
次の手順を実行します。
eRDMA が構成されている ECS インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のいずれかのコマンドを実行して、診断ツールを取得します。
次のコマンドを実行して、内部 URL から診断ツールを取得します。
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py次のコマンドを実行して、パブリック URL から診断ツールを取得します。
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
次のコマンドを実行して、eRDMA HPC 環境に必要な依存関係を確認します。
python diagnose.py --hpc-check正常な場合、チェック項目の結果を含む、次のコマンド出力が返されます。チェック項目については、「eRDMA HPC 環境チェックで使用される依存関係のチェック項目」をご参照ください。

eRDMA ネットワーク パフォーマンスをテストする
診断ツールの perftest 機能を使用して、ECS インスタンス間の eRDMA ネットワーク パフォーマンスをテストできます。
前提条件
次の要件が満たされています。
テストするすべてのノード (ECS インスタンス) に eRDMA が想定どおりにインストールおよびデプロイされています。 eRDMA の構成方法については、「ECS インスタンスで eRDMA を有効にする」をご参照ください。
テストするすべてのノード間でパスワードなしの SSH アクセスが許可されています。詳細については、「手順 4: パスワードなしの SSH ログインを構成する」をご参照ください。
テストするすべてのノードに Python paramiko 依存関係がインストールされています。
説明診断ツールは接続に paramiko を使用します。
Python paramiko 依存関係をインストールするには、インスタンスのオペレーティング システムに基づいて、次のいずれかのコマンド セットを使用します。 Python のバージョンに特別な要件がない場合は、構成の作業負荷を軽減するために Python 3 を使用することをお勧めします。
Alibaba Cloud Linux または CentOS
# python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip install paramiko # python2 # Python のバージョンが Python 2 で、python2-pip がインストールされていない場合は、python2-pip をインストールします。 sudo yum -y install python2-pip sudo python2 -m pip install --upgrade pip==20.3.4 sudo python2 -m pip install paramikoUbuntu
# python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip install paramiko # python2 # 現在のノードに python2-pip がインストールされていない場合は、python2-pip をインストールします。 sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update sudo apt install python2 sudo curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py sudo python2 get-pip.py sudo python2 -m pip install --upgrade pip==20.3.4 sudo python2 -m pip install paramiko
手順
eRDMA が構成されている ECS インスタンスに接続します。
詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。
次のいずれかのコマンドを実行して、診断ツールを取得します。
次のコマンドを実行して、内部 URL から診断ツールを取得します。
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py次のコマンドを実行して、パブリック URL から診断ツールを取得します。
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
次のコマンドを実行して、eRDMA レイテンシを確認します。
python diagnose.py --perftest --hosts <n1> <n2> --user <username> --key-file </path/to/private_key>次のパラメーターに注意してください。
--hosts <n1> <n2>: チェックするノード (ECS インスタンス) を指定します。ノードはスペースで区切ります。<n1> <n2>をノード上の ERI のプライベート IP アドレスに置き換えます。--user <username>: パスワードなしの SSH ログインに使用するユーザー名を指定します。 <username> を実際のユーザー名に置き換えます。--key-file </path/to/private_key>: パスワードなしの SSH ログインに使用する秘密鍵ファイルの絶対パスを指定します。 </path/to/private_key> を秘密鍵ファイルの実際の絶対パスに置き換えます。
2 つの ECS インスタンス間の eRDMA レイテンシを示す、次のコマンド出力が返されます。詳細については、「eRDMA ネットワーク パフォーマンスをテストする」をご参照ください。
コマンド出力の各テーブルには、操作のリクエスト開始者からリクエスト受信者へのレイテンシが表示されます。他の列と行の各セル内の値は、マイクロ秒単位の平均レイテンシを表し、その後に括弧で囲まれた 99.9 パーセンタイル レイテンシが続きます。

