全部產品
Search
文件中心

Alibaba Cloud Linux:共用記憶體通訊(SMC)監控和診斷

更新時間:Jul 17, 2024

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