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

Alibaba Cloud Linux:Shared Memory Communications (SMC) のモニタリング

最終更新日:Apr 02, 2026

プロトコルスタックの統計、アクティブな接続、および基盤となる RDMA デバイスの状態を追跡することで、Shared Memory Communication (SMC) のヘルス状態をモニターします。すべてのメトリックは、smc-tools パッケージのツールを使用して収集されます。

前提条件

開始する前に、次のものが揃っていることを確認してください:

  • ご利用のインスタンスに Alibaba Cloud Linux 3 がインストールされていること

  • smc-tools (ユーザーモードの SMC メンテナンツールセット) がインストールされていること

smc-tools をインストールするには、以下を実行します:

sudo yum install -y smc-tools

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

SMC スタックは、netlink を介して接続、トラフィック、および共有メモリのメトリックをユーザースペースに公開します。smcr コマンドは、これらのメトリックを読み取り、解釈します。

SMC-R スタック統計のクエリ

smcr stats を実行して、現在のネット名前空間にある Remote Direct Memory Access (SMC-R) 経由の SMC スタックに関する統計をクエリします:

smcr stats

出力例:

# smcr stats
SMC-R Connections Summary
  Total connections handled          5076
  SMC connections                    5076
  Handshake errors                      0
  Avg requests per SMC conn          1977.0
  TCP fallback                          0

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 handledSMC-R スタックによって処理された総接続数。SMC connectionsHandshake errors、および TCP fallback の合計に等しくなります。
SMC connectionsSMC-R に正常に変換された接続数。
Handshake errorsハンドシェイクフェーズ中に失敗した接続 (例:ピアからの応答がない)。
Avg requests per SMC connSMC 接続ごとに送受信されたリクエストの平均数。
TCP fallbackSMC ネゴシエーションが失敗した後に TCP/IP にフォールバックした接続数。
Rx/Data transmitted (Bytes)SMC-R 接続で受信した合計バイト数。
Rx/Total requestsSMC-R 接続で受信した合計リクエスト数。
Rx/Buffer usage (Bytes)現在使用中の Rx バッファーの合計サイズ。単位:バイト。
Rx/Buffer fullRx バッファーがフルになった回数。Rx バッファーがフルになると、送信者にバックプレッシャーがかかり、新しいデータが到着しなくなります。このカウントを減らすには、アプリケーションが Rx バッファーからより早く読み取るように構成するか、Rx バッファーサイズを増やしてください。
Rx/BufsSMC-R 接続に割り当てられた Rx バッファーサイズのディストリビューション。SMC-R はリンクグループごとにメモリプールを維持します。接続が開かれると、SMC-R はプールから適切なサイズのアイドルブロックを割り当てるか (または新しいブロックを作成します)。接続が閉じられると、ブロックはプールに戻ります。このカウンターは、作成されたブロックと再利用されたブロックの両方を含む合計割り当て数を追跡し、アクティブにメモリを消費しているバッファーの数ではありません。
Rx/ReqsSMC-R 接続で受信したリクエストのサイズディストリビューション。
Tx/Data transmitted (Bytes)SMC-R 接続で送信された合計バイト数。
Tx/Total requestsSMC-R 接続で送信された合計リクエスト数。
Tx/Buffer fullSMC-R スタックが時間内にデータをリンクにフラッシュできなかったために Tx バッファーがフルになった回数。この割合が高い場合は、Tx バッファーサイズを増やしてください。
Tx/Buffer full (remote)ピアの Rx バッファーがフルだったため、ローカル側が送信できなかった回数。この割合が高い場合は、ピアの Rx バッファーサイズを増やしてください。
Tx/Buffer too small送信リクエストが Tx バッファー容量を超えた回数。この割合が高い場合は、Tx バッファーサイズを増やしてください。
Tx/Buffer too small (remote)送信リクエストがピアの Rx バッファー容量を超えた回数。この割合が高い場合は、ピアの Rx バッファーサイズを増やしてください。
Tx/BufsSMC-R 接続に割り当てられた Tx バッファーサイズのディストリビューション。Rx/Bufs と同じプールロジックに従います。アクティブに割り当てられメモリを消費しているバッファーではなく、合計割り当て数を追跡します。
Tx/ReqsSMC-R 接続で送信されたリクエストのサイズディストリビューション。

リンクグループ統計のクエリ

説明

デフォルトでは、各リンクグループには 1 つのリンクが含まれ、最大 32 の SMC-R 接続を伝送できます。リンクグループは、キューペア (QP)、保護ドメイン (PD)、メモリ登録 (MR) などの RDMA リソースのセットを管理します。

smcr linkgroup を実行して、現在のネット名前空間でアクセス可能な RDMA デバイスに関連付けられているすべての SMC-R リンクグループをリストします:

smcr linkgroup

出力例:

# smcr linkgroup
LG-ID    LG-Role  LG-Type  VLAN  #Conns  PNET-ID
00000300 SERV     SINGLE      0       0

リンクグループの数 (使用中の QP の数に等しい) と #Conns フィールドをモニターします:

パラメーター説明
#Connsリンクグループによって伝送される SMC 接続の数。

詳細なリンクグループ情報を取得するには、以下を実行します:

smcr -d linkgroup

出力例:

LG-ID    : 00000500
LG-Role  : CLNT
LG-Type  : SINGLE
VLAN     : 0
PNET-ID  :
Version  : 2
Peer-Rel : 1
Peer-Host:
Peer-OS  : LINUX
Direct   : Yes
EID      : SMCV2-DEFAULT-UEID
#Conns   : 32
Sndbuf   : 8388608 B
CNY      : 8388608 B
パラメーター説明
Sndbufリンクグループによって維持される Tx バッファープールが占有する合計メモリ。単位:バイト。
CNYリンクグループによって維持される Rx バッファープールが占有する合計メモリ。単位:バイト。

RDMA デバイス情報のクエリ

smcr device を実行して、SMC-R スタックが使用する RDMA デバイスをリストします:

smcr device

出力例:

# smcr device
Net-Dev         IB-Dev   IB-P  IB-State  Type          Crit  #Links  PNET-ID
eth1            erdma_0     1    ACTIVE  0x107f          No       0
パラメーター説明
Net-Devイーサネットデバイスの名前。
IB-DevRDMA デバイスの名前。
IB-PRDMA デバイスのポート。
IB-StateRDMA デバイスのステータス。
TypeRDMA デバイスのタイプ。Alibaba Cloud elastic Remote Direct Memory Access (eRDMA) デバイスは 0x107f を表示します。
#LinksRDMA デバイスに関連付けられているリンクの数。
PNET-IDRDMA デバイスの物理ネットワーク (PNET) ID。構成の詳細については、「PNET ID パラメーターの構成」をご参照ください。

接続のモニタリング

smcss は、ss コマンドと同様に、SMC ソケットに関する情報を表示します。netlink からソケット情報を取得し、SMC のネゴシエーションに成功したソケットと TCP にフォールバックしたソケットの両方をカバーします。

デフォルトでは、smcss は現在のネット名前空間で接続中、切断中、および接続済みの SMC ソケットをリストします。

基本ソケット情報のクエリ

smcss

出力例:

# smcss
State          UID   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 (接続確立)、PEERCLW1 (ピアへのデータ送信なし)、PEERCLW2 (ピアとのデータ送受信なし)、APPLCLW1 (ピアからのデータ受信なし)、APPLCLW2 (ピアとのデータ送受信なし)、APPLFINCLW (ピアがソケットをクローズ)、PEERFINCLW (ソケットがローカルでクローズ)、PEERABORTW (ソケットが異常状態でローカルでクローズ)、PROCESSABORT (ピアがソケットを異常終了)。
Local Addressローカルの IPv4 または IPv4 マップされた IPv6 アドレスとポート。SMC は IPv4 のみをサポートします。
Peer Addressピアの IPv4 または IPv4 マップされた IPv6 アドレスとポート。SMC は IPv4 のみをサポートします。
Mode通信モード。SMCR は接続が SMC-R スタック上で実行されていることを意味します。TCP <fallback reason> は接続が TCP/IP にフォールバックしたことを意味します。数値コードはフォールバックの理由を示します。フォールバックコードの完全なリストについては、「SMC 有効化後の TCP/IP へのフォールバック」をご参照ください。

リスニングソケットのクエリ

smcss -l

出力フィールドは smcss と同じです。

SMC-R ソケット詳細のクエリ

smcss -R

サンプル出力:

# smcss -R
状態           UID   inode   ローカルアドレス          ピアアドレス            インターフェイス モード ロール IB デバイス       ポート リンク ID GID                                      ピア 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 フィールドに加えて、smcss -R は以下を追加します:

パラメーター説明
IB-device接続に使用する RDMA デバイスの名前です。
Port接続に使用する RDMA デバイスのポート番号です。
GID接続に使用する RDMA デバイスのグローバル ID(GID)です。
Peer-GIDピア RDMA デバイスの GID です。

すべてのソケットのクエリ

smcss -a

出力フィールドは smcss と同じです。

デバイスのモニタリング

SMC-R は、基盤となる RDMA インフラストラクチャとして Alibaba Cloud eRDMA デバイスを使用します。eRDMA は、RDMA リソースとデバイスの状態に関する統計を収集するためのユーザーモードツールを提供します。詳細については、「eRDMA のモニタリングと診断」をご参照ください。

smc_monitor_ex による統合モニタリング

smc_monitor_exsmc-tools に含まれるモニタリングスクリプトです。内部で smcrsmcss を呼び出し、SMC のトラフィックレート、接続数、メモリ使用量を単一のビューでレポートします。

警告

smc_monitor_ex は実験的なツールです。そのインターフェイスは将来のリリースで変更される可能性があります。

smc_monitor_ex -h を実行して、利用可能なサブコマンドを確認します:

# smc_monitor_ex -h
usage: smc_monitor_ex [-h] {speed,s,connection,c,memory,m,base,b} ...

SMC Monitor Tool (Experimental)

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

トラフィックレートのモニタリング

speed サブコマンドは、現在のネット名前空間における 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.
  -m {smcr,smcd,smc}, --mode {smcr,smcd,smc}
                        Mode to check, either 'smc', 'smcr' or 'smcd', default
                        is 'smc'

たとえば、SMC-R のトラフィックレートと RPS を 1 秒ごとにクエリするには、次のようにします:

# smc_monitor_ex speed -m smcr -i 1
Date                  Mode            Rx Rate            Rx Rps           Tx Rate            Tx 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
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
2025-02-21 14:01:50   smcr            0.0 B/s            0.0 /s           0.0 B/s            0.0 /s

接続数のモニタリング

connection サブコマンドは、現在のネット名前空間におけるアクティブな 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'

たとえば、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

メモリ使用量のモニタリング

memory サブコマンドは、現在のネット名前空間で 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'

たとえば、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

すべての統計の一括表示

base サブコマンドは、トラフィックレート、接続数、メモリ使用量を単一の出力にまとめます。

たとえば、すべての 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
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
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