本文將為您介紹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)常見問題。