本文將為您介紹SMC內核協議棧中SMC-R的監控診斷工具及使用方法,以幫助您了解和掌握SMC網絡流量的各類指標,判斷網絡健康狀況。
前提條件
使用Alibaba Cloud Linux 3操作系統。
使用smc-tools監測和診斷SMC
Alibaba Cloud Linux 3提供的smc-tools可以幫助您獲取SMC的連接、資源和協議棧信息。
安裝smc-tools
sudo yum install -y smc-tools
查看SMC-R協議棧信息
smcr device
:查看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-State
RDMA網絡設備狀態。
Type
RDMA網絡設備類型,使用阿里云eRDMA網絡設備時此處顯示
0x107f
。#Links
RDMA網絡設備所用QP(Queue Pair)數量。
PNET-ID
RDMA網絡設備PNET ID。
smcr linkgroup
:查看SMC-R link group信息。說明link group在SMC-R中用于表示一組RDMA資源集合,包括QP(Queue Pair)、PD(Protection Domain)、MR(Memory Region)等,一個link group默認承載32個SMC連接。
輸出示例:
# smcr linkgroup LG-ID LG-Role LG-Type VLAN #Conns PNET-ID 00000300 SERV SINGLE 0 0 1234
您主要需要關注link group數量(意味著使用多少QP資源)以及以下參數:
參數
說明
#Conns
link group承載的SMC連接數量。
smcr stats
:查看當前net namespace下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 connections
、Handshake 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 full
SMC-R連接接收緩沖區已滿次數累加值,表示用戶態程序未及時從接收緩沖區讀走數據。此時需要用戶態程序盡快讀走數據或在此場景下增大接收緩沖區容量,否則會反壓發送端,無法接收新的數據。
Rx/Bufs
SMC-R連接使用的接收緩沖區分布圖。SMC-R在每個link group維度維護一個內存池,創建連接時從內存池中獲取符合大小的、空閑的內存塊。如果不存在則創建新的內存塊,連接斷開后將內存塊還回內存池。此處統計值為連接從內存池中獲取接收緩沖區的次數累加值與大小分布,不代表實際占用內存的接收緩沖區數量。
Rx/Reqs
SMC-R連接接收請求實際獲取數據大小的分布。
Tx/Data transmitted (Bytes)
SMC-R連接發送數據累加值(單位:字節)
Tx/Total requests
SMC-R連接發送請求累加值。
Tx/Buffer full
SMC-R連接發送緩沖區已滿次數累加值,表示SMC-R協議棧未及時將用戶態程序下發的數據發送到鏈路上。如果占比較高則考慮在此場景下增大發送緩沖區容量。
Tx/Buffer full (remote)
SMC-R連接的對端接收緩沖區已滿次數累加值,表示因對端接收緩沖區已滿而無法將數據發送到對端。若占比較高則考慮在此場景下增大對端接收緩沖區容量。
Tx/Buffer too small
SMC-R連接發送請求大小超過發送緩沖區大小的次數累加值,表示發送緩沖區設置過小。若占比較高則考慮在此場景下增大發送緩沖區容量。
Tx/Buffer too small (remote)
SMC-R連接發送請求大小超過對端接收緩沖區大小的次數累加值,表示對端接收緩沖區設置過小。若占比較高則考慮在此場景下增大對端接收緩沖區容量。
Tx/Bufs
SMC-R連接使用的發送緩沖區分布圖。SMC-R在每個link group維度維護一個內存池,創建連接時從內存池中獲取符合大小的、空閑的內存塊。如果不存在則創建新的內存塊,連接斷開后將內存塊還回內存池。此處統計值為連接從內存池中獲取發送緩沖區的次數累加值與大小分布,不代表實際占用內存的發送緩沖區數量。
Tx/Reqs
SMC-R連接接收請求數據大小的分布。
查看SMC-R連接信息
smcss
:查看當前net namespace下正在建連、正在斷連、已建連的SMC socket的基礎信息。說明上述指令輸出包含回退到使用TCP/IP協議棧的SMC socket。
輸出示例如下:
# 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
您主要需要關注如下參數:
參數
說明
State
socket狀態,可能有如下狀態:
INIT
:初始化中CLOSED
:已關閉LISTEN
:監聽中ACTIVE
:已建立連接PEERCLW1
:不再向對端發送數據PEERCLW2
:不再向對端發送或從對端接收數據APPLCLW1
:不再從對端接收數據APPLCLW2
:不再從對端接收或向對端發送數據APPLFINCLW
:對端已關閉PEERFINCLW
:本端已關閉PEERABORTW
:本端異常關閉PROCESSABORT
:對端異常關閉
Local Address
本地IPv4地址與端口,目前SMC僅支持IPv4協議。
Peer Address
對端IPv4地址與端口,目前SMC僅支持IPv4協議。
Mode
通信模式。
SMCR:使用SMC-R協議棧通信。
TCP <fallback reason>:回退使用TCP/IP協議棧通信。
說明數字代碼表示回退原因。具體含義,請參見啟用SMC后回退無法使用RDMA加速。
smcss -l
:查看當前net namespace下正在監聽(LISTEN
狀態)的socket。smcss -l
的輸出參數與smcss
的輸出參數相同。smcss -R
:查看當前net namespace下運行在SMC-R協議棧的socket。輸出示例:
# 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-device
連接所用RDMA設備名稱。
Port
連接所用RDMA設備端口。
GID
連接所用RDMA設備GID(Global ID)。
Peer-GID
對端所用RDMA設備GID。
smcss -a
:查看當前net namespace下所有狀態的SMC socket,包括回退到使用TCP/IP協議棧的SMC socket。smcss -a
的輸出參數與smcss
的輸出參數相同。說明Mode字段的數字代碼表示回退原因。具體含義,請參見啟用SMC后回退無法使用RDMA加速。
相關文檔
使用eRDMA為SMC-R提供遠程內存訪問技術時,其監控運維方式,請參見監測和診斷eRDMA。
如果您在使用共享內存通信SMC過程中遇到無法正常通信、部分端口不可用、對比TCP沒有應用性能提升等問題,可以參考共享內存通信(SMC)常見問題。