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 Metricコンソールにログインします。
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はTCP/IPのネットワーキングおよびトラフィック制御のために使用される次世代のツールキットです。 Iproute2は、最近のeRDMAバージョンでプリインストールされており、rdmaサブシステムの監視とチェックに使用できるRDMA
コマンドを提供します。
Iproute2のシンプルで構造化されたコマンドは、ifconfig、arp、route、netstatなどのnet-toolsのコマンドに取って代わります。 Iproute2を使用して、ネットワークインターフェイス、ルートテーブル、トラフィックを管理し、ネットワーク接続の問題をすばやく特定してトラブルシューティングできます。
cmやverebsのメッセージ数やトラフィック量など、eRDMAデバイスに関する統計情報を照会します。
rdma -p stat
eRDMAデバイスのリソース使用量を照会します。
rdma res
eRDMAデバイスのステータスを照会します。
rdma link
診断ツールを使用してRDMA関連の問題をチェックし、eRDMAのパフォーマンスを評価する
診断ツールを使用して、eRDMAの基本機能、eRDMAハイパフォーマンスコンピューティング (HPC) 環境、およびeRDMAの基本レイテンシを確認できます。 これにより、eRDMAを効果的に使用できます。
診断ツールは、チェック項目に対して次のいずれかの結果を返します。
PASS
: チェックアイテムがチェックに合格しました。SKIP
: チェック項目はチェックをサポートしておらず、スキップされます。失敗
: チェックツールがインストールされていないか、チェック項目がチェックに失敗しました。[失敗情報]
セクションにリストされているコマンドを実行して、失敗項目を確認し、問題をトラブルシューティングできます。その他の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の基本機能の確認
診断ツールを使用して、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ネットワークパフォーマンスをテストできます。
前提条件
次の要件が満たされています。
eRDMAは、テストするすべてのノード (ECSインスタンス) に想定どおりにインストールおよびデプロイされます。 eRDMAの設定方法については、「ECSインスタンスでのeRDMAの有効化」をご参照ください。
テストするすべてのノード間でパスワードなしのSSHアクセスが許可されます。 詳細については、「手順4: パスワード不要のSSHログインの設定」をご参照ください。
Python 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 # If the Python version is Python 2 and python2-pip is not installed, install python2-pip. sudo yum -y install python2-pip sudo python2 -m pip install --upgrade pip==20.3.4 sudo python2 -m pip install paramiko
Ubuntu
# python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip install paramiko # python2 # If python2-pip is not installed on the current node, install 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パーセンタイル待ち時間が続く。