All Products
Search
Document Center

Elastic Compute Service:Uji kinerja jaringan instans

Last Updated:Aug 21, 2026

Gunakan Netperf dan sockperf untuk menguji laju pengalihan paket (PPS), lebar pita jaringan, dan latensi jaringan Instance ECS.

Penting
  • Untuk mencegah kehilangan data, uji kinerja jaringan pada Instance ECS baru yang tidak berisi data.

  • Metrik tipe instans diverifikasi dalam Lingkungan pengujian. Kinerja aktual dapat bervariasi tergantung pada faktor-faktor seperti beban instans dan model jaringan.

Prasyarat

Persiapan

  • Buat Instance ECS untuk pengujian. Lihat Custom launch ECS instances.

    Penting

    Gunakan instans dengan tipe instans yang sama untuk memastikan hasil pengujian akurat dan dapat dibandingkan.

  • Pastikan semua instans pengujian berada dalam Virtual Private Cloud (VPC) yang sama, terhubung ke vSwitch yang sama, dan berada dalam security group yang sama.

Lingkungan contoh

Tabel berikut mencantumkan tipe dan jumlah instans yang direkomendasikan untuk mesin pengujian dan mesin pengujian tambahan. Pilih mesin sebagai server atau klien berdasarkan skenario pengujian Anda.

  • Uji laju pengalihan paket (hanya untuk instans Linux)

    Catatan

    Tidak tersedia alat untuk menguji laju pengalihan paket instans Windows.

    Laju pengalihan paket kurang dari 6.000.000 pps

    Item pengujian

    Mesin pengujian

    Mesin pengujian tambahan

    Instance type

    ecs.g7.large

    ecs.g7.large

    Image

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Number of instances

    1

    1

    Network

    Public IP addresses are assigned.

    Laju pengalihan paket lebih dari 6.000.000 pps dan kurang dari 20.000.000 pps

    Item pengujian

    Mesin pengujian

    Mesin pengujian tambahan

    Instance type

    ecs.g7.16xlarge

    ecs.g7.16xlarge

    Image

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Number of instances

    1

    3

    Network

    Public IP addresses are assigned.

    Laju pengalihan paket lebih dari 20.000.000 pps

    Item pengujian

    Mesin pengujian

    Mesin pengujian tambahan

    Instance type

    ecs.g7.32xlarge

    ecs.g7.32xlarge

    Image

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Number of instances

    1

    3

    Network

    Public IP addresses are assigned.

  • Uji lebar pita jaringan dan latensi

    Instans Linux

    Item pengujian

    Mesin pengujian

    Mesin pengujian tambahan

    Instance type

    ecs.g7.large

    ecs.g7.large

    Image

    Alibaba Cloud Linux 3

    Alibaba Cloud Linux 3

    Number of instances

    1

    1

    Network

    Public IP addresses are assigned.

    Instans Windows

    Item pengujian

    Mesin pengujian

    Mesin pengujian tambahan

    Instance type

    ecs.g7.large

    ecs.g7.large

    Image

    Windows Server 2022

    Windows Server 2022

    Number of instances

    1

    1

    Network

    Public IP addresses are assigned.

Prosedur

Uji laju pengalihan paket (hanya Linux)

Catatan

Tidak tersedia alat untuk menguji laju pengalihan paket instans Windows.

Laju pengalihan paket kurang dari 6.000.000 pps

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Log on to a Linux instance using Workbench.

  2. Di kedua mesin, unduh paket instalasi Netperf:

    wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  3. Di kedua mesin, instal Netperf dan sar.

    1. Ekstrak paket instalasi Netperf:

      sudo yum install -y gcc autoconf automake libtool sysstat
      tar -zxvf netperf-2.7.0.tar.gz
    2. Periksa nomor versi GNU Compiler Collection (GCC).

      gcc -v 2>&1
    3. Jika GCC lebih baru dari V10 di salah satu mesin, lakukan langkah-langkah berikut agar GCC dapat dikompilasi dengan benar. Jika tidak, lewati langkah ini.

      1. Buka file nettest_omni.c.

        cd netperf
        vim src/nettest_omni.c
      2. Tekan i untuk masuk ke mode Insert dan hapus variabel yang dideklarasikan berikut dari file nettest_omni.c:

        /* different options for the sockets        */
        
        int
          loc_nodelay,    /* don't/do use NODELAY  locally    */
          rem_nodelay,    /* don't/do use NODELAY remotely  */
          loc_sndavoid,    /* avoid send copies locally    */
          loc_rcvavoid,    /* avoid recv copies locally    */
          rem_sndavoid,    /* avoid send copies remotely    */
          rem_rcvavoid;   /* avoid recv_copies remotely    */
      3. Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan menutup file.

    4. Instal Netperf dan sar.

      cd netperf
      sudo ./configure
      sudo make && sudo make install
  4. Di mesin pengujian, jalankan 64 layanan netserver:

    #!/bin/bash
    for j in `seq 64`; do
        netserver -p $[16000+j] > server_$[16000+j].netperf > /dev/null 2>&1  &
    done
  5. Periksa Alamat IP pribadi mesin pengujian:

    ifconfig || ip addr

    image.png

  6. Di mesin pengujian tambahan, kirim traffic ke mesin pengujian:

    #!/bin/bash
    server_ip=<Private IP address of the test machine>
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t UDP_STREAM  -p $port  -- -m 1 -D > /dev/null 2>&1 &
    done

    Ganti <Private IP address of the test machine> dengan Alamat IP pribadi aktual yang diperoleh pada langkah sebelumnya.

    image.png

  7. Di mesin pengujian, uji laju pengalihan paket:

    sar -n DEV 1

    Periksa kolom rxpck/s. Nilai rxpck/s menunjukkan jumlah paket yang diterima per detik. Dalam contoh ini, nilainya sekitar 940.000.

    image.png

Laju pengalihan paket lebih dari 6.000.000 pps dan kurang dari 20.000.000 pps

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Log on to a Linux instance using Workbench.

  2. Di keempat mesin (tiga tambahan + satu pengujian), instal sockperf:

    sudo yum install -y autoconf automake libtool gcc-c++
    cd /opt
    sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    sudo tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    sudo ./autogen.sh
    sudo ./configure
    sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
    sudo make install
  3. Periksa Alamat IP pribadi mesin pengujian:

    ifconfig || ip addr

    image.png

  4. Di setiap mesin pengujian tambahan, kirim traffic ke mesin pengujian:

    server_ip="<Private IP address of the test machine>"
    threads=64
    msg_size=14
    run_time=60
    
    basePort=6666
    for((i=0;i<$threads;++i));do
        nohup sockperf tp -i $server_ip --pps max -m ${msg_size} -t ${run_time} --port $[${basePort}+${i}] 2>&1 &
    done

    Ganti <Private IP address of the test machine> dengan nilai aktual. run_time menentukan durasi traffic.

  5. Di keempat mesin, uji laju pengalihan paket:

    sar -n DEV 1

    Periksa kolom rxpck/s di mesin pengujian. Nilai rxpck/s menunjukkan jumlah paket yang diterima per detik. Dalam contoh ini, nilainya sekitar 12.000.000 pps.Received packets

Laju pengalihan paket lebih dari 20.000.000 pps

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Log on to a Linux instance using Workbench.

  2. Di keempat mesin (tiga tambahan + satu pengujian), instal sockperf:

    sudo yum install -y autoconf automake libtool gcc-c++
    cd /opt
    sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    sudo tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    sudo ./autogen.sh
    sudo ./configure
    sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
    sudo make install
  3. Di mesin pengujian, bind interrupt requests (IRQs) ke core CPU.

    Binding IRQs ke core CPU tertentu mengurangi context switching dan meningkatkan efisiensi pemrosesan paket pada PPS tinggi.

    a=$(cat /proc/interrupts | grep virtio2-input | awk -F ':' '{print $1}')
    cpu=0
    for irq in $a; do
        echo $cpu >/proc/irq/$irq/smp_affinity_list
        let cpu+=2
    done
  4. Periksa Alamat IP pribadi mesin pengujian:

    ifconfig || ip addr

    image.png

  5. Di setiap mesin pengujian tambahan, kirim traffic ke mesin pengujian:

    server_ip="<Private IP address of the test machine>"
    threads=64
    msg_size=14
    run_time=60
    
    basePort=6666
    for((i=0;i<$threads;++i));do
        nohup sockperf tp -i $server_ip --pps max -m ${msg_size} -t ${run_time} --port $[${basePort}+${i}] 2>&1 &
    done

    Ganti <Private IP address of the test machine> dengan nilai aktual. run_time menentukan durasi traffic.

  6. Di keempat mesin, uji laju pengalihan paket:

    sar -n DEV 1

    Periksa kolom rxpck/s di mesin pengujian. Nilai rxpck/s menunjukkan jumlah paket yang diterima per detik. Dalam contoh ini, nilainya sekitar 20.000.000 pps.24 million PPS

Uji lebar pita jaringan

Instans Linux

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Log on to a Linux instance using Workbench.

  2. Di kedua mesin, unduh paket instalasi Netperf:

    wget https://benchmark-packages.oss-cn-qingdao.aliyuncs.com/netperf-2.7.0.tar.gz
  3. Di kedua mesin, instal Netperf dan sar.

    1. Ekstrak paket instalasi Netperf.

      sudo yum install -y gcc autoconf automake libtool sysstat
      tar -zxvf netperf-2.7.0.tar.gz
    2. Periksa nomor versi GCC.

      gcc -v 2>&1
    3. Jika GCC lebih baru dari V10 di salah satu mesin, lakukan langkah-langkah berikut agar GCC dapat dikompilasi dengan benar. Jika tidak, lewati langkah ini.

      1. Buka file nettest_omni.c.

        cd netperf
        vim src/nettest_omni.c
      2. Tekan i untuk masuk ke mode Insert dan hapus variabel yang dideklarasikan berikut dari file nettest_omni.c:

        /* different options for the sockets        */
        
        int
          loc_nodelay,    /* don't/do use NODELAY  locally    */
          rem_nodelay,    /* don't/do use NODELAY remotely  */
          loc_sndavoid,    /* avoid send copies locally    */
          loc_rcvavoid,    /* avoid recv copies locally    */
          rem_sndavoid,    /* avoid send copies remotely    */
          rem_rcvavoid;   /* avoid recv_copies remotely    */
      3. Tekan Esc, ketik :wq, lalu tekan Enter untuk menyimpan dan menutup file.

    4. Instal Netperf dan sar.

      cd netperf
      sudo ./configure
      sudo make && sudo make install
  4. Di mesin pengujian, jalankan 64 layanan netserver:

    #!/bin/bash
    for j in `seq 64`; do
        netserver -p $[16000+j] > server_$[16000+j].netperf 2>&1 &
    done
  5. Periksa Alamat IP pribadi mesin pengujian:

    ifconfig || ip addr
    [ecs-user@izxxx ecZ ~]$ ifconfig || ip addr
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 17.xxx.xxx.15  netmask 25xxx.0  broadcast 17.xxx.55
            inet6 fexxx38:c158  prefixlen 64  scopeid 0x20<link>
            ether 00:xxx:xxx  txqueuelen 1000  (Ethernet)
            RX packets 178595  bytes 106030163 (101.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 116902  bytes 70189540 (66.9 MiB)
            TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 2  bytes 140 (140.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 2  bytes 140 (140.0 B)
            TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0
  6. Di mesin pengujian tambahan, kirim traffic ke mesin pengujian:

    #!/bin/bash
    server_ip=<Private IP address of the test machine>
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 & 
    done

    Ganti <Private IP address of the test machine> dengan Alamat IP pribadi aktual yang diperoleh pada langkah sebelumnya.

    #!/bin/bash
    server_ip=<Private IP address of the test machine>
    for j in `seq 64`; do
        port=$[16000+j]
        netperf -H ${server_ip} -l ${run_time:-300} -t TCP_STREAM -p $port -- -D > /dev/null 2>&1 &
    done
    [1] 5100
    [2] 5101
    [3] 5102
    [4] 5103
  7. Di mesin pengujian, uji lebar pita jaringan:

    sar -n DEV 1

    Periksa kolom rxkB/s. Nilai rxkB/s menunjukkan ukuran paket yang diterima dalam KB/s. Kalikan dengan 8 untuk mengonversi ke Kbit/s sebagai nilai lebar pita jaringan.

    image.png

Instans Windows

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Connect to a Windows instance by using a password or a key.

  2. Instal alat pengujian dan nonaktifkan firewall di kedua mesin.

    1. Unduh alat ntttcp.exe dan catat path tempat alat tersebut disimpan.

    2. Buka kotak dialog Run. Masukkan powershell lalu klik OK untuk menjalankan PowerShell.

    3. Nonaktifkan firewall di kedua mesin agar koneksi tidak diblokir:

      Set-NetFirewallProfile -Profile * -Enabled:false

      Atau, buat aturan firewall inbound yang mengizinkan NTTTCP (ntttcp.exe) di kedua mesin:

      $ntttcpPath = "<Path of ntttcp.exe>"
      New-NetFirewallRule -DisplayName ntttcp -Protocol Any -Direction Inbound -Action Allow -Enabled True -Profile Any -Program $ntttcpPath
      Catatan

      Ganti <Path of ntttcp.exe> dengan nilai aktual.

  3. Di mesin pengujian, konfigurasikan receive side scaling (RSS) untuk adaptor jaringan.

    RSS mendistribusikan paket yang diterima ke beberapa core CPU untuk meningkatkan kinerja jaringan. Atur jumlah antrian RSS berdasarkan jumlah CPU:

    • Jika mesin memiliki hingga 16 core CPU, atur jumlah antrian penerima RSS sesuai jumlah core CPU.

    • Jika mesin memiliki lebih dari 16 core CPU, nonaktifkan RSS. Sebagian besar adaptor jaringan hanya mendukung hingga 16 antrian RSS, sehingga melebihi batas ini dapat menyebabkan alokasi sumber daya tidak merata.

    $cpuNum = (Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors
    if ($cpuNum -le 16) {
      Set-NetAdapterRss -Name <Name of the network adapter on the test machine> -NumberOfReceiveQueues $cpuNum
    } else {
      Disable-NetAdapterRss -Name <Name of the network adapter on the test machine>
    }
    Catatan
    • Ganti <Name of the network adapter on the test machine> dengan nilai aktual. Jalankan Get-NetAdapter | Select-Object Name untuk melihat nama adaptor.

    • Modifikasi konfigurasi RSS akan me-restart layanan adaptor jaringan, yang dapat mengganggu koneksi. Tunggu hingga koneksi pulih sebelum melanjutkan.

  4. Di mesin pengujian, siapkan untuk menerima data:

    $serverIp = (Get-NetIPConfiguration -InterfaceAlias <Name of the network adapter on the test machine>).IPv4Address.IPAddress
    $cpuNum = (Get-CimInstance -ClassName Win32_Processor).NumberOfLogicalProcessors
    $threadNum = $cpuNum
    & <Path of ntttcp.exe on the test machine> -r -m $threadNum,0,$serverIp -t 300
    Catatan

    Ganti <Name of the network adapter on the test machine> dan <Path of ntttcp.exe on the test machine> dengan nilai aktual.

  5. Di mesin pengujian tambahan, kirim data:

    $serverIp = "<Private IP address of the test machine>"
    $threadNum = "<Thread number of the test machine>"
    <Path of ntttcp.exe on the auxiliary test machine> -s -m $threadNum,*,$serverIp -t 100
    Catatan

    Ganti <Private IP address of the test machine>, <Thread number of the test machine>, dan <Path of ntttcp.exe on the auxiliary test machine> dengan nilai aktual. Jalankan ipconfig untuk mendapatkan Alamat IP pribadi dan $cpuNum untuk mendapatkan jumlah thread.

  6. Lihat lebar pita jaringan di mesin pengujian.

    Nilai Throughput(MB/s) menunjukkan lebar pita jaringan.

    image

Uji latensi jaringan

Instans Linux

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Log on to a Linux instance using Workbench.

  2. Di kedua mesin, instal sockperf:

    sudo yum install -y autoconf automake libtool gcc-c++
    cd /opt
    sudo wget https://github.com/Mellanox/sockperf/archive/refs/tags/3.8.tar.gz
    sudo tar -zxf 3.8.tar.gz
    cd sockperf-3.8/
    sudo ./autogen.sh
    sudo ./configure
    sudo make -j `cat /proc/cpuinfo| grep process | wc -l`
    sudo make install
  3. Periksa Alamat IP pribadi mesin pengujian:

    ifconfig || ip addr

    Dalam output perintah, alamat inet antarmuka eth0 adalah Alamat IP pribadi instans.

    [ecs-user@izxxx ecZ ~]$ ifconfig || ip addr
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
            inet 17.xxx.xxx.15  netmask 25xxx.0  broadcast 17.xxx.55
            inet6 fexxx38:c158  prefixlen 64  scopeid 0x20<link>
            ether 00:xxx:xxx  txqueuelen 1000  (Ethernet)
            RX packets 178595  bytes 106030163 (101.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 116902  bytes 70189540 (66.9 MiB)
            TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10<host>
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 2  bytes 140 (140.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 2  bytes 140 (140.0 B)
            TX errors 0  dropped 0  overruns 0  carrier 0  collisions 0
  4. Di mesin pengujian, jalankan sockperf:

    sockperf sr --tcp --daemonize
  5. Di mesin pengujian tambahan, kirim traffic ke mesin pengujian:

    sockperf pp -i <Private IP address of the test machine> --tcp -t 30 -m 14 --full-log=result.json

    Ganti <Private IP address of the test machine> dengan nilai aktual dari langkah sebelumnya.

  6. Lihat hasil latensi jaringan.

    Dalam data yang dikembalikan:

    • avg-latency: latensi rata-rata dalam mikrodetik.

    • percentile 99.000: latensi persentil ke-99 dalam mikrodetik.

    image.png

Instans Windows

  1. Hubungkan ke mesin pengujian dan mesin pengujian tambahan. Lihat Connect to a Windows instance by using a password or a key.

  2. Instal alat pengujian dan nonaktifkan firewall di kedua mesin.

    1. Unduh alat latte.exe dan catat path tempat alat tersebut disimpan.

    2. Buka kotak dialog Run. Masukkan powershell lalu klik OK untuk menjalankan PowerShell.

    3. Nonaktifkan firewall di kedua mesin agar koneksi tidak diblokir:

      Set-NetFirewallProfile -Profile * -Enabled:false

      Atau, buat aturan firewall inbound yang mengizinkan Latte (latte.exe) di kedua mesin:

      $lattePath = "<Path of latte.exe>"
      New-NetFirewallRule -DisplayName Latte -Protocol Any -Direction Inbound -Action Allow -Enabled True -Profile Any -Program $lattePath
      Catatan

      Ganti <Path of latte.exe> dengan nilai aktual.

  3. Di mesin pengujian, siapkan untuk menerima data:

    $serverIp = (Get-NetIPConfiguration | Where-Object {$_.InterfaceAlias -eq '<Name of the network adapter on the test machine>'} | Select-Object -ExpandProperty IPv4Address).IPAddress
    $port = <Communication port>
    & "<Path of latte.exe on the test machine>" -a "$serverIp`:$port" -i 65535
    Catatan
    • Ganti <Name of the network adapter on the test machine> dan <Path of latte.exe on the test machine> dengan nilai aktual. Jalankan Get-NetAdapter | Select-Object Name untuk melihat nama adaptor.

    • Tentukan nomor port untuk <Communication port>. Gunakan port yang sama di kedua mesin.

  4. Di mesin pengujian tambahan, kirim data:

    $serverIp = "<Private IP address of the test machine>"
    $port = <Communication port>
    & "<Path of latte.exe on the auxiliary test machine>" -c -a "${serverIp}:$port" -i 65535
    Catatan
    • Ganti <Private IP address of the test machine> dan <Path of latte.exe on the auxiliary test machine> dengan nilai aktual. Jalankan ipconfig untuk mendapatkan Alamat IP pribadi.

    • Tentukan nomor port untuk <Communication port>. Gunakan port yang sama di kedua mesin.

  5. Lihat hasil latensi jaringan.

    Nilai Latency(usec) menunjukkan latensi jaringan rata-rata dalam mikrodetik.

    image