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

Elastic Compute Service:モニターとチェックeRDMA

最終更新日:Dec 10, 2024

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 Metricコンソールにログインします。

  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は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

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

python diagnose.py -h

image

eRDMAの基本機能の確認

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

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

チェックアイテム

説明

期待される結果

エラー結果と解決策

erdmaデバイス

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

パス

FAIL: ECSインスタンスの作成時に、eRDMAを有効にしたり、eRDMAインターフェイス (ERI) をセカンダリelastic network interface (ENI) として追加したりできません。 eRDMAを有効にするか、セカンダリENIとしてERIを追加します。 詳細については、「ECSインスタンスでのeRDMAの有効化」をご参照ください。

erdmaインストール済み

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

パス

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

erdma loaded

eRDMAドライバーが期待どおりに読み込まれるかどうか。

パス

FAIL: eRDMAドライバが期待どおりに読み込まれません。 この問題は、インスタンスの再起動前にドライバをインストールするときに発生する可能性があります。 modprobe erdmaコマンドを実行して問題を解決します。

ibverbs loaded

ib_verbsドライバーが期待どおりに読み込まれるかどうか。

パス

FAIL: ib_verbsドライバーが期待どおりに読み込まれません。 modprobe ib_uverbsコマンドを実行して問題を解決します。

erdmaツール

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

パス

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

hca検出

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

パス

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

hcaアクティブ

現在のデバイスが有効かどうか。

パス

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

erdma統計

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

パス

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

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

ネットワーク設定

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

パス

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

erdma dmesg

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

パス

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

原子サポート

eRDMAデバイスがRDMAアトミック動作をサポートするかどうか。

パス

FAIL: 現在のeRDMAデバイスはRDMAアトミック動作をサポートしていません。 RDMAアトミック操作が必要ない場合は、エラーを無視してください。

説明

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

go-back-nのサポート

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

パス

  • SKIP: 現在のeRDMAデバイスは、Go-back-N設定のクエリをサポートしていない場合があります。

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

説明

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

erdmaインストールモード

eRDMAカーネルモードドライバーがインストールされているモード。

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

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

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

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

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

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

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

rdma-coreバージョン

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

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

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

ccアルゴリズム

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アルゴリズム

eRDMAのCCアルゴリズム。

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

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

go-back-nのサポート

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

パス

  • SKIP: 現在のeRDMAデバイスは、Go-back-N設定のクエリをサポートしていない場合があります。

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

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

dapl1インストール

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

パス

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

dapl1設定

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

パス

失敗: DAPL 1.0設定ファイルにeRDMA設定がありません。 DAPL 1.0設定ファイルを確認し、eRDMA設定をファイルに追加します。 DAPL 1.0が必要ない場合は、エラーを無視してください。

dapl2インストール

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

パス

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

dapl2設定

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

パス

失敗: DAPL 2.0設定ファイルにeRDMA設定がありません。 DAPL 2.0設定ファイルを確認し、eRDMA設定をファイルに追加します。 DAPL 2.0が必要ない場合は、エラーを無視してください。

dapl2テスト

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

パス

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ネットワークパフォーマンスをテストできます。

  • 前提条件

    次の要件が満たされています。

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

    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