CloudMonitor, eadm, iproute2 ve diagnose aracını kullanarak eRDMA trafiğini izleyin, arızaları tespit edin ve ağ performansını değerlendirin.
Ön koşullar
Hedef ECS örneğinde eRDMA yüklü ve dağıtılmış durumdadır. Bkz. Bir ECS örneği için eRDMA'yı etkinleştirme.
CloudMonitor ile eRDMA'yı izleme
CloudMonitor, eRDMA durumunu takip eder ve özel uyarıları destekler. Bkz. Özel izleme.
eRDMA tarafından desteklenen izleme ölçümlerini görüntüleme
CloudMonitor konsolu adresine giriş yapın.
-
Ölçüm listesi arama kutusuna eri yazarak eRDMA için izleme ölçümlerini görüntüleyin.
Arama sonuçları aşağıdaki 5 eRDMA izleme ölçümünü içerir (ölçüm türü:
erdma, Boyutlar:userId,instanceId, İstatistikler:Value, MinPeriods:60s; tüm ölçümler uyarı yapılandırmasını destekler):eri_active_qp_num: Örnek ERI boyutundaki bağlantı sayısı, birim: adetrx_eri_bw_bps: Örnek ERI boyutundaki gelen bant genişliği, birim: bit/srx_eri_pkt_pps: Örnek ERI boyutundaki gelen veri paketi PPS değeri, birim: adet/stx_eri_bw_bps: Örnek ERI boyutundaki giden bant genişliği, birim: bit/stx_eri_pkt_pps: Örnek ERI boyutundaki giden veri paketi PPS değeri, birim: adet/s
eadm aracıyla eRDMA'yı tanılama
eadm, eRDMA sürücüsüyle birlikte dağıtılan bir kullanıcı alanı aracıdır. Arızaların yerini belirlemenize yardımcı olmak için gerçek zamanlı izleme ve tanılama işlevleri sunar. Temel özellikler şunlardır:
Trafik izleme ve destekli tanılama: Tüm cihaz için gerçek zamanlı trafik istatistikleri.
Yapılandırmaları sorgulama ve ayarlama: Gecikmeli ACK özelliğini ve CC algoritmasını yapılandırma.
Aşağıda yaygın olarak kullanılan eadm komutları verilmiştir. Diğer komutlar için eadm -h çalıştırın.
Bu araç yalnızca tanılama ve hata ayıklama amacıyla kullanılır. Gelecekte değişiklik gösterebilir ve kullanılabilirliği tüm senaryolarda garanti edilmez.
-
eadmkomutu için yardımı görüntüleyin.eadm -h[root@xxx ~]# eadm -h Usage: eadm OBJECT { COMMAND | help } where OBJECT := { dump stat info ver conf help } -
Bir eRDMA cihazının gerçek zamanlı trafiğini izleme
Sürücü sürümü
0.2.34veya üzeri gerektirir.eadm stat -d <ibdev_name> -l<ibdev_name>: eRDMA cihaz adı. Bulmak içinibv_devinfoçalıştırın. Yalnızca bir eRDMA cihazı varsa-d <ibdev_name>parametresini atlayabilirsiniz.[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/s -
CM ve verbs mesaj sayıları ile trafik sayıları gibi eRDMA cihaz istatistiklerini alın.
eadm stat -d <ibdev_name><ibdev_name>: eRDMA cihaz adı. Bulmak içinibv_devinfoçalıştırın. Yalnızca bir eRDMA cihazı varsa-d <ibdev_name>parametresini atlayabilirsiniz.[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 : 0 -
Mevcut eRDMA sürücü sürümünü alın.
eadm ver
info, dump ve conf gibi diğer komutların kullanım kısıtlamaları vardır. Gerekmedikçe çalıştırmayın.
iproute2 ile eRDMA'yı izleme ve tanılama
iproute2, ağ arabirimlerini, yönlendirme tablolarını ve trafik kontrolünü yönetmek için ip ve ss gibi yardımcı programlar sunan bir Linux ağ araç setidir. RDMA alt sistemini izlemek ve tanılamak için yerleşik rdma komutunu kullanın.
Alibaba Cloud Linux 3 ve Ubuntu 20.04 veya sonraki sürümler gibi çoğu Linux dağıtımı, iproute2'yi varsayılan olarak içerir. Ayrıntılar için işletim sistemi belgelerine bakın.
-
eRDMA cihaz durumunu sorgulayın.
rdma link[root@xxx log]# rdma link link erdma_0/1 state ACTIVE physical_state LINK_UP netdev eth0 -
CQ, QP ve MR sayısı gibi eRDMA kaynak kullanımını sorgulayın.
NotRDMA ağ iletişimde Kuyruk Çifti (QP), Tamamlama Kuyruğu (CQ), Bellek Bölgesi (MR) ve verbs Opcode temel bileşenlerdir. RDMA iletişimde önemli roller oynarlar ve RDMA ağ iletişiminin yüksek verimlilik ve düşük gecikme süresi sağlamasını garanti ederler.
rdma res[root@xxx log]# rdma res 1: erdma_0: pd 12 cq 2 qp 200 cm_id 201 mr 301 ctx 2 -
Bağlantı sayıları, bağlantı durumu ve paket sayıları gibi eRDMA performans istatistiklerini sorgulayın.
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
Diagnose aracıyla eRDMA'yı tanılama ve değerlendirme
Diagnose aracı, eRDMA için temel işlev kontrollerini, HPC ortamı kontrollerini ve gecikme süresi kontrollerini destekler.
Bir diagnose kontrolünün olası sonuçları
PASS: Kontrol başarılı oldu.SKIP: Mevcut sistem sürümü bu kontrolü desteklemiyor.FAIL: Kontrol aracı yüklü değil veya kontrol başarısız oldu. Başarısız olan komutfail infoiçinde listelenir.Diğer INFO mesajları: eRDMA yapılandırma ayrıntıları (kurulum modu, sürücü sürümü ve CC algoritması gibi).
diagnose'u yükleme
eRDMA yapılandırılmış bir örnekte diagnose aracını indirin:
-
Dahili bir URL'den indirme
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py -
Genel bir URL'den indirme
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
Temel eRDMA işlevlerini tanılama
Temel işlev testi, sürücü kurulumunu, ağ bağlantısını ve eRDMA çekirdek sürücüsünün kurulum modunu doğrular.
Yöntem:
-
eRDMA yapılandırılmış örneğe giriş yapın.
-
Diagnose aracını indirin.
-
Dahili bir URL'den indirme
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py -
Genel bir URL'den indirme
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
-
-
eRDMA'nın temel işlevlerini kontrol edin:
python diagnose.py -dAşağıda örnek bir çıktı verilmiştir. Tanılama öğelerinin açıklamaları için bkz. eRDMA temel işlev tanılama öğeleri.
[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
eRDMA HPC ortamını tanılama
eRDMA ortamındaki HPC uygulamaları ek bağımlılıklar ve yapılandırmalar gerektirebilir. Diagnose aracı bu bağımlılıkları kontrol eder.
Yöntem:
-
eRDMA yapılandırılmış örneğe giriş yapın.
-
Diagnose aracını indirin.
-
Dahili bir URL'den indirme
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py -
Genel bir URL'den indirme
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
-
-
HPC ortamı bağımlılıklarını kontrol edin:
python diagnose.py --hpc-checkÖrnek çıktı. Tanılama öğelerinin açıklamaları için bkz. eRDMA HPC ortamı bağımlılık kontrolleri.
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
eRDMA ağ performansını değerlendirme
Örnekler arasındaki ağ performansını test etmek için diagnose aracındaki perftest özelliğini kullanın.
-
Ön koşullar
Testi çalıştırmadan önce:
Tüm test düğümlerinde eRDMA yüklü ve dağıtılmış durumdadır. Bkz. Bir ECS örneği için eRDMA'yı etkinleştirme.
Tüm test düğümleri arasında parolasız SSH yapılandırılmıştır. Bkz. Parolasız SSH oturum açmayı yapılandırma.
-
Tüm test düğümlerinde Python paramiko yüklüdür.
NotDiagnose aracı uzak bağlantılar için paramiko kullanır.
Paramiko'yu aşağıdaki komutlarla yükleyin. Python 3 önerilir.
Alibaba Cloud Linux/CentOS
# python3 sudo python3 -m pip install --upgrade pip sudo python3 -m pip install paramiko # python2 # If the pip module is not installed for Python 2, install 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 # If python2-pip is not installed on the current node, install it. 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
-
Yöntem
-
eRDMA yapılandırılmış örneğe giriş yapın.
-
Diagnose aracını indirin.
-
Dahili bir URL'den indirme
wget http://mirrors.cloud.aliyuncs.com/erdma/tools/diagnose.py -
Genel bir URL'den indirme
wget https://mirrors.aliyun.com/erdma/tools/diagnose.py
-
-
eRDMA gecikme süresini test edin:
python diagnose.py --perftest --hosts <n1> <n2> --user <username> --key-file </path/to/private_key>Parametreler:
--hosts <n1> <n2>: Test düğümleri, boşlukla ayrılmıştır.<n1> <n2>değerini her düğümdeki eRDMA etkinleştirilmiş ENI'nin özel IP adresiyle değiştirin.--user <username>: Parolasız SSH için kullanıcı adı.--key-file </path/to/private_key>: SSH için özel anahtar dosyasının mutlak yolu.
İki örnekli gecikme süresi testi için örnek çıktı. Bkz. eRDMA ağ performansı testleri.
Her tablo farklı işlemler için gecikme süresini gösterir. Satırlar istekte bulunanları, sütunlar yanıt verenleri temsil eder. Hücre değerleri mikrosaniye cinsinden ortalama gecikme süresini (parantez içinde 99,9. yüzdelik dilim) gösterir.
[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) | ----------------------------------------------------------------------
-