このトピックでは、カーネルの共有メモリ通信 (SMC) スタックでリモートダイレクトメモリアクセス (SMC-R) を介した共有メモリ通信を監視およびチェックするために使用されるツールと、そのツールの使用方法について説明します。 SMCネットワークのトラフィックメトリックを分析し、ツールによって返された監視とチェックの結果に基づいてネットワークの正常性を判断できます。
前提条件
Alibaba Cloud Linux 3オペレーティングシステムが使用されています。
smc-toolsパッケージを使用してSMCを監視およびチェックする
Alibaba Cloud Linux 3が提供するsmc-toolsパッケージは、SMC接続、SMCリソース、およびSMCスタックに関する情報を取得するのに役立ちます。
smc-toolsパッケージのインストール
sudo yum install -y smc-tools
SMC-Rスタックに関する情報の照会
smcrデバイス
: SMC-Rスタックで使用されるリモートダイレクトメモリアクセス (RDMA) デバイスに関する情報を照会します。サンプルコマンド出力:
# 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-Dev
RDMAデバイスの名前。
IB-P
RDMAデバイスのポート。
IB-州
RDMAデバイスのステータス。
データ型
RDMAデバイスのタイプ。 デバイスがAlibaba Cloudのelastic RDMA (eRDMA) デバイスの場合、
0x10 7f
が表示されます。# リンク
RDMAデバイスによって使用されるキューペア (QP) の数。
PNET-ID
RDMAデバイスの物理ネットワーク (PNET) ID。
smcr linkgroup
: SMC-Rリンクグループに関する情報を照会します。説明SMC-Rのリンクグループは、QP、保護ドメイン (PD) 、およびメモリ登録 (MR) を含むRDMAリソースで構成されます。 デフォルトでは、リンクグループは32個のSMC接続をサポートします。
サンプルコマンド出力:
# smcr linkgroup LG-ID LG-Role LG-Type VLAN #Conns PNET-ID 00000300 SERV SINGLE 0 0 1234
使用されるQPの量を示すリンクグループの数と、次の表のパラメーターに注意してください。
パラメーター
説明
# Conns
リンクグループで実行されるSMC接続の数。
smcr stats
: 現在のネットワーク名前空間のSMC-Rスタックに関する統計を照会します。サンプルコマンド出力:
# smcr stats SMC-R Connections Summary Total connections handled 7 SMC connections 5 Handshake errors 0 Avg requests per SMC conn 518103.6 TCP fallback 2 RX Stats Data transmitted (Bytes) 18133584 (18.13M) Total requests 1295262 Buffer full 0 (0.00%) 8KB 16KB 32KB 64KB 128KB 256KB 512KB >512KB Bufs 0 0 0 0 0 5 0 0 Reqs 1.295M 0 0 0 0 0 0 0 TX Stats Data transmitted (Bytes) 18133584 (18.13M) Total requests 1295256 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 0 0 Reqs 1.295M 0 0 0 0 0 0 0 Extras Special socket calls 5
次の表のパラメーターに注意してください。
パラメーター
説明
Total connections handled
SMC-Rスタックによって処理された接続の総数。
SMC接続
、ハンドシェイクエラー
、およびTCPフォールバック
値の合計です。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 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/Reqs
SMC-R接続を介して受信したリクエストのサイズの分布。
Tx/Data transmitted (Bytes)
SMC-R接続で送信されたバイト数の合計。
Tx/Total requests
SMC-R接続を介して送信されたリクエストの総数。
Tx/Buffer full
SMC-R接続のための送信 (Tx) バッファが満杯になった合計回数。 SMC-Rスタックが、SMC-R接続を使用するユーザモードアプリケーションによって配信されたデータを最も早い機会にリンクに送信しない場合、接続に対応する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
SMC-R接続によって使用されるTxバッファの分布。 SMC-Rは、各リンクグループのメモリプールを維持する。 接続が確立されると、SMC-Rは、適切なサイズのアイドルメモリブロックをメモリプールからTxバッファとして接続に割り当てる。 使用可能なメモリブロックがない場合、SMC-Rは適切なサイズの新しいメモリブロックを作成する。 接続が閉じられた後、メモリブロックはメモリプールに再利用される。 このパラメータの値は、TxバッファがメモリプールからSMC-R接続に割り当てられた合計回数とTxバッファサイズの分布を示します。 この値は、メモリを消費しているTxバッファの実際の数を表すものではありません。
Tx/Reqs
SMC-R接続を介して受信されたリクエストのサイズの分布。
SMC-R接続に関する情報の照会
smcss
: 確立中、クローズ中、および現在のネットワーク名前空間で確立されているSMCソケットに関する基本情報を照会します。説明前述のコマンドのコマンド出力には、TCP/IPに戻ったSMCソケットが含まれています。
サンプルコマンド出力:
# smcss State UID Inode Local Address Peer Address Intf Mode ACTIVE 00994 2954337 192.168.4.78:80 192.168.4.79:36000 0000 SMCR ACTIVE 00994 2954336 192.168.4.78:80 192.168.4.79:35994 0000 SMCR ACTIVE 00994 2954333 192.168.4.78:80 192.168.4.79:35978 0000 SMCR ACTIVE 00994 2950860 192.168.4.78:80 192.168.4.79:35972 0000 SMCR ACTIVE 00994 2953298 192.168.4.78:80 192.168.4.79:35966 0000 SMCR ACTIVE 00994 2953297 192.168.4.78:80 192.168.4.79:35948 0000 TCP 0x03010000 ACTIVE 00994 2954330 192.168.4.78:80 192.168.4.79:35922 0000 TCP 0x03010000 ACTIVE 00994 2947957 192.168.4.78:80 192.168.4.79:35920 0000 TCP 0x03010000 ACTIVE 00994 2953293 192.168.4.78:80 192.168.4.79:35822 0000 TCP 0x03010000 ACTIVE 00994 2955286 192.168.4.78:80 192.168.4.79:35752 0000 TCP 0x03010000
次の表のパラメーターに注意してください。
パラメーター
説明
状態
ソケットのステータス。 有効な値:
INIT
: ソケットは初期化中です。CLOSED
: ソケットが閉じています。LISTEN
: ソケットはリスニングソケットです。ACTIVE
: 接続が確立されています。PEERCLW1
: ソケットはピアにデータを送信しなくなりました。PEERCLW2
: ソケットがピアとの間でデータを送受信しなくなりました。APPLCLW1
: ソケットはピアからデータを受信しなくなりました。APPLCLW2
: ソケットがピアとの間でデータを送受信しなくなりました。APPLFINCLW
: ソケットはピアによって閉じられます。PEERFINCLW
: ソケットはローカルで閉じています。PEERABORTW
: ソケットが予期せずローカルに閉じられます。PROCESSABORT
: ピアによって予期せずソケットが閉じられます。
ローカルアドレス
ローカルIPv4アドレスとポート番号。 SMCはIPv4プロトコルのみをサポートします。
ピアアドレス
ピアIPv4アドレスとポート番号。 SMCはIPv4プロトコルのみをサポートします。
モード
通信モード。
SMCR: SMC-Rスタックを使用します。
TCP <fallback reason>: フォールバックしてTCP/IPスタックを使用します。
説明数値コードはフォールバックの理由を示します。 数値コードの意味については、「SMCのトラブルシューティング」トピックの「SMC fall back to TCP and RDMA cannot be used to accelerate communications」セクションをご参照ください。
smcss -l
: 現在のネットワーク名前空間のLISTEN
状態のソケットを照会します。smcss -l
コマンドには、smcss
コマンドと同じ出力パラメーターがあります。smcss -R
: 現在のネットワーク名前空間のSMC-Rスタックで実行されるソケットを照会します。サンプルコマンド出力:
# smcss -R State UID Inode Local Address Peer Address Intf Mode Role IB-device Port Linkid GID Peer-GID ACTIVE 00000 1833669 192.168.4.79:33618 192.168.4.78:80 0000 SMCR CLNT erdma_0 01 01 0000:0000:0000:0000:0000:ffff:c0a8:044f 0000:0000:0000:0000:0000:ffff:c0a8:044e ACTIVE 00000 1833667 192.168.4.79:33604 192.168.4.78:80 0000 SMCR CLNT erdma_0 01 01 0000:0000:0000:0000:0000:ffff:c0a8:044f 0000:0000:0000:0000:0000:ffff:c0a8:044e ACTIVE 00000 1828405 192.168.4.79:33590 192.168.4.78:80 0000 SMCR CLNT erdma_0 01 01 0000:0000:0000:0000:0000:ffff:c0a8:044f 0000:0000:0000:0000:0000:ffff:c0a8:044e ACTIVE 00000 1833665 192.168.4.79:33578 192.168.4.78:80 0000 SMCR CLNT erdma_0 01 01 0000:0000:0000:0000:0000:ffff:c0a8:044f 0000:0000:0000:0000:0000:ffff:c0a8:044e ACTIVE 00000 1833663 192.168.4.79:33564 192.168.4.78:80 0000 SMCR CLNT erdma_0 01 01 0000:0000:0000:0000:0000:ffff:c0a8:044f 0000:0000:0000:0000:0000:ffff:c0a8:044e
上記の基本的なパラメーターに加えて、次の表のパラメーターに注意してください。
パラメーター
説明
IB-デバイス
接続に使用されるRDMAデバイスの名前。
ポート
接続に使用されるRDMAデバイスのポート。
GID
接続に使用されるRDMAデバイスのグローバルID (GID) 。
ピアGID
ピアRDMAデバイスのGID。
smcss -a
: TCP/IPに戻ったSMCソケットを含め、現在のネットワーク名前空間のすべての状態のSMCソケットを照会します。smcss -a
コマンドの出力パラメーターは、smcss
コマンドと同じです。説明接続のモードフィールドの数値コードは、接続のフォールバックの理由を示します。 詳細については、「SMCのトラブルシューティング」トピックの「SMC fall back to TCP and RDMA cannot be used to accelerate communications」セクションをご参照ください。
関連ドキュメント
eRDMAが使用されている場合のSMC-Rの監視と保守の方法については、「eRDMAの監視と確認」をご参照ください。
通信障害、使用できないポート、TCPと比較したアプリケーションパフォーマンスの改善なしなどのSMCの問題を解決する方法については、「SMCのトラブルシューティング」をご参照ください。