Pantau kondisi Shared Memory Communication (SMC) dengan melacak statistik tumpukan protokol, koneksi aktif, dan status perangkat RDMA yang mendasarinya. Semua metrik dikumpulkan menggunakan tool dari paket smc-tools.
Prasyarat
Sebelum memulai, pastikan Anda telah:
menginstal Alibaba Cloud Linux 3 pada instans Anda
menginstal
smc-tools(kumpulan tool maintenance SMC mode pengguna)
Untuk menginstal smc-tools, jalankan:
sudo yum install -y smc-toolsPantau tumpukan protokol
Tumpukan SMC mengekspos metrik koneksi, lalu lintas, dan memori bersama ke ruang pengguna melalui netlink. Perintah smcr membaca dan menginterpretasikan metrik ini.
Kueri statistik tumpukan SMC-R
Jalankan smcr stats untuk mengkueri statistik tentang tumpukan SMC over Remote Direct Memory Access (SMC-R) di namespace net saat ini:
smcr statsContoh output:
# 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 5Tabel berikut menjelaskan parameter utama.
| Parameter | Deskripsi |
|---|---|
Total connections handled | Total koneksi yang ditangani oleh tumpukan SMC-R. Sama dengan jumlah dari SMC connections, Handshake errors, dan TCP fallback. |
SMC connections | Koneksi yang berhasil dikonversi ke SMC-R. |
Handshake errors | Koneksi yang gagal selama fase handshake (misalnya, tidak ada respons dari peer). |
Avg requests per SMC conn | Jumlah rata-rata permintaan yang dikirim atau diterima per koneksi SMC. |
TCP fallback | Koneksi yang beralih kembali ke TCP/IP setelah negosiasi SMC gagal. |
Rx/Data transmitted (Bytes) | Total byte yang diterima melalui koneksi SMC-R. |
Rx/Total requests | Total permintaan yang diterima melalui koneksi SMC-R. |
Rx/Buffer usage (Bytes) | Ukuran total buffer Rx yang sedang digunakan. Satuan: byte. |
Rx/Buffer full | Jumlah kali buffer Rx menjadi penuh. Buffer Rx yang penuh menyebabkan tekanan balik ke pengirim dan mencegah data baru masuk. Untuk mengurangi angka ini, konfigurasikan aplikasi Anda agar membaca dari buffer Rx lebih cepat, atau tingkatkan ukuran buffer Rx. |
Rx/Bufs | Distribusi ukuran buffer Rx yang dialokasikan ke koneksi SMC-R. SMC-R mempertahankan kolam memori per kelompok link. Saat koneksi dibuka, SMC-R mengalokasikan blok idle dengan ukuran yang sesuai dari kolam (atau membuat yang baru). Saat koneksi ditutup, blok tersebut dikembalikan ke kolam. Penghitung ini melacak total alokasi—termasuk blok yang dibuat maupun yang digunakan ulang—bukan jumlah buffer yang secara aktif mengonsumsi memori. |
Rx/Reqs | Distribusi ukuran permintaan yang diterima melalui koneksi SMC-R. |
Tx/Data transmitted (Bytes) | Total byte yang dikirim melalui koneksi SMC-R. |
Tx/Total requests | Total permintaan yang dikirim melalui koneksi SMC-R. |
Tx/Buffer full | Jumlah kali buffer Tx menjadi penuh karena tumpukan SMC-R tidak dapat mengosongkan data ke link tepat waktu. Jika persentase ini tinggi, tingkatkan ukuran buffer Tx. |
Tx/Buffer full (remote) | Jumlah kali buffer Rx peer penuh, sehingga mencegah ujung lokal mengirim data. Jika persentase ini tinggi, tingkatkan ukuran buffer Rx peer. |
Tx/Buffer too small | Jumlah kali permintaan kirim melebihi kapasitas buffer Tx. Jika persentase ini tinggi, tingkatkan ukuran buffer Tx. |
Tx/Buffer too small (remote) | Jumlah kali permintaan kirim melebihi kapasitas buffer Rx peer. Jika persentase ini tinggi, tingkatkan ukuran buffer Rx peer. |
Tx/Bufs | Distribusi ukuran buffer Tx yang dialokasikan ke koneksi SMC-R. Mengikuti logika kolam yang sama seperti Rx/Bufs—melacak total alokasi, bukan buffer yang secara aktif mengonsumsi memori. |
Tx/Reqs | Distribusi ukuran permintaan yang dikirim melalui koneksi SMC-R. |
Kueri statistik kelompok link
Secara default, setiap kelompok link berisi satu link dan dapat membawa hingga 32 koneksi SMC-R. Kelompok link mengelola serangkaian sumber daya RDMA, termasuk Queue Pairs (QPs), Protection Domains (PDs), dan Memory Registrations (MRs).
Jalankan smcr linkgroup untuk mencantumkan semua kelompok link SMC-R yang terkait dengan perangkat RDMA yang dapat diakses di namespace net saat ini:
smcr linkgroupContoh output:
# smcr linkgroup
LG-ID LG-Role LG-Type VLAN #Conns PNET-ID
00000300 SERV SINGLE 0 0Pantau jumlah kelompok link (yang sama dengan jumlah QP yang digunakan) dan bidang #Conns:
| Parameter | Deskripsi |
|---|---|
#Conns | Jumlah koneksi SMC yang dibawa oleh kelompok link. |
Untuk informasi detail kelompok link, jalankan:
smcr -d linkgroupContoh output:
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| Parameter | Deskripsi |
|---|---|
Sndbuf | Total memori yang ditempati oleh kolam buffer Tx yang dipertahankan oleh kelompok link. Satuan: byte. |
CNY | Total memori yang ditempati oleh kolam buffer Rx yang dipertahankan oleh kelompok link. Satuan: byte. |
Kueri informasi perangkat RDMA
Jalankan smcr device untuk mencantumkan perangkat RDMA yang digunakan oleh tumpukan SMC-R:
smcr deviceContoh output:
# smcr device
Net-Dev IB-Dev IB-P IB-State Type Crit #Links PNET-ID
eth1 erdma_0 1 ACTIVE 0x107f No 0| Parameter | Deskripsi |
|---|---|
Net-Dev | Nama perangkat Ethernet. |
IB-Dev | Nama perangkat RDMA. |
IB-P | Port perangkat RDMA. |
IB-State | Status perangkat RDMA. |
Type | Jenis perangkat RDMA. Perangkat Alibaba Cloud elastic Remote Direct Memory Access (eRDMA) menampilkan 0x107f. |
#Links | Jumlah link yang terkait dengan perangkat RDMA. |
PNET-ID | ID jaringan fisik (PNET) perangkat RDMA. Untuk detail konfigurasi, lihat Konfigurasi parameter PNET ID. |
Pantau koneksi
smcss mencetak informasi tentang socket SMC, mirip dengan perintah ss. Perintah ini mengambil informasi socket dari netlink, mencakup baik socket yang berhasil melakukan negosiasi SMC maupun yang beralih kembali ke TCP.
Secara default, smcss mencantumkan socket SMC yang sedang menghubungkan, menutup, dan terhubung di namespace net saat ini.
Kueri informasi dasar socket
smcssContoh output:
# 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| Parameter | Deskripsi |
|---|---|
State | Status socket. Nilai valid: INIT (menginisialisasi), CLOSED (ditutup), LISTEN (mendengarkan), ACTIVE (koneksi terbentuk), PEERCLW1 (tidak mengirim data lagi ke peer), PEERCLW2 (tidak mengirim atau menerima data lagi dari peer), APPLCLW1 (tidak menerima data lagi dari peer), APPLCLW2 (tidak menerima atau mengirim data lagi ke peer), APPLFINCLW (peer menutup socket), PEERFINCLW (socket ditutup secara lokal), PEERABORTW (socket ditutup secara lokal dalam kondisi abnormal), PROCESSABORT (peer menutup socket secara abnormal). |
Local Address | Alamat IPv4 atau IPv4-mapped IPv6 lokal dan port-nya. SMC hanya mendukung IPv4. |
Peer Address | Alamat IPv4 atau IPv4-mapped IPv6 peer dan port-nya. SMC hanya mendukung IPv4. |
Mode | Mode komunikasi. SMCR berarti koneksi berjalan di tumpukan SMC-R. TCP <fallback reason> berarti koneksi beralih kembali ke TCP/IP. Kode numerik menunjukkan alasan fallback. Untuk daftar lengkap kode fallback, lihat Fallback ke TCP/IP setelah mengaktifkan SMC. |
Kueri socket yang mendengarkan
smcss -lBidang outputnya sama seperti smcss.
Kueri detail socket SMC-R
smcss -RContoh output:
# 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:xxxxSelain bidang dasar smcss, smcss -R menambahkan hal berikut:
| Parameter | Deskripsi |
|---|---|
IB-device | Nama perangkat RDMA yang digunakan untuk koneksi. |
Port | Port perangkat RDMA yang digunakan untuk koneksi. |
GID | Global ID (GID) perangkat RDMA yang digunakan untuk koneksi. |
Peer-GID | GID perangkat RDMA peer. |
Kueri semua socket
smcss -aBidang outputnya sama seperti smcss.
Pantau perangkat
SMC-R menggunakan perangkat eRDMA Alibaba Cloud sebagai infrastruktur RDMA yang mendasarinya. eRDMA menyediakan tool mode pengguna untuk mengumpulkan statistik tentang sumber daya RDMA dan status perangkat. Untuk detailnya, lihat Pantau dan diagnosa eRDMA.
Pemantauan terintegrasi dengan smc_monitor_ex
smc_monitor_ex adalah skrip pemantauan yang disertakan dalam smc-tools. Skrip ini memanggil smcr dan smcss secara internal untuk melaporkan laju lalu lintas SMC, jumlah koneksi, dan penggunaan memori dalam satu tampilan.
smc_monitor_ex adalah tool eksperimental. Antarmukanya dapat berubah pada rilis mendatang.
Jalankan smc_monitor_ex -h untuk melihat subperintah yang tersedia:
# 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 exitMemantau laju trafik
Subperintah speed melaporkan laju lalu lintas SMC dan jumlah permintaan per detik (RPS) di namespace net saat ini.
# 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'Sebagai contoh, untuk mengkueri laju lalu lintas SMC-R dan RPS setiap detik:
# 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 /sPantau jumlah koneksi
Subperintah connection melaporkan jumlah koneksi SMC aktif dan koneksi fallback TCP di namespace net saat ini.
# 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'Sebagai contoh, untuk mengkueri jumlah koneksi SMC-R setiap detik:
# 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 0Pantau penggunaan memori
Subperintah memory melaporkan ukuran total buffer cincin yang digunakan oleh koneksi SMC di namespace net saat ini.
# 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'Sebagai contoh, untuk mengkueri penggunaan buffer cincin SMC-R setiap detik:
# 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 KBLihat semua statistik sekaligus
Subperintah base menggabungkan laju lalu lintas, jumlah koneksi, dan penggunaan memori ke dalam satu output.
Sebagai contoh, untuk mengkueri semua statistik SMC-R setiap detik:
# 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