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

Alibaba Cloud Linux:SMC のモニタリング

最終更新日:May 16, 2025

このトピックでは、共有メモリ通信(SMC)のメンテナンス中にネットワークの正常性を判断するためにモニタリングする必要があるメトリックについて説明します。

前提条件

Alibaba Cloud Linux 3 が提供するユーザーモード SMC メンテナンスツールセットである smc-tools がインストールされています。

smc-tools ツールセットがインストールされていない場合は、次のコマンドを実行してツールセットをインストールします。

sudo yum install -y smc-tools

プロトコルスタックのモニタリング

SMC スタックは、接続、トラフィック、共有メモリに関連する統計メトリックを提供し、netlink を使用してメトリックをユーザースペースに転送します。 smc-tools ツールセットの smcr コマンドは、netlink から統計メトリックを取得して解釈します。

  • SMC-R スタックに関する統計情報のクエリ

    現在の net 名前空間 で、Remote Direct Memory Access(SMC-R)スタックを介した SMC に関する統計情報をクエリするには、次のコマンドを実行します。

    smcr stats

    コマンド出力の例:

    # smcr stats
    SMC-R Connections Summary
      Total connections handled          5076  // 処理された接続の合計数
      SMC connections                    5076  // SMC 接続の数
      Handshake errors                      0  // ハンドシェイクエラーの数
      Avg requests per SMC conn          1977.0  // SMC 接続ごとの平均リクエスト数
      TCP fallback                          0  // TCP フォールバックの数
    
    RX Stats  // 受信統計
      Data transmitted (Bytes)      200705600 (200.7M)  // 送信されたデータ量(バイト)
      Total requests                  5017741  // リクエストの合計数
      Buffer usage (Bytes)                  0 (0)  // バッファ使用量(バイト)
      Buffer full                           0 (0.00%)  // バッファフルになった回数
                8KB    16KB    32KB    64KB   128KB   256KB   512KB  >512KB
      Bufs        0       0       0       0       0  5.076K       0       0  // バッファのサイズ分布
      Reqs   5.018M       0       0       0       0       0       0       0  // リクエストのサイズ分布
    
    TX Stats  // 送信統計
      Data transmitted (Bytes)     1194173445 (1.194G)  // 送信されたデータ量(バイト)
      Total requests                  5017640  // リクエストの合計数
      Buffer usage (Bytes)                  0 (0)  // バッファ使用量(バイト)
      Buffer full                           0 (0.00%)  // バッファフルになった回数
      Buffer full (remote)                  0 (0.00%)  // リモートバッファフルになった回数
      Buffer too small                      0 (0.00%)  // バッファが小さすぎた回数
      Buffer too small (remote)             0 (0.00%)  // リモートバッファが小さすぎた回数
                8KB    16KB    32KB    64KB   128KB   256KB   512KB  >512KB
      Bufs        0       0       0       0       0  5.076K       0       0  // バッファのサイズ分布
      Reqs   5.018M       0       0       0       0       0       0       0  // リクエストのサイズ分布
    
    Extras  // その他
      Special socket calls                  5  // 特殊なソケット呼び出しの数

    次のパラメーターに注意してください。

    パラメーター

    説明

    Total connections handled

    SMC-R スタックによって処理された接続の合計数。 SMC connectionsHandshake errors、および TCP fallback の値の合計です。

    SMC connections

    SMC-R 接続に変換された接続の合計数。

    Handshake errors

    ピアからの応答がないなど、ハンドシェイクフェーズ中のエラーが原因で失敗した接続の合計数。

    Avg requests per SMC conn

    SMC 接続ごとに送受信されたリクエストの平均数。

    TCP fallback

    TCP/IP にフォールバックした接続の合計数。

    Rx/Data transmitted (Bytes)

    SMC-R 接続を介して受信されたバイトの合計数。

    Rx/Total requests

    SMC-R 接続を介して受信されたリクエストの合計数。

    Rx/Buffer usage(Bytes)

    SMC-R 接続で使用される受信(Rx)バッファの合計サイズ。単位:バイト。

    Rx/Buffer full

    SMC-R 接続の Rx バッファが満杯になった回数の合計。SMC-R 接続を使用するユーザーモードアプリケーションが、接続に割り当てられた Rx バッファからデータをタイムリーに読み取らない場合、Rx バッファが満杯になる可能性があります。このパラメーターの値を小さくするには、SMC-R 接続を使用するユーザーモードアプリケーションを設定して、できるだけ早く Rx バッファからデータを読み取るか、Rx バッファの容量を増やします。そうしないと、送信側はバックプレッシャーを受け、受信側は新しいデータを受信できません。

    Rx/Bufs

    SMC-R 接続で使用される Rx バッファの分布。SMC-R は、リンクグループごとにメモリプールを保持します。接続が確立されると、SMC-R はメモリプールから適切なサイズのアイドルメモリブロックを接続に Rx バッファとして割り当てます。アイドルメモリブロックがない場合、SMC-R は適切なサイズの新しいメモリブロックを作成します。接続が閉じられると、メモリブロックはメモリプールに再利用されます。このパラメーターは、Rx バッファがメモリプールから SMC-R 接続に割り当てられた回数の合計と、Rx バッファが作成および再利用された回数を含む Rx バッファサイズの分布を指定しますが、メモリを消費する Rx バッファの実際の数を指定するものではありません。

    Rx/Reqs

    SMC-R 接続を介して受信されたリクエストのサイズ分布。

    Tx/Data transmitted (Bytes)

    SMC-R 接続を介して送信されたバイトの合計数。

    Tx/Total requests

    SMC-R 接続を介して送信されたリクエストの合計数。

    Tx/Buffer full

    SMC-R 接続の送信(Tx)バッファが満杯になった回数の合計。SMC-R スタックが Tx バッファ内のデータをタイムリーにリンクに送信しない場合、Tx バッファが満杯になる可能性があります。割合が高い場合は、ビジネス要件に基づいて Tx バッファの容量を増やします。

    Tx/Buffer full (remote)

    SMC-R 接続のピア Rx バッファが満杯になった回数の合計。SMC-R 接続のピア Rx バッファが満杯の場合、ローカルエンドはピアにデータを送信できません。割合が高い場合は、ビジネス要件に基づいてピア Rx バッファの容量を増やします。

    Tx/Buffer too small

    SMC-R 接続を介して送信されたリクエストのサイズが対応する Tx バッファのサイズを超えた回数の合計。SMC-R 接続を介して送信されたリクエストのサイズが対応する Tx バッファのサイズを超える場合、Tx バッファのサイズが小さすぎます。割合が高い場合は、ビジネス要件に基づいて Tx バッファの容量を増やします。

    Tx/Buffer too small (remote)

    SMC-R 接続を介して送信されたリクエストのサイズが対応するピア Rx バッファのサイズを超えた回数の合計。SMC-R 接続を介して送信されたリクエストのサイズが対応するピア Rx バッファのサイズを超える場合、ピア Rx バッファのサイズが小さすぎます。割合が高い場合は、ビジネス要件に基づいてピア Rx バッファの容量を増やします。

    Tx/Bufs

    注: このチュートリアルでは、Linux オペレーティング システムを使用します。Windows の場合も手順は同様です。

    Tx/Reqs

    SMC-R 接続を介して送信されたリクエストのサイズ分布。

  • SMC-R リンクグループに関する統計情報のクエリ

    説明

    デフォルトでは、リンクグループには 1 つのリンクが含まれており、32 の SMC-R 接続を伝送できます。各リンクグループは、キューペア(QP)、保護ドメイン(PD)、メモリ登録(MR)など、SMC-R の RDMA リソースのセットを維持するために使用されます。

    現在の net 名前空間でアクセス可能な RDMA デバイスに関連付けられているすべての SMC-R リンクグループに関する統計情報をクエリするには、次のコマンドを実行します。

    smcr linkgroup

    コマンド出力の例:

    # smcr linkgroup
    LG-ID    LG-Role  LG-Type  VLAN  #Conns  PNET-ID  // LG-ID:リンクグループID、LG-Role:リンクグループのロール、LG-Type:リンクグループのタイプ、VLAN:VLAN ID、#Conns:接続数、PNET-ID:物理ネットワークID
    00000300 SERV     SINGLE      0       0

    使用中の QP の数を示すリンクグループの数と、次の表のパラメーターに注意してください。

    パラメーター

    説明

    #Conns

    リンクグループ によって伝送される SMC 接続の数。

    リンクグループの詳細情報をクエリするには、smcr -d linkgroup コマンドを実行できます。

    コマンド出力の例:

    LG-ID    : 00000500  // リンクグループID
    LG-Role  : CLNT  // リンクグループのロール
    LG-Type  : SINGLE  // リンクグループのタイプ
    VLAN     : 0  // VLAN ID
    PNET-ID  :  // 物理ネットワークID
    Version  : 2  // バージョン
    Peer-Rel : 1  // ピアのリリース
    Peer-Host:  // ピアホスト
    Peer-OS  : LINUX  // ピアOS
    Direct   : Yes  // 直接接続かどうか
    EID      : SMCV2-DEFAULT-UEID  // エンドポイントID
    #Conns   : 32  // 接続数
    Sndbuf   : 8388608 B  // 送信バッファサイズ
    CNY      : 8388608 B  // 受信バッファサイズ

    次のパラメーターに注意してください。

    パラメーター

    説明

    Sndbuf

    リンクグループによって管理される Tx バッファプールによって占有されるメモリの総量。単位:バイト。

    CNY

    リンクグループによって管理される Rx バッファプールによって占有されるメモリの総量。単位:バイト。

  • SMC-R デバイスに関する統計情報のクエリ

    SMC-R スタックによって使用される RDMA デバイスに関する情報をクエリするには、次のコマンドを実行します。

    smcr device

    コマンド出力の例:

    # smcr device
    Net-Dev         IB-Dev   IB-P  IB-State  Type          Crit  #Links  PNET-ID  // Net-Dev:ネットワークデバイス名、IB-Dev:InfiniBand デバイス名、IB-P:InfiniBand ポート、IB-State:InfiniBand デバイスの状態、Type:RDMA デバイスのタイプ、Crit:重大なエラーがあるかどうか、#Links:リンク数、PNET-ID:物理ネットワーク ID
    eth1            erdma_0     1    ACTIVE  0x107f          No       0  

    次のパラメーターに注意してください。

    パラメーター

    説明

    Net-Dev

    イーサネットデバイスの名前。

    IB-Dev

    RDMA デバイスの名前。

    IB-P

    RDMA デバイスのポート。

    IB-State

    RDMA デバイスのステータス。

    Type

    RDMA デバイスのタイプ。デバイスが Alibaba Cloud の elastic RDMA(eRDMA)デバイスの場合、0x107f が表示されます。

    #Links

    RDMA デバイスに関連付けられているリンクの数。

    PNET-ID

    RDMA デバイスの物理ネットワーク(PNET)ID。詳細については、「PNET ID パラメーターを設定する」をご参照ください。

接続のモニタリング

ss と同様に、smc-tools ツールセットの SMC ユーザーモードツール smcss は、SMC ソケットをモニタリングします。 smcss ツールは、netlink からソケット情報を取得します。これには、ネゴシエーション後に SMC を使用するソケットに関する情報、またはネゴシエーションが失敗した場合に TCP にフォールバックするソケットに関する情報が含まれます。

  • SMC ソケットに関する基本情報のクエリ

    現在の net 名前空間 で、SMC スタックで実行されているか、TCP スタックにフォールバックしている、接続中、クローズ中、または接続済みの SMC ソケットに関する基本情報をクエリするには、次のコマンドを実行します。

    smcss

    コマンド出力の例:

    # smcss
    State          UID   Inode   Local Address           Peer Address            Intf Mode  // State:ソケットの状態、UID:ユーザーID、Inode:inode 番号、Local Address:ローカルアドレス、Peer Address:ピアアドレス、Intf:インターフェース、Mode:モード
    ACTIVE         00994 2954337 xxx.xxx.x.xx:80         xxx.xxx.x.xx:36000      0000 SMCR
    ACTIVE         00994 2953297 xxx.xxx.x.xx:80         xxx.xxx.x.xx:35948      0000 TCP 0x03010000

    次のパラメーターに注意してください。

  • パラメーター

    説明

    State

    ソケットのステータス。有効な値:

    • INIT:ソケットは初期化中です。

    • CLOSED: ソケットは閉じられています。

    • LISTEN: ソケットはリスニング ソケットです。

    • ACTIVE:SMC ソケットは接続が確立されています。

    • PEERCLW1:ピアにはこれ以上データが送信されません。

    • PEERCLW2:ピアとのデータの送受信はこれ以上行われません。

    • APPLCLW1:ピアからこれ以上データが受信されません。

    • APPLCLW2:ピアとのデータの送受信はこれ以上行われません。

    • APPLFINCLW:ピアがソケットを閉じました。

    • PEERFINCLW:ソケットはローカルで閉じられています。

    • PEERABORTW:ソケットはローカルで異常終了しました。

    • PROCESSABORT:ピアがソケットを異常終了しました。

    Local Address

    ローカルの IPv4 または IPv4 マップ IPv6 アドレスとポート。SMC は IPv4 プロトコルのみをサポートします。

    ピア アドレス

    ピア IPv4 アドレスまたは IPv4 マップ IPv6 アドレスとポート。CSMC は IPv4 プロトコルのみをサポートします。

    モード

    通信モード。

    • SMCR: SMC-R スタックを使用して通信します。

    • TCP <fallback reason>: TCP/IP スタックにフォールバックします。数値コードは、フォールバックの理由を示します。数値コードの意味については、「SMC を有効にした後の TCP/IP へのフォールバック」をご参照ください。

  • LISTEN 状態の SMC ソケットに関する統計情報のクエリ

    次のコマンドを実行して、現在の net 名前空間 で listen (LISTEN) 状態の SMC ソケットに関する統計情報をクエリします。

    smcss -l

    smcss -l コマンド出力のパラメーターは、smcss コマンド出力のパラメーターと同じです。

  • SMC-R スタックで実行されている SMC ソケットに関する統計情報のクエリ

    現在の net 名前空間 で SMC-R スタックで実行されている SMC ソケットに関する統計情報をクエリするには、次の命令を実行します。

    smcss -R

    コマンド出力の例:

    # smcss -R
    State          UID   Inode   Local Address           Peer Address            Intf Mode Role IB-device       Port Linkid GID                                      Peer-GID
    ACTIVE         00000 1833669 xxx.xxx.x.xx:33618      xxx.xxx.x.xx:80         0000 SMCR CLNT erdma_0         01   01     0000:0000:0000:0000:0000:xxxx:xxxx:xxxx  0000:0000:0000:0000:0000:xxxx:xxxx:xxxx

    smcss コマンド出力の前述の基本パラメーターに加えて、次のパラメーターに注意してください。

    パラメーター

    説明

    IB-device

    接続に使用される RDMA デバイスの名前。

    Port

    接続に使用される RDMA デバイスのポート。

    GID

    接続に使用される RDMA デバイスのグローバル ID (GID)。

    Peer-GID

    ピア RDMA デバイスの GID。

  • すべての SMC ソケットに関する統計情報のクエリ

    現在 net 名前空間 内のすべての SMC ソケットに関する統計情報をクエリするには、次のコマンドを実行します。

    smcss -a

    smcss -a コマンド出力のパラメーターは、smcss コマンド出力のパラメーターと同じです。

デバイスの監視

SMC-R は、Alibaba Cloud eRDMA デバイスを基盤となる RDMA デバイスとして使用します。 eRDMA は、RDMA リソースとデバイスに関する統計情報を収集するためのさまざまなユーザーモードツールを提供します。 詳細については、「eRDMA の監視と診断」をご参照ください。

統合監視ツール

smc_monitor_ex は、smc-tools によって提供される監視ツールスクリプトであり、smcrsmcss などの smc-tools のアトミック命令を呼び出して、SMC トラフィック、接続、およびメモリ使用量に関する統計を収集します。

  • ツールの使用方法

    smc_monitor_ex の使用方法をクエリするには、次のコマンドを実行します。

    警告

    smc_monitor_ex は実験的なツールであるため、その使用方法は将来変更される可能性があります。

    # smc_monitor_ex -h
    usage: smc_monitor_ex [-h] {speed,s,connection,c,memory,m,base,b} ...
    
    SMC Monitor Tool (Experimental)  // SMC 監視ツール(実験的)
    
    positional arguments: // 位置引数
      {speed,s,connection,c,memory,m,base,b}
                            commands // コマンド
        speed (s)           View transfer rates // 転送速度を表示
        connection (c)      View connection counts // 接続数を表示
        memory (m)          View memory usages // メモリ使用量を表示
        base (b)            View transfer rates, connection counts, and memory
                            usages // 転送速度、接続数、メモリ使用量を表示
    
    optional arguments: // オプション引数
      -h, --help            show this help message and exit // このヘルプメッセージを表示して終了
    
  • SMC トラフィックに関する統計のクエリ

    smc_monitor_exspeed サブコマンドを実行して、現在の net namespace 内の SMC トラフィック レートと 1 秒あたりのレコード数(RPS)をクエリします。

    # smc_monitor_ex speed -h
    usage: smc_monitor_ex speed [-h] [-i INTERVAL] [-r] [-m {smcr,smcd,smc}]
    
    optional arguments: // オプション引数
      -h, --help            show this help message and exit // このヘルプメッセージを表示して終了
      -i INTERVAL, --interval INTERVAL
                            Interval in seconds to display transfer rates. // 転送速度を表示する間隔(秒単位)。
      -r, --raw             Display rates in B/s without converting units. // 単位を変換せずに B/s で速度を表示。
      -m {smcr,smcd,smc}, --mode {smcr,smcd,smc}
                            Mode to check, either 'smc', 'smcr' or 'smcd', default
                            is 'smc' // 確認するモード。「smc」、「smcr」、または「smcd」。デフォルトは「smc」。
    

    たとえば、次のコマンドを実行して、現在の net namespace 内の SMC-R トラフィック レートと RPS を 1 秒ごとにクエリします。

    # smc_monitor_ex speed -m smcr -i 1
    Date                  Mode            Rx Rate            Rx Rps           Tx Rate            Tx Rps  // 日付                  モード            受信速度            受信 RPS           送信速度            送信 RPS
    2025-02-21 14:01:48   smcr            0.0 B/s            0.0 /s           0.0 B/s            0.0 /s
    Date                  Mode            Rx Rate            Rx Rps           Tx Rate            Tx Rps  // 日付                  モード            受信速度            受信 RPS           送信速度            送信 RPS
    2025-02-21 14:01:49   smcr            0.0 B/s            0.0 /s           0.0 B/s            0.0 /s
    Date                  Mode            Rx Rate            Rx Rps           Tx Rate            Tx Rps  // 日付                  モード            受信速度            受信 RPS           送信速度            送信 RPS
    2025-02-21 14:01:50   smcr            0.0 B/s            0.0 /s           0.0 B/s            0.0 /s
    
  • SMC 接続に関する統計のクエリ

    smc_monitor_exconnection サブコマンドを実行して、現在の net namespace 内で SMC を使用している接続数または TCP にフォールバックしている接続数をクエリします。

    # smc_monitor_ex connection -h
    usage: smc_monitor_ex connection [-h] [-i INTERVAL]
                                     [-m {smc,smcr,smcd,fallback,all}]
    
    optional arguments: // オプション引数
      -h, --help            show this help message and exit // このヘルプメッセージを表示して終了
      -i INTERVAL, --interval INTERVAL
                            Interval in seconds to display connections. // 接続を表示する間隔(秒単位)。
      -m {smc,smcr,smcd,fallback,all}, --mode {smc,smcr,smcd,fallback,all}
                            Mode to check, either 'all', 'smc', 'smcr', 'smcd' or
                            'fallback', default is 'all' // 確認するモード。「all」、「smc」、「smcr」、「smcd」、または「fallback」。デフォルトは「all」。
    

    たとえば、次のコマンドを実行して、現在の net namespace 内で SMC-R を使用している接続数を 1 秒ごとにクエリします。

    # smc_monitor_ex connection -m smcr -i 1
    Date                  Mode                 #Conn // 日付                  モード                 接続数
    2025-02-21 14:06:47   smcr                     0
    Date                  Mode                 #Conn // 日付                  モード                 接続数
    2025-02-21 14:06:48   smcr                     0
    Date                  Mode                 #Conn // 日付                  モード                 接続数
    2025-02-21 14:06:49   smcr                     0
    
  • メモリ使用量に関する統計のクエリ

    smc_monitor_exmemory サブコマンドを実行して、現在の net namespace 内の SMC 接続で使用されているリングバッファの合計サイズをクエリします。

    # smc_monitor_ex memory -h
    usage: smc_monitor_ex memory [-h] [-i INTERVAL] [-r] [-m {smcr,smcd,smc}]
    
    optional arguments: // オプション引数
      -h, --help            show this help message and exit // このヘルプメッセージを表示して終了
      -i INTERVAL, --interval INTERVAL
                            Interval in seconds to display ringbuf usages. // リングバッファの使用量を表示する間隔(秒単位)。
      -r, --raw             Display memory usages in bytes without converting
                            units. // 単位を変換せずにバイト単位でメモリ使用量を表示。
      -m {smcr,smcd,smc}, --mode {smcr,smcd,smc}
                            Mode to check, either 'smcr', 'smcd' or 'smc', default
                            is 'smc' // 確認するモード。「smcr」、「smcd」、または「smc」。デフォルトは「smc」。
    

    たとえば、次のコマンドを実行して、現在の net namespace 内の SMC-R 接続で使用されているリングバッファの合計サイズを 1 秒ごとにクエリします。

    # smc_monitor_ex memory -m smcr -i 1
    Date                  Mode            Rx Bufs           Tx Bufs // 日付                  モード            受信バッファ           送信バッファ
    2025-01-06 15:14:20   smcr          512.00 KB         512.00 KB
    Date                  Mode            Rx Bufs           Tx Bufs // 日付                  モード            受信バッファ           送信バッファ
    2025-01-06 15:14:21   smcr          512.00 KB         512.00 KB
    
  • すべての SMC 統計のクエリ

    smc_monitor_exbase サブコマンドを実行して、現在の net namespace 内の上記のすべての SMC 関連統計をクエリします。

    たとえば、次のコマンドを実行して、現在の net namespace 内のすべての SMC-R 関連統計を 1 秒ごとにクエリします。

    # smc_monitor_ex base -m smcr -i 1
    Date                  Mode             Rx Rate      Rx Rps        Tx Rate      Tx Rps     #Conn     Rx Bufs     Tx Bufs // 日付                  モード             受信速度      受信 RPS        送信速度      送信 RPS     接続数     受信バッファ     送信バッファ
    2025-01-06 15:17:23   smcr           1.81 GB/s   21.66 K/s          0 B/s        0 /s         2   512.00 KB   512.00 KB
    Date                  Mode             Rx Rate      Rx Rps        Tx Rate      Tx Rps     #Conn     Rx Bufs     Tx Bufs // 日付                  モード             受信速度      受信 RPS        送信速度      送信 RPS     接続数     受信バッファ     送信バッファ
    2025-01-06 15:17:24   smcr           1.82 GB/s   21.81 K/s          0 B/s        0 /s         2   512.00 KB   512.00 KB