Gunakan CloudMonitor, eadm, iproute2, dan tool diagnose untuk memantau lalu lintas eRDMA, mengidentifikasi titik kegagalan, serta mengevaluasi kinerja jaringan.
Prasyarat
eRDMA telah diinstal dan diterapkan pada instans ECS target. Lihat Aktifkan eRDMA untuk instans ECS.
Pantau eRDMA dengan CloudMonitor
CloudMonitor melacak status eRDMA dan mendukung pengaturan alert kustom. Lihat Pemantauan kustom.
Lihat metrik pemantauan yang didukung oleh eRDMA
Masuk ke Konsol CloudMonitor.
Pada kotak pencarian daftar metrik, masukkan eri untuk melihat metrik pemantauan eRDMA.
Hasil pencarian mencakup lima metrik pemantauan eRDMA berikut (jenis metrik:
erdma, dimensi:userId,instanceId, statistik:Value, periode minimum:60 detik; semua metrik mendukung konfigurasi alert):eri_active_qp_num: Jumlah koneksi dalam dimensi ERI instans, satuan: jumlahrx_eri_bw_bps: Bandwidth masuk dalam dimensi ERI instans, satuan: bit/detikrx_eri_pkt_pps: PPS paket data masuk dalam dimensi ERI instans, satuan: jumlah/detiktx_eri_bw_bps: Bandwidth keluar dalam dimensi ERI instans, satuan: bit/detiktx_eri_pkt_pps: PPS paket data keluar dalam dimensi ERI instans, satuan: jumlah/detik
Diagnosa eRDMA dengan tool eadm
eadm adalah tool user-space yang diterapkan bersama driver eRDMA. Tool ini menyediakan pemantauan waktu nyata dan diagnostik untuk membantu mengidentifikasi titik kegagalan. Fitur utamanya meliputi:
Pemantauan lalu lintas dan diagnostik bantuan: Statistik lalu lintas waktu nyata untuk seluruh perangkat.
Kueri dan atur konfigurasi: Konfigurasikan fitur delay ACK dan algoritma CC.
Berikut adalah beberapa perintah umum eadm. Untuk perintah lainnya, jalankan eadm -h.
Tool ini hanya digunakan untuk diagnostik dan debugging. Tool ini dapat berubah di masa depan, dan ketersediaannya tidak dijamin dalam semua skenario.
Lihat bantuan untuk perintah
eadm.eadm -h[root@xxx ~]# eadm -h Usage: eadm OBJECT { COMMAND | help } where OBJECT := { dump stat info ver conf help }Pantau lalu lintas waktu nyata perangkat eRDMA
Memerlukan versi driver
0.2.34atau lebih baru.eadm stat -d <ibdev_name> -l<ibdev_name>: nama perangkat eRDMA. Jalankanibv_devinfountuk menemukannya. Jika hanya terdapat satu perangkat eRDMA, Anda dapat menghilangkan-d <ibdev_name>.[root@xxx xxx ~]# ibv_devinfo hca_id: erdma_0 transport: eRDMA (1) fw_ver: 0.2.0 node_guid: 0216:3eff:fe13:1914 sys_image_guid: 0216:3eff:fe13:1914 vendor_id: 0x1ded vendor_part_id: 4223 hw_ver: 0x0 phys_port_cnt: 1 port: 1 state: PORT_ACTIVE (4) max_mtu: 4096 (5) active_mtu: 4096 (5) sm_lid: 0 port_lid: 0 port_lmc: 0x00 link_layer: Ethernet [root@xxx xxx ~]# eadm stat -d erdma_0 -l Monitoring erdma_0... (press CTRL-C to stop) 14:07:57 rx: 218.46 MiB/s 1000313 p/s tx: 218.46 MiB/s 1000315 p/sDapatkan statistik perangkat eRDMA, seperti jumlah pesan CM dan verbs serta volume lalu lintas.
eadm stat -d <ibdev_name><ibdev_name>: nama perangkat eRDMA. Jalankanibv_devinfountuk menemukannya. Jika hanya terdapat satu perangkat eRDMA, Anda dapat menghilangkan-d <ibdev_name>.[root@ixxxxxxZ ~]# eadm stat -d erdma_0 return cnts:55 listen_create_cnt : 1 listen_ipv6_cnt : 0 listen_success_cnt : 1 listen_failed_cnt : 0 listen_destroy_cnt : 0 accept_total_cnt : 300 accept_success_cnt : 300 accept_failed_cnt : 0 reject_cnt : 0 reject_failed_cnt : 0 connect_total_cnt : 300 connect_success_cnt : 300 connect_failed_cnt : 0 connect_timeout_cnt : 0 connect_reset_cnt : 0 cmdq_submitted_cnt : 266 cmdq_comp_cnt : 266 cmdq_eq_notify_cnt : 263 cmdq_eq_event_cnt : 0Dapatkan versi driver eRDMA saat ini.
eadm ver
Perintah lain seperti info, dump, dan conf memiliki batasan penggunaan. Jangan menjalankannya kecuali benar-benar diperlukan.
Pantau dan diagnosa eRDMA dengan iproute2
iproute2 adalah toolkit jaringan Linux yang menyediakan utilitas seperti ip dan ss untuk mengelola antarmuka jaringan, tabel routing, dan kontrol lalu lintas. Gunakan perintah bawaan rdma untuk memantau dan mendiagnosa subsistem RDMA.
Sebagian besar distribusi Linux, seperti Alibaba Cloud Linux 3 dan Ubuntu 20.04 atau lebih baru, sudah menyertakan iproute2 secara default. Lihat dokumentasi sistem operasi Anda untuk detail lebih lanjut.
Kueri status perangkat eRDMA.
rdma link[root@xxx log]# rdma link link erdma_0/1 state ACTIVE physical_state LINK_UP netdev eth0Kueri penggunaan resource eRDMA, seperti jumlah CQ, QP, dan MR.
CatatanDalam komunikasi jaringan RDMA, Queue Pair (QP), Completion Queue (CQ), Memory Region (MR), dan verbs Opcode merupakan komponen inti. Komponen-komponen ini memainkan peran penting dalam komunikasi RDMA dan menjamin efisiensi tinggi serta latensi rendah pada komunikasi jaringan RDMA.
rdma res[root@xxx log]# rdma res 1: erdma_0: pd 12 cq 2 qp 200 cm_id 201 mr 301 ctx 2Kueri statistik kinerja eRDMA, seperti jumlah koneksi, status koneksi, dan jumlah paket.
rdma -p stat[root@xxx log]# rdma -p stat link erdma_0/1 link erdma_0/1 listen_create_cnt 1 listen_ipv6_cnt 0 listen_success_cnt 1 listen_failed_cnt 0 listen_destroy_cnt 0 accept_total_cnt 500 accept_success_cnt 500 accept_failed_cnt 0 reject_cnt 0 reject_failed_cnt 0 connect_total_cnt 500 connect_success_cnt 500 connect_failed_cnt 0 connect_timeout_cnt 0 connect_reset_cnt 0 cmdq_submitted_cnt 6344 cmdq_comp_cnt 6344 cmdq_eq_notify_cnt 5453 cmdq_eq_event_cnt 0 cmdq_cq_armed_cnt 5454 erdma_aeq_event_cnt 0
Diagnosa dan evaluasi eRDMA dengan tool diagnose
Tool diagnose mendukung pemeriksaan fungsi dasar, pemeriksaan lingkungan HPC, dan pemeriksaan latensi untuk eRDMA.
Kemungkinan hasil pemeriksaan diagnose
PASS: Pemeriksaan berhasil.SKIP: Versi sistem saat ini tidak mendukung pemeriksaan ini.FAIL: Tool pemeriksaan tidak terinstal atau pemeriksaan gagal. Perintah yang gagal tercantum dalamfail info.Pesan INFO lainnya: Detail konfigurasi eRDMA, seperti mode instalasi, versi driver, dan algoritma CC.
Instal diagnose
Pada instans yang telah dikonfigurasi eRDMA, unduh tool diagnose:
Unduh dari URL internal
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.pyUnduh dari URL publik
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
Diagnosa fungsi dasar eRDMA
Pengujian fungsi dasar memverifikasi instalasi driver, konektivitas jaringan, dan mode instalasi driver kernel eRDMA.
Prosedur:
Masuk ke instans yang telah dikonfigurasi eRDMA.
Unduh tool diagnose.
Unduh dari URL internal
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.pyUnduh dari URL publik
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
Periksa fungsi dasar eRDMA:
python diagnose.py -dBerikut adalah contoh output. Untuk deskripsi item diagnostik, lihat Item diagnostik fungsi dasar eRDMA.
[root@jxxx ~]# python diagnose.py -d [INFO] Begin to run erdma basic diagnoses. It's better to ensure that erdma driver and related tools, e.g. eadm, ibv_devinfo, rdma, have been installed. [INFO] The diagnose results mean: [INFO] PASS: pass the test or meet the requirement. [INFO] SKIP: encounter some problems when running the diagnose. [INFO] FAIL: test failed or requirements are not met. [INFO] XXXX: the erdma-related information, e.g. erdma driver version, cc algorithm. Name Result Desc fail info ------------------------------------------------------------------------------------------------------------------------------ erdma device PASS erdma pci device is present erdma installed PASS erdma module has been installed erdma loaded PASS erdma module has been loaded ibverbs loaded PASS ib_uverbs module has been loaded erdma tools PASS eadm|rdma|ibv_devinfo tools have been installed hca detected PASS IB device exist hca active PASS status is PORT_ACTIVE erdma stats PASS no failed counter network config PASS network configuration seems ok erdma dmesg PASS no concerning error logs detected atomic support PASS atomic capacity support go-back-n support FAIL Go-back-N capacity support CHCK FAILED [eadm info -t ext_attr -d erdma_0 | grep -w attr_mask | awk '{print $2}'] erdma install mode Standard erdma installation mode kernel driver version 0.2.37 erdma kernel driver version rdma-core version 44.1-2 rdma-core version cc algorithm hpcc_rtt current cc algorithm
Diagnosa lingkungan HPC eRDMA
Aplikasi HPC dalam lingkungan eRDMA mungkin memerlukan dependensi dan konfigurasi tambahan. Tool diagnose memeriksa dependensi tersebut.
Prosedur:
Masuk ke instans yang telah dikonfigurasi eRDMA.
Unduh tool diagnose.
Unduh dari URL internal
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.pyUnduh dari URL publik
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
Periksa dependensi lingkungan HPC:
python diagnose.py --hpc-checkContoh output. Untuk deskripsi item diagnostik, lihat Pemeriksaan dependensi lingkungan HPC eRDMA.
ecs-user@xxx ~$ python diagnose.py --hpc-check [INFO] Begin to run hpc related diagnoses for erdma. If the missing dependencies are not required, please ignore them. [INFO] The diagnose results mean: [INFO] PASS: pass the test or meet the requirement. [INFO] SKIP: encounter some problems when running the diagnose. [INFO] FAIL: test failed or requirements are not met. [INFO] XXXX: the erdma-related information, e.g. erdma driver version, cc algorithm. Name Result Desc fail info ---------------------------- ------------------- ------------------------------------------------------- ------------------- cc algorithm cubic current cc algorithm go-back-n support PASS Go-back-N capacity support dapl1 install FAIL dapl1 installation check CHCK FAILED [ls /etc/rdma/compat-dapl/dat.conf && ls /usr/lib64/libdaplcma.so.1.0.2] dapl2 install PASS dapl2 installation check dapl2 config PASS dapl2 erdma configuration check dapl2 test PASS dapl2 dtest result
Evaluasi kinerja jaringan eRDMA
Gunakan fitur perftest dalam tool diagnose untuk menguji kinerja jaringan antar instans.
Prasyarat
Sebelum menjalankan pengujian:
eRDMA telah diinstal dan diterapkan pada semua node pengujian. Lihat Aktifkan eRDMA untuk instans ECS.
SSH tanpa kata sandi telah dikonfigurasi di antara semua node pengujian. Lihat Konfigurasikan login SSH tanpa kata sandi.
Python paramiko telah diinstal pada semua node pengujian.
CatatanTool diagnose menggunakan paramiko untuk koneksi jarak jauh.
Instal paramiko dengan perintah berikut. Disarankan menggunakan Python 3.
Alibaba Cloud Linux/CentOS
# python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip install paramiko # python2 # Jika modul pip belum diinstal untuk Python 2, instal python2-pip. sudo yum -y install python2-pip sudo python2 -m pip install --upgrade pip==20.3.4 sudo python2 -m pip install paramikoUbuntu
# python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip install paramiko # python2 # Jika python2-pip belum diinstal pada node saat ini, instal terlebih dahulu. sudo apt install software-properties-common sudo add-apt-repository universe sudo apt update sudo apt install python2 sudo curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py sudo python2 get-pip.py sudo python2 -m pip install --upgrade pip==20.3.4 sudo python2 -m pip install paramiko
Prosedur
Masuk ke instans yang telah dikonfigurasi eRDMA.
Unduh tool diagnose.
Unduh dari URL internal
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.pyUnduh dari URL publik
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
Uji latensi eRDMA:
python diagnose.py --perftest --hosts <n1> <n2> --user <username> --key-file </path/to/private_key>Parameter:
--hosts <n1> <n2>: Node pengujian, dipisahkan dengan spasi. Ganti<n1> <n2>dengan alamat IP pribadi ENI yang diaktifkan eRDMA pada masing-masing node.--user <username>: Username untuk SSH tanpa kata sandi.--key-file </path/to/private_key>: Path absolut ke file kunci privat untuk SSH.
Contoh output pengujian latensi dua instans. Lihat Pengujian kinerja jaringan eRDMA.
Setiap tabel menunjukkan latensi untuk operasi berbeda. Baris merepresentasikan pengirim permintaan, kolom merepresentasikan penerima respons. Nilai sel menunjukkan latensi rata-rata dalam mikrodetik (persentil 99,9 dalam tanda kurung).
[ecs-xxx ~]$ python diagnose.py --perftest --hosts 172.17.0.87 172.17.0.86 --user ecs-user --key-file /home/ecs-user/.ssh/id_rsa /usr/local/lib/python3.6/site-packages/paramiko/transport.py:32: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. or Python 3.6. from cryptography.hazmat.backends import default_backend INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_8.0) INFO:paramiko.transport:Authentication (publickey) successful! INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_8.0) INFO:paramiko.transport:Authentication (publickey) successful! [INFO] Begin to run perftest, the results will be shown in table. [INFO] In each table, the line represents client while the column represents server. [INFO] Each table cell shows the average latency and p999 latency(in the bracket). [INFO] Current perftest configuration: [INFO] tests: send_lat read_lat write_lat message_size: 2 iterations: 10000 ---------------------------------------------------------------------- | ib_send_lat latency table(us) | ---------------------------------------------------------------------- | | 172.17.0.87 | 172.17.0.86 | ---------------------------------------------------------------------- | 172.17.0.87 | 14.60(87.53) | 14.29(25.25) | ---------------------------------------------------------------------- | 172.17.0.86 | 14.35(51.63) | 8.31(21.09) | ---------------------------------------------------------------------- ---------------------------------------------------------------------- | ib_read_lat latency table(us) | ---------------------------------------------------------------------- | | 172.17.0.87 | 172.17.0.86 | ---------------------------------------------------------------------- | 172.17.0.87 | 24.28(51.43) | 27.57(57.42) | ---------------------------------------------------------------------- | 172.17.0.86 | 27.43(41.14) | 13.88(49.83) | ---------------------------------------------------------------------- ---------------------------------------------------------------------- | ib_write_lat latency table(us) | ---------------------------------------------------------------------- | | 172.17.0.87 | 172.17.0.86 | ---------------------------------------------------------------------- | 172.17.0.87 | 183.71(25003.59) | 12.76(27.00) | ---------------------------------------------------------------------- | 172.17.0.86 | 12.80(26.05) | 6.41(13.75) | ----------------------------------------------------------------------