Tutorial ini menjelaskan cara menghitung throughput jaringan, baik di dalam Google Cloud dan ke lokasi cloud lokal atau pihak ketiga yang terhubung menggunakan Cloud Interconnect. Dokumen ini menjelaskan cara menganalisis hasil, mencantumkan variabel yang dapat memengaruhi performa jaringan, dan memberikan beberapa tips pemecahan masalah.
Batasan dan pertimbangan
- Batasan Cloud Interconnect berlaku. Untuk mengetahui informasi selengkapnya, lihat Kuota Cloud Interconnect.
- Batas NIC: Google Cloud memperhitungkan bandwidth setiap instance mesin virtual (VM), bukan untuk setiap antarmuka jaringan (NIC) atau alamat IP. Jenis mesin VM menentukan tarif keluar maksimumnya; namun, tarif tersebut hanya dapat dicapai dalam situasi tertentu. Lihat tabel ini untuk mengetahui jumlah vCPU per jenis mesin.
Perangkat lain di jalur (firewall, tombol dengan buffer kecil, dan perangkat vendor lainnya) serta batasan yang berlaku. Lakukan tugas berikut untuk mengurangi batasan tersebut.
- Mengumpulkan statistik jaringan tentang firewall dan tombol di jalur.
- Untuk pengujian Cloud Interconnect, lewati sebanyak mungkin perangkat antara host lokal dan perangkat Google Edge.
- Identifikasi dan verifikasi semua perangkat di jalur antara jaringan okal dan VM Google Cloud, apakah perangkat tersebut dapat menjadi sumber masalah throughput.
Ringkasan alat untuk mengukur throughput jaringan
Tutorial ini menunjukkan penggunaan alat berikut untuk menghitung throughput jaringan:
iPerf3: Alat pengujian jaringan yang dapat membuat aliran data TCP/UDP (thread tunggal atau multi-thread) dan mengukur throughput jaringan yang membawanya.
Catatan: iPerf3 direkomendasikan hanya untuk mesin dengan CPU tunggal.
Netperf: Alat yang mirip dengan iPerf3, tetapi sesuai untuk pengujian throughput pada instance multi-CPU yang terikat dengan CPU pada single CPU .
tcpdump: Penganalisis paket command line yang merekam detail paket dan komunikasi TCP/IP untuk pemecahan masalah lanjutan. Alat tcpdump kompatibel dengan alat lain, seperti Wireshark.
Netstat: Utilitas jaringan command line yang menampilkan koneksi jaringan untuk Transmission Control Protocol (masuk dan keluar), tabel perutean, dan beberapa antarmuka jaringan (pengontrol antarmuka jaringan atau antarmuka software-defined network) dan statistik protokol jaringan.
mtr: Alat diagnostik jaringan yang menjalankan fungsi traceroute dan ping. Fitur ini memeriksa router di jalur rute dengan membatasi jumlah hop yang dapat dilalui setiap paket, dan memproses respons masa berlakunya.
Mengukur throughput dengan iPerf3
Ikuti prosedur ini untuk mengukur throughput dari satu instance VM.
Pilih jenis mesin yang besar
Untuk melakukan pengujian throughput, gunakan jenis mesin besar, seperti n1-standard-8. Jenis mesin ini memberikan batas throughput traffic keluar maksimum sebesar 16 Gbps, sehingga throughput traffic keluar per VM tidak mengganggu pengujian.
Instal alat
Menginstal iPerf3, mtr, netstat, dan tcpdump pada instance VM Linux
Untuk distribusi berbasis Debian, jalankan perintah berikut:
sudo apt-get update sudo apt-get install iperf3 tcpdump mtr netstat
Untuk distribusi berbasis Redhat, jalankan perintah berikut:
yum update yum install iperf3 tcpdump mtr netstat
Menginstal netperf
Untuk distribusi berbasis Debian, jalankan perintah berikut:
sudo apt-get install git build-essential autoconf texinfo -y git clone https://github.com/HewlettPackard/netperf.git cd netperf ./autogen.sh ./configure --enable-histogram --enable-demo=yes make cp src/netserver ~/.local/bin cp src/netperf ~/.local/bin
Untuk distribusi berbasis Redhat, jalankan perintah berikut:
sudo yum install git build-essential autoconf texinfo -y git clone https://github.com/HewlettPackard/netperf.git cd netperf ./autogen.sh ./configure --enable-histogram --enable-demo=yes make cp src/netserver ~/.local/bin cp src/netperf ~/.local/bin
Menjalankan pengujian prasyarat
- Pastikan ukuran lampiran VLAN dikonfigurasi dengan benar. Untuk mengetahui informasi selengkapnya, lihat Mengubah lampiran VLAN.
- Di kedua ujung koneksi (setiap terminal), jalankan perintah
top
atauhtop
untuk memantau penggunaan CPU. Kumpulkan statistik jaringan menggunakan perintah
netstat
sebelum menjalankan pengujian apa pun.netstat -s >> netstat.log
Di terminal lain, jalankan perintah
tcpdump
sebelum perekaman apa pun dengansnaplen
parameter value128
.Jalankan perintah ini di kedua endpoint.
sudo /usr/sbin/tcpdump -s 128 -i [DEVICE_INTERFACE] host [IP_ADDRESS of remote side] -w mycap.pcap
Mendapatkan ukuran memori baca dan tulis pada host sumber dan tujuan.
$ sysctl net.ipv4.tcp_rmem $ sysctl net.ipv4.tcp_wmem $ sysctl net.core.rmem_max $ sysctl net.core.rmem_default $ net.core.wmem_max $ net.core.wmem_default $ uname -r $ cat /etc/os-release
Menjalankan pengujian iperf3
Karena adanya batasan 3 Gbps untuk setiap flow, sebaiknya Anda menjalankan
beberapa streaming paralel dari pengujian iperf3
. Sebaiknya jalankan
minimum empat pengujian dan maksimum sepuluh pengujian untuk mengompensasi batasan
bandwidth dan mendapatkan hasil yang berguna.
Di terminal lain, jalankan server
iperf3
di salah satu ujung koneksi (VM, atau mesin lokal). Beberapa aliran memerlukan beberapa serveriperf3
.Jalankan alat iPerf3 dengan flag
udp
untuk pengujian Cloud Interconnect. Jika throughput yang diinginkan dengan UDP tercapai, Anda perlu melakukan langkah pemecahan masalah lebih lanjut.Untuk menjalankan beberapa server
iperf3
dari command line, jalankan perintah berikut:$ iperf3 -s -p 5101&; iperf3 -s -t 30 -p 5102&; iperf3 -s -p 5103 &
Gunakan skrip bash berikut untuk menjalankan beberapa server iperf3:
#!/bin/bash #start iperf3 server running in background for i in `seq 0 9`; do iperf3 -s -B 10.0.100.35 -t 30 -u -p 521$i & done
iperf3 client
berjalan selama 10 detik secara default, yang mungkin tidak cukup bagi TCP untuk
mencapai throughput maksimum. Tetapkan nilai DURATION
ke
minimal 30 detik untuk mendapatkan hasil yang lebih andal.
iperf3 -c [server IP address] -P [THREADS] -t [DURATION]
Skrip Bash untuk menjalankan beberapa streaming UDP iperf3
echo "UDP iperf test - 10 streams" for i in `seq 0 9`; do iperf3 -B 10.0.100.35 -c 192.168.50.3 --logfile ~/gcpvm_client-521$i.log -u -b 1G -l 1390 -t10 -p 521$i & done
Skrip Bash untuk menjalankan beberapa streaming TCP iperf3
echo "UDP iperf test - 10 streams" for i in `seq 0 9`; do iperf3 -B 10.0.100.35 -c 192.168.50.3 --logfile ~/gcpvm_client-521$i.log -b 1G -l 1390 -t10 -p 521$i & done
Saat pengujian iperf3
berjalan, pantau beban CPU di kedua perangkat.
Jika beban CPU mendekati 100%, CPU menjadi bottleneck untuk satu thread iperf3.
Dalam hal ini, gunakan alat Netperf, karena alat ini mendukung beberapa CPU.
Jika tidak dapat menjalankan Netperf, Anda dapat memulai beberapa server dan klien iPerf3 di terminal dan port yang berbeda secara bersamaan.
Menganalisis hasil pengujian
Lakukan langkah-langkah berikut:
- Periksa hasil klien
iperf3
untuk melihat bandwidth dan paket yang hilang. - Periksa hasil server
iperf3
untuk melihat apakah ada paket yang tidak berurutan. Melakukan analisis penangkapan paket. Jalankan perintah berikut untuk mengonversi file pcap menjadi file teks.
tcpdump -A -[PCAP-FILENAME].pcap > [TXT-FILENAME].txt
Jalankan perintah berikut untuk mendapatkan total paket dan paket yang tidak berurutan.
grep -e "Total" -A1 pcap [TXT-FILENAME]
Output-nya adalah sebagai berikut:
gcpvm-send-5210.txt:Total UDP packets: 874032 gcpvm-send-5210.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5211.txt:Total UDP packets: 791218 gcpvm-send-5211.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5212.txt:Total UDP packets: 961510 gcpvm-send-5212.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5213.txt:Total UDP packets: 961517 gcpvm-send-5213.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5214.txt:Total UDP packets: 961501 gcpvm-send-5214.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5215.txt:Total UDP packets: 961521 gcpvm-send-5215.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5216.txt:Total UDP packets: 889932 gcpvm-send-5216.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5217.txt:Total UDP packets: 961483 gcpvm-send-5217.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5218.txt:Total UDP packets: 961479 gcpvm-send-5218.txt:Total out-of-order packets: 0, missing packets: 0 gcpvm-send-5219.txt:Total UDP packets: 961518 gcpvm-send-5219.txt:Total out-of-order packets: 0, missing packets: 0
Analisis berikut menunjukkan paket yang hilang selama pengujian performa:
$ grep -e "Total" -A1 onPrem-send-*.txt
Output-nya adalah sebagai berikut:
"Total" -A1 onPrem-send-*.txt onPrem-send-5210.txt:Total UDP packets: 858698 onPrem-send-5210.txt:Total out-of-order packets: 0, missing packets: 5408 -- onPrem-send-5211.txt:Total UDP packets: 857667 onPrem-send-5211.txt:Total out-of-order packets: 0, missing packets: 4929 -- onPrem-send-5212.txt:Total UDP packets: 857126 onPrem-send-5212.txt:Total out-of-order packets: 0, missing packets: 5349 -- onPrem-send-5213.txt:Total UDP packets: 857424 onPrem-send-5213.txt:Total out-of-order packets: 0, missing packets: 5495 -- onPrem-send-5214.txt:Total UDP packets: 857139 onPrem-send-5214.txt:Total out-of-order packets: 0, missing packets: 4692 -- onPrem-send-5215.txt:Total UDP packets: 857175 onPrem-send-5215.txt:Total out-of-order packets: 0, missing packets: 4789 -- onPrem-send-5216.txt:Total UDP packets: 857104 onPrem-send-5216.txt:Total out-of-order packets: 0, missing packets: 5196 -- onPrem-send-5217.txt:Total UDP packets: 857122 onPrem-send-5217.txt:Total out-of-order packets: 0, missing packets: 5423 -- onPrem-send-5218.txt:Total UDP packets: 857383 onPrem-send-5218.txt:Total out-of-order packets: 0, missing packets: 5283 -- onPrem-send-5219.txt:Total UDP packets: 857313 onPrem-send-5219.txt:Total out-of-order packets: 0, missing packets: 4934
Mengakses halaman perangkat untuk memeriksa throughput port.
Jika output
netstat
menampilkan error baca/tulis, penyesuaian alur massal TCP/UDP mungkin diperlukan.Jika ada paket yang tidak berurutan, rekaman paket harus dilakukan di Gateway VPN untuk analisis lebih lanjut. Untuk informasi selengkapnya tentang melakukan pengambilan paket di Gateway VPN, buka kasus dukungan.
Jika pengujian UDP
iperf3
mencapai throughput yang diinginkan, masalah tersebut harus berada di tempat lain dan penyesuaian TCP mungkin diperlukan.