Lewati ke isi

Uji trafik

Trafik diuji melewati router, dari client ke server: c1 → R2 → R1 → s1, memakai iperf3.

Jangan menguji dari router

Trafik yang berasal dari router sendiri lewat jalur Linux (tap), bukan VPP. Lihat Alur paket.

bwtest

tests/qemu/lab.sh bwtest              # 32 stream, 10 detik
tests/qemu/lab.sh bwtest 64 30        # 64 stream, 30 detik

bwtest melakukan tiga hal:

  1. TCP throughput: iperf3 -P N dari c1 ke s1, lalu menampilkan show dataplane load di R2 dan R1.
  2. Pembagian koneksi: UDP satu arah. UDP dipakai karena tanpa ACK, sehingga hasilnya murni menunjukkan pembagian koneksi. Lulus kalau setiap worker meneruskan minimal setengah porsi adilnya (≥ 25% untuk 2 worker, ≥ 16,7% untuk 3 worker), yang dicek dengan cidr-dataplane load --check.
  3. Cara pembagian: show dataplane queues.

Contoh hasil (R2 dengan 4 vCPU)

==> Connection spreading (one-way UDP, 48 streams, so ACKs do not blur the result)
--- r2: show dataplane load (UDP, one direction)
Thread     Core    Forwarded  Share    Avg pps Vec/call  Bar
----------------------------------------------------------------
vpp_main      0            0   0.0%          0     0.00
vpp_wk_0      1        12198  35.5%        424    18.06  #######
vpp_wk_1      2        13570  39.5%        471     5.33  ########
vpp_wk_2      3         8624  25.1%        299    16.50  #####

--- r1: show dataplane load (UDP, one direction)
vpp_wk_0      1        16118  56.3%        286     8.39  ###########
vpp_wk_1      2        12489  43.7%        222    14.10  #########

  PASS R2 spreads the connections over its workers
  PASS R1 spreads the connections over its workers

Angka throughput di VM bukan angka performa router

Di lab, throughput dibatasi virtualisasi. Contoh di atas berasal dari VM tanpa KVM (emulasi), sehingga hanya sekitar 55 Mbps. Yang dibuktikan lab adalah pembagian koneksinya. Angka performa sebenarnya harus diukur di server fisik dengan NIC Intel atau Mellanox.

Memantau saat uji berjalan

admin@r2> monitor interface traffic
Interface        Input rate   Input pps    Output rate  Output pps
------------------------------------------------------------------
eth1            319.61 Kbps         579     54.06 Mbps        4463
eth2             53.83 Mbps        4444    314.74 Kbps         570

eth2 menerima dari c1, dan eth1 meneruskan ke R1.

Manual

tests/qemu/lab.sh ssh c1 iperf3 -c 10.20.0.10 -P 32 -t 30

Di router: clear dataplane statistics sebelum uji, lalu show dataplane load sesudahnya.

Menguji di hardware asli

  1. Siapkan client dan server di luar router, di dua sisi yang berbeda.
  2. Jalankan iperf3 -c <server> -P 64 -t 60. Untuk angka line-rate, pakai generator trafik seperti TRex.
  3. Pantau monitor interface traffic dan show dataplane load. Kalau Vec/call mendekati 256 di semua worker, router sudah jenuh.