すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:eRDMA の監視と確認

最終更新日:Apr 12, 2025

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 メトリックを表示する

  1. CloudMonitor メトリック コンソール にログインします。

  2. Elastic Compute Service (ECS) ページで、メトリック リストの上にある検索ボックスに [eri] と入力して、eRDMA でサポートされている CloudMonitor メトリックを検索します。

    image

eadm を使用して eRDMA の問題を診断およびトラブルシューティングする

eadm は、診断機能とリアルタイム監視機能を提供し、障害の特定に役立つ、ECS インスタンス上の eRDMA ドライバーによって自動的にインストールされるインハウスのユーザー空間管理ツールです。 eadm は以下の機能を提供します。

  • トラフィック監視支援診断機能など、デバイス全体のリアルタイム トラフィック統計を収集する機能。

  • 遅延 ack 機能や輻輳制御 (CC) アルゴリズムを構成する機能など、構成を実行およびクエリする機能

次のセクションでは、いくつかの一般的な eadm コマンドについて説明します。その他の eadm コマンドについては、eadm -h コマンドを実行してコマンド ヘルプを取得してください。

警告

eadm は診断とデバッグの目的でのみ使用され、変更される可能性があります。 eadm はすべてのシナリオに適しているわけではありません。

  • eadm コマンドのヘルプ ドキュメントを表示する

    eadm -h

    image

  • 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> パラメーターを省略できます。

    image

  • cm メッセージや verebs メッセージの数、トラフィック量など、eRDMA デバイスに関する統計情報を取得します。

    eadm stat -d <ibdev_name>

    <ibdev_name> は、eRDMA デバイスの名前を指定します。 ibv_devinfo コマンドを実行して、eRDMA デバイスの名前をクエリできます。 <ibdev_name> を実際の eRDMA デバイス名に置き換えます。環境内で使用可能な eRDMA デバイスが 1 つだけの場合は、-d <ibdev_name> パラメーターを省略できます。

    image

  • 現在の eRDMA ドライバーのバージョン情報を取得します。

    eadm ver
説明

infodumpconf などの他の eadm コマンドを実行する場合、制限が適用されます。他の eadm コマンドは使用しないことをお勧めします。

Iproute2 を使用して eRDMA を監視および確認する

Iproute2 は、Linux ネットワークの構成と管理に使用される一連のツールです。 Iproute2 は、ipss など、ネットワーク インターフェース、ルーティング テーブル、およびトラフィック制御機能の管理と構成に使用される一連のコマンドライン ユーティリティを提供します。これにより、ネットワーク管理者はネットワーク接続の問題を迅速に特定して解決できます。 Iproute2 は、RDMA サブシステムの監視と確認に使用できる rdma コマンドも提供します。

説明

Iproute2 は、Alibaba Cloud Linux 3 や Ubuntu 20.00 以降など、ほとんどの Linux ディストリビューションにプリインストールされています。詳細については、各オペレーティング システムの公式ドキュメントをご参照ください。

  • eRDMA デバイスのステータスをクエリします。

    rdma link

    image

  • 完了キュー (CQ)、キュー ペア (QP)、メモリ領域 (MR) の数など、eRDMA デバイスのリソース使用量をクエリします。

    説明

    RDMA ネットワーク通信では、キュー ペア (QP)、完了キュー (CQ)、メモリ領域 (MR)、および verbs Opcode がコア コンポーネントです。これらは RDMA 通信において重要な役割を果たし、RDMA ネットワーク通信の高効率と低レイテンシを保証します。

    詳細については、「eRDMA の基本機能と仕様」をご参照ください。

    rdma res

    image

  • 接続数、接続ステータス、送受信パケット数など、eRDMA デバイスに関するパフォーマンス統計をクエリします。

    rdma -p stat

    image

診断ツールを使用して 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

診断ツールのヘルプを表示する

python diagnose.py -h

image

eRDMA の基本機能を確認する

diagnose ツールを使用して、eRDMA ドライバーが想定どおりにインストールされているかどうか、ネットワーク接続が良好かどうか、eRDMA カーネルモード ドライバーのインストール方法など、eRDMA の基本機能を確認できます。これにより、eRDMA の基本機能が想定どおりに動作し、eRDMA の高スループットと低レイテンシの利点が活用されます。

eRMA 基本機能チェックで使用されるチェック項目

チェック項目

説明

期待される結果

エラー結果と解決策

erdma device

eRDMA デバイスが存在するかどうか。

PASS

FAIL: インスタンスの作成時に、インスタンスのプライマリ ENI に対して eRDMA を有効にしていないか、eRDMA が有効になっているセカンダリ ENI をインスタンスにバインドしていない可能性があります。詳細については、「ECS インスタンスで eRDMA を有効にする」をご参照ください。

erdma installed

eRDMA ドライバーが想定どおりにインストールされているかどうか。

PASS

FAIL: eRDMA ドライバーが想定どおりにインストールされていません。 eRDMA 構成中に eRDMA ドライバーをインストールするために行った手順を確認するか、ドライバーを再インストールしてください。詳細については、「ECS インスタンスに eRDMA ドライバーをインストールする」をご参照ください。

erdma loaded

eRDMA ドライバーが想定どおりにロードされるかどうか。

PASS

FAIL: eRDMA ドライバーが想定どおりにロードされません。この問題は、インスタンスの再起動前にドライバーがインストールされている場合に発生する可能性があります。 modprobe erdma コマンドを実行して問題を解決してください。

ibverbs loaded

ib_verbs ドライバーが想定どおりにロードされるかどうか。

PASS

FAIL: ib_verbs ドライバーが想定どおりにロードされません。 modprobe ib_uverbs コマンドを実行して問題を解決してください。

erdma tools

eRDMA 関連ツールがインストールされているかどうかを確認します。

PASS

FAIL: eadm|rdma|ibv_devinfo コマンドを実行して、不足しているツールを確認してください。ほとんどの場合、eRDMA 関連ツールは eRDMA ドライバーと一緒にインストールされます。 eRDMA 構成中に eRDMA ドライバーをインストールするために行った手順を確認するか、ドライバーを再インストールしてください。詳細については、「eRDMA の使用」トピックのECS インスタンスに eRDMA ドライバーをインストールする」をご参照ください。

hca detected

eRDMA デバイスがユーザー空間ドライバーによって検出されるかどうか。

PASS

FAIL: eRDMA デバイスがユーザー空間ドライバーによって検出されません。この問題は、erdma deviceerdma installederdma loaded、および ibverbs loaded チェック項目がチェックに失敗した場合に発生します。 eRDMA ドライバーがインストールされ、想定どおりにロードされているかどうかを確認してください。

hca active

eRDMA デバイスに対応する ENI が正常な状態にあるかどうか

PASS

FAIL: この問題は、現在の eRDMA デバイスに対応する ENI が UP 状態にない場合に発生します。この問題は、特定の初期カーネル バージョンで発生する可能性があります。 dhclient -v ethx コマンドを実行して ENI を有効にし、eRDMA デバイスが ACTIVE 状態にあるかどうかを確認してください。詳細については、「eRDMA が想定どおりに構成されているかどうかを確認する」をご参照ください。

erdma stats

eRDMA デバイスに関するエラー統計が存在しないかどうか。

PASS

  • SKIP: オペレーティング システムが rdma stat コマンドをサポートしていない可能性があります。

  • FAIL: eRDMA デバイスに関するエラー統計が存在する可能性があります。テクニカル サポートをリクエストする場合は、rdma -p stat コマンドの出力を提供することをお勧めします。

network config

ネットワーク接続が良好かどうか。

PASS

FAIL: 複数の ENI の IP アドレスが同じサブネット内にある場合、特定のシナリオで eRDMA が想定どおりに動作しない可能性があります。

erdma dmesg

カーネルに eRDMA 関連のアラートが存在しないかどうか。

PASS

FAIL: カーネルに eRDMA 関連のアラートが存在します。アラートのエラー詳細を確認し、ドライバーを再ロードして問題を解決してください。

atomic support

eRDMA デバイスが RDMA Atomic Operation をサポートしているかどうか。

PASS

FAIL: 現在の eRDMA デバイスは RDMA Atomic Operation をサポートしていません。 RDMA Atomic Operation が不要な場合は、エラーを無視してください。

説明

RDMA Atomic Operation は、アトミック レベルでメモリに対して完全で一貫性のある操作を実行する機能であり、特定のシナリオにのみ適しています。 RDMA Atomic Operation が不要な場合は、エラーを無視してください。

go-back-n support

eRDMA デバイスが Go-back-N 機能をサポートしているかどうか。

PASS

  • SKIP: 現在の eRDMA デバイスは、Go-back-N 構成のクエリをサポートしていない可能性があります。

  • FAIL: eadm ツールが想定どおりにインストールされていないか、eRDMA デバイスが Go-back-N 機能をサポートしていない可能性があります。

説明

Go-back-N は、特定のシナリオにのみ適した eRDMA の拡張機能です。 Go-back-N 機能が不要な場合は、エラーを無視してください。

erdma install mode

eRDMA カーネルモード ドライバーのインストール モード。

  • Standard: eRDMA カーネルモード ドライバーは標準モードでインストールされ、RDMA Connection Manager (CM) 接続のみをサポートします。

  • Compat: eRDMA カーネルモード ドライバーは互換モードでインストールされ、RDMA CM 接続とアウトオブバンド (OOB) 接続をサポートします。

    重要

FAIL: eRDMA カーネルモード ドライバーのインストール モードが検出されません。この問題は、erdma loaded 項目が要件を満たしておらず、チェックに失敗した場合に発生する可能性があります。 eRDMA カーネルモード ドライバーを再インストールしてください。詳細については、「ECS インスタンスに eRDMA ドライバーをインストールする」をご参照ください。

kernel driver version

eRDMA カーネルモード ドライバーのバージョン。

eRDMA カーネルモード ドライバーのバージョン番号。例: 0.2.37

FAIL: eRDMA カーネルモード ドライバーのバージョンが検出されません。この問題は、erdma loaded または erdma tools 項目が要件を満たしておらず、チェックに失敗した場合に発生する可能性があります。 eRDMA ドライバーがインストールされ、想定どおりにロードされているかどうかを確認してください。詳細については、「eRDMA が想定どおりに構成されているかどうかを確認する」をご参照ください。

rdma-core version

eRDMA ユーザーモード ドライバーのバージョン。

eRDMA ユーザーモード ドライバーのバージョン番号。例: 44.1-2

FAIL: eRDMA ユーザーモード ドライバーのバージョンが検出されません。この問題は、eRDMA ユーザーモード ドライバーが想定どおりにインストールされていない場合に発生する可能性があります。ドライバーを再インストールしてください。詳細については、「ECS インスタンスに eRDMA ドライバーをインストールする」をご参照ください。

cc algorithm

eRDMA の CC アルゴリズム。

eRDMA の CC アルゴリズム。例: hpcc_rtt

FAIL: eRDMA の CC アルゴリズムが検出されません。この問題は、erdma loaded または erdma tools 項目が要件を満たしておらず、チェックに失敗した場合に発生する可能性があります。 eRDMA ドライバーがインストールされ、想定どおりにロードされているかどうかを確認してください。

次の手順を実行します。

  1. eRDMA が構成されている ECS インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. 次のいずれかのコマンドを実行して、診断ツールを取得します。

    • 次のコマンドを実行して、内部 URL から診断ツールを取得します。

      wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
    • 次のコマンドを実行して、パブリック URL から診断ツールを取得します。

      wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
  3. 次のコマンドを実行して、eRDMA の基本機能を確認します。

    python diagnose.py -d

    チェック項目の結果を含む、次のコマンド出力が返されます。チェック項目については、「eRDMA 基本機能チェックで使用されるチェック項目」をご参照ください。

    image

eRDMA HPC 環境を確認する

eRDMA 環境で HPC アプリケーションを実行する場合は、追加の依存関係と構成が必要になる場合があります。診断ツールを使用して、eRDMA HPC 環境に必要な依存関係を確認できます。

eRDMA HPC 環境チェックで使用される依存関係のチェック項目

eRDMA HPC 環境チェックには、必要な依存関係に関連する次のチェック項目が含まれます。eRDMA の CC アルゴリズム、Go-back-N がサポートされているかどうか、DAPL 1.0 関連の項目、および DAPL 2.0 関連の項目。依存関係が不要な場合は、報告されたエラーを無視してください。たとえば、DAPL 2.0 のみが必要な場合は、DAPL 1.0 について報告されたエラーを無視してください。

チェック項目

説明

期待される結果

エラー結果と解決策

cc algorithm

eRDMA の CC アルゴリズム。

eRDMA の CC アルゴリズム。例: hpcc_rtt。

FAIL: eRDMA の CC アルゴリズムが検出されません。この問題は、eadm ツールが想定どおりにインストールされていないか、eRDMA の CC アルゴリズムのクエリをサポートしていない場合に発生する可能性があります。

go-back-n support

eRDMA デバイスが Go-back-N 機能をサポートしているかどうか。

PASS

  • SKIP: 現在の eRDMA デバイスは、Go-back-N 構成のクエリをサポートしていない可能性があります。

  • FAIL: eadm ツールが想定どおりにインストールされていないか、eRDMA デバイスが Go-back-N 機能をサポートしていない可能性があります。

Go-back-N 機能がサポートされていない場合、HPC アプリケーションが影響を受ける可能性があります。この機能が不要な場合は、エラーを無視してください。

dapl1 install

DAPL 1.0 が想定どおりにインストールされているかどうか。

PASS

FAIL: DAPL 1.0 の共有ライブラリまたは DAPL 1.0 構成ファイルが存在しません。 DAPL 1.0 が想定どおりにインストールされているかどうかを確認してください。 DAPL 1.0 が不要な場合は、エラーを無視してください。

dapl1 config

DAPL 1.0 構成ファイルに eRDMA 構成が含まれているかどうか。

PASS

FAIL: DAPL 1.0 構成ファイルに eRDMA 構成が存在しません。 DAPL 1.0 構成ファイルを確認し、ファイルに eRDMA 構成を追加してください。 DAPL 1.0 が不要な場合は、エラーを無視してください。

dapl2 install

DAPL 2.0 が想定どおりにインストールされているかどうか。

PASS

FAIL: DAPL 2.0 の共有ライブラリまたは DAPL 2.0 構成ファイルが存在しません。 DAPL 2.0 が想定どおりにインストールされているかどうかを確認してください。 DAPL 2.0 が不要な場合は、エラーを無視してください。

dapl2 config

DAPL 2.0 構成ファイルに eRDMA 構成が含まれているかどうか。

PASS

FAIL: DAPL 2.0 構成ファイルに eRDMA 構成が存在しません。 DAPL 2.0 構成ファイルを確認し、ファイルに eRDMA 構成を追加してください。 DAPL 2.0 が不要な場合は、エラーを無視してください。

dapl2 test

DAPL 2.0 で dtest コマンドが想定どおりに実行されるかどうか。

PASS

FAIL: dtest コマンドが実行に失敗しました。 DAPL 2.0 が想定どおりにインストールまたは構成されていない可能性があります。

次の手順を実行します。

  1. eRDMA が構成されている ECS インスタンスに接続します。

    詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

  2. 次のいずれかのコマンドを実行して、診断ツールを取得します。

    • 次のコマンドを実行して、内部 URL から診断ツールを取得します。

      wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
    • 次のコマンドを実行して、パブリック URL から診断ツールを取得します。

      wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
  3. 次のコマンドを実行して、eRDMA HPC 環境に必要な依存関係を確認します。

    python diagnose.py --hpc-check

    正常な場合、チェック項目の結果を含む、次のコマンド出力が返されます。チェック項目については、「eRDMA HPC 環境チェックで使用される依存関係のチェック項目」をご参照ください。

    image.png

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 paramiko 

      Ubuntu

      # 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
  • 手順

    1. eRDMA が構成されている ECS インスタンスに接続します。

      詳細については、「Workbench を使用して SSH 経由で Linux インスタンスに接続する」をご参照ください。

    2. 次のいずれかのコマンドを実行して、診断ツールを取得します。

      • 次のコマンドを実行して、内部 URL から診断ツールを取得します。

        wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py
      • 次のコマンドを実行して、パブリック URL から診断ツールを取得します。

        wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
    3. 次のコマンドを実行して、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 パーセンタイル レイテンシが続きます。

      image.png