Monitore a integridade do Shared Memory Communication (SMC) acompanhando as estatísticas da pilha de protocolos, as conexões ativas e o estado dos dispositivos RDMA subjacentes. As ferramentas do pacote smc-tools coletam todas as métricas.
Pré-requisitos
Antes de começar, verifique se você tem:
Alibaba Cloud Linux 3 instalado na instância
smc-toolsinstalado (conjunto de ferramentas de manutenção SMC em modo usuário)
Para instalar o smc-tools, execute:
sudo yum install -y smc-tools
Monitorar pilhas de protocolos
A pilha SMC expõe métricas de conexão, tráfego e memória compartilhada ao espaço de usuário via netlink. O comando smcr lê e interpreta essas métricas.
Consultar estatísticas da pilha SMC-R
Execute smcr stats para consultar estatísticas sobre a pilha SMC over Remote Direct Memory Access (SMC-R) no namespace de rede atual:
smcr stats
Saída de exemplo:
# 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
A tabela a seguir descreve os principais parâmetros.
|
Parâmetro |
Descrição |
|
|
Total de conexões processadas pela pilha SMC-R. Corresponde à soma de |
|
|
Conexões convertidas com sucesso para SMC-R. |
|
|
Conexões com falha durante a fase de handshake (por exemplo, sem resposta do par). |
|
|
Média de solicitações enviadas ou recebidas por conexão SMC. |
|
|
Conexões revertidas para TCP/IP após falha na negociação SMC. |
|
|
Total de bytes recebidos pelas conexões SMC-R. |
|
|
Total de solicitações recebidas pelas conexões SMC-R. |
|
|
Tamanho total dos buffers Rx em uso. Unidade: bytes. |
|
|
Quantidade de vezes que os buffers Rx ficaram cheios. Um buffer Rx cheio aplica contrapressão no remetente e impede a chegada de novos dados. Para reduzir essa contagem, configure a aplicação para ler o buffer Rx mais rapidamente ou aumente o tamanho desse buffer. |
|
|
Distribuição dos tamanhos de buffer Rx alocados para conexões SMC-R. O SMC-R mantém um pool de memória por grupo de links. Ao abrir uma conexão, o SMC-R aloca um bloco ocioso do tamanho adequado no pool (ou cria um novo). Ao fechar a conexão, o bloco retorna ao pool. Este contador rastreia o total de alocações — incluindo blocos criados e reutilizados — e não o número de buffers consumindo memória ativamente. |
|
|
Distribuição de tamanho das solicitações recebidas pelas conexões SMC-R. |
|
|
Total de bytes enviados pelas conexões SMC-R. |
|
|
Total de solicitações enviadas pelas conexões SMC-R. |
|
|
Quantidade de vezes que os buffers Tx ficaram cheios porque a pilha SMC-R não conseguiu liberar dados para o link a tempo. Se essa porcentagem for alta, aumente o tamanho do buffer Tx. |
|
|
Quantidade de vezes que o buffer Rx do par estava cheio, impedindo o envio pelo lado local. Se essa porcentagem for alta, aumente o tamanho do buffer Rx do par. |
|
|
Quantidade de vezes que uma solicitação de envio excedeu a capacidade do buffer Tx. Se essa porcentagem for alta, aumente o tamanho do buffer Tx. |
|
|
Quantidade de vezes que uma solicitação de envio excedeu a capacidade do buffer Rx do par. Se essa porcentagem for alta, aumente o tamanho do buffer Rx do par. |
|
|
Distribuição dos tamanhos de buffer Tx alocados para conexões SMC-R. Segue a mesma lógica de pool de |
|
|
Distribuição de tamanho das solicitações enviadas pelas conexões SMC-R. |
Consultar estatísticas de grupos de links
Por padrão, cada grupo de links contém um link e pode transportar até 32 conexões SMC-R. Um grupo de links gerencia um conjunto de recursos RDMA, incluindo Queue Pairs (QPs), Protection Domains (PDs) e Memory Registrations (MRs).
Execute smcr linkgroup para listar todos os grupos de links SMC-R associados a dispositivos RDMA acessíveis no namespace de rede atual:
smcr linkgroup
Saída de exemplo:
# smcr linkgroup
LG-ID LG-Role LG-Type VLAN #Conns PNET-ID
00000300 SERV SINGLE 0 0
Monitore o número de grupos de links (equivalente ao número de QPs em uso) e o campo #Conns:
|
Parâmetro |
Descrição |
|
|
Número de conexões SMC transportadas pelo grupo de links. |
Para obter informações detalhadas sobre o grupo de links, execute:
smcr -d linkgroup
Saída de exemplo:
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
|
Parâmetro |
Descrição |
|
|
Memória total ocupada pelo pool de buffers Tx mantido pelo grupo de links. Unidade: bytes. |
|
|
Memória total ocupada pelo pool de buffers Rx mantido pelo grupo de links. Unidade: bytes. |
Consultar informações de dispositivos RDMA
Execute smcr device para listar os dispositivos RDMA usados pela pilha SMC-R:
smcr device
Saída de exemplo:
# smcr device
Net-Dev IB-Dev IB-P IB-State Type Crit #Links PNET-ID
eth1 erdma_0 1 ACTIVE 0x107f No 0
|
Parâmetro |
Descrição |
|
|
Nome do dispositivo Ethernet. |
|
|
Nome do dispositivo RDMA. |
|
|
Porta do dispositivo RDMA. |
|
|
Status do dispositivo RDMA. |
|
|
Tipo do dispositivo RDMA. Dispositivos elastic Remote Direct Memory Access (eRDMA) da Alibaba Cloud exibem |
|
|
Número de links associados ao dispositivo RDMA. |
|
|
ID de rede física (PNET) do dispositivo RDMA. Para detalhes de configuração, consulte Configurar parâmetros de PNET ID. |
Monitorar conexões
O comando smcss exibe informações sobre sockets SMC, semelhante ao comando ss. Ele recupera informações de sockets via netlink, abrangendo tanto sockets com negociação SMC bem-sucedida quanto aqueles revertidos para TCP.
Por padrão, o smcss lista sockets SMC em conexão, fechamento e conectados no namespace de rede atual.
Consultar informações básicas de sockets
smcss
Saída de exemplo:
# 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
|
Parâmetro |
Descrição |
|
|
Status do socket. Valores válidos: |
|
|
Endereço e porta IPv4 local ou IPv6 mapeado para IPv4. O SMC suporta apenas IPv4. |
|
|
Endereço e porta IPv4 do par ou IPv6 mapeado para IPv4. O SMC suporta apenas IPv4. |
|
|
Modo de comunicação. |
Consultar sockets em escuta
smcss -l
Os campos de saída são os mesmos do smcss.
Consultar detalhes de sockets SMC-R
smcss -R
Saída de exemplo:
# smcss -R
State UID Inode Local Address Peer Address Intf Mode Role IB-device Port Linkid GID Peer-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
Além dos campos básicos do smcss, o comando smcss -R adiciona os seguintes:
|
Parâmetro |
Descrição |
|
|
Nome do dispositivo RDMA usado na conexão. |
|
|
Porta do dispositivo RDMA usado na conexão. |
|
|
Global ID (GID) do dispositivo RDMA usado na conexão. |
|
|
GID do dispositivo RDMA do par. |
Consultar todos os sockets
smcss -a
Os campos de saída são os mesmos do smcss.
Monitorar dispositivos
O SMC-R utiliza dispositivos eRDMA da Alibaba Cloud como infraestrutura RDMA subjacente. O eRDMA fornece ferramentas em modo usuário para coletar estatísticas sobre recursos RDMA e o estado do dispositivo. Para detalhes, consulte Monitorar e diagnosticar eRDMA.
Monitoramento integrado com smc_monitor_ex
O smc_monitor_ex é um script de monitoramento incluído no smc-tools. Ele chama internamente os comandos smcr e smcss para relatar taxas de tráfego SMC, contagens de conexões e uso de memória em uma única visualização.
O smc_monitor_ex é uma ferramenta experimental. Sua interface pode mudar em versões futuras.
Execute smc_monitor_ex -h para ver os subcomandos disponíveis:
# 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
Monitorar taxas de tráfego
O subcomando speed relata a taxa de tráfego SMC e solicitações por segundo (RPS) no namespace de rede atual.
# 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'
Por exemplo, para consultar a taxa de tráfego SMC-R e RPS a cada segundo:
# 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
Monitorar contagens de conexões
O subcomando connection relata o número de conexões SMC ativas e conexões de retorno TCP no namespace de rede atual.
# 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'
Por exemplo, para consultar o número de conexões SMC-R a cada segundo:
# 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
Monitorar uso de memória
O subcomando memory relata o tamanho total dos buffers circulares usados pelas conexões SMC no namespace de rede atual.
# 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'
Por exemplo, para consultar o uso de buffer circular SMC-R a cada segundo:
# 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
Visualizar todas as estatísticas simultaneamente
O subcomando base combina taxas de tráfego, contagens de conexões e uso de memória em uma única saída.
Por exemplo, para consultar todas as estatísticas SMC-R a cada segundo:
# 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