All Products
Search
Document Center

Elastic Compute Service:Percepat aplikasi TCP dengan NetACC

Last Updated:Apr 29, 2026

NetACC adalah pustaka mode pengguna yang mempercepat aplikasi TCP melalui eRDMA dengan antarmuka soket yang kompatibel—tanpa perubahan kode.

Penting

NetACC berada dalam pratinjau publik.

Use cases

NetACC cocok untuk skenario dengan overhead jaringan tinggi.

  • Workload dengan paket per detik (PPS) tinggi, terutama traffic paket kecil. NetACC mengurangi overhead CPU dan meningkatkan throughput, seperti saat Redis memproses permintaan.

  • Workload sensitif latensi: eRDMA memberikan latensi lebih rendah dibanding TCP, sehingga mempercepat respons jaringan.

  • Koneksi singkat yang sering: NetACC mempercepat pembentukan koneksi, mengurangi waktu pembuatan, dan meningkatkan performa.

Instal NetACC

  • Metode instalasi

    • Gunakan driver eRDMA untuk menginstal NetACC

      NetACC diinstal secara otomatis bersama driver eRDMA. Lihat Enable eRDMA pada topik "Use eRDMA".

    • Instal NetACC secara terpisah

      Untuk menginstal versi tertentu NetACC atau menggunakannya sementara pada Instance ECS, jalankan:

      sudo curl -fsSL https://netacc-release.oss-cn-hangzhou.aliyuncs.com/release/netacc_download_install.sh | sudo sh
  • Berkas konfigurasi dan parameter yang dioptimalkan

    Setelah instalasi, berkas konfigurasi /etc/netacc.conf dihasilkan secara otomatis. Anda dapat menyesuaikan parameter berikut berdasarkan workload Anda:

    • NACC_SOR_MSG_SIZE: ukuran buffer.

    • NACC_RDMA_MR_MIN_INC_SIZE: ukuran Wilayah Memori (MR) pertama yang didaftarkan oleh RDMA.

    • NACC_RDMA_MR_MAX_INC_SIZE: ukuran maksimum MR yang didaftarkan oleh RDMA.

    • NACC_SOR_CONN_PER_QP: koneksi per Queue Pair (QP).

    • NACC_SOR_IO_THREADS: jumlah thread NetACC.

    Contoh berikut menunjukkan berkas konfigurasi sampel:

    Sampel berkas konfigurasi /etc/netacc.conf configuration file

    [netacc]
    # Ukuran buffer. Jika blok data yang akan dikirim besar, Anda dapat menambah ukuran untuk meningkatkan performa atau mengurangi ukuran untuk menghemat memori. 
    # int
    NACC_SOR_MSG_SIZE=16384
    
    # Ukuran MR pertama yang didaftarkan oleh RDMA. Anda dapat mengurangi ukuran untuk menghemat memori.
    # Atur parameter ini ke nilai kelipatan pangkat N dari 2 dari nilai NACC_SOR_MSG_SIZE. Kelipatan minimum adalah 1.
    NACC_RDMA_MR_MIN_INC_SIZE=16384
    
    # Ukuran maksimum MR yang didaftarkan oleh RDMA, berkisar antara 1 MB hingga 512 MB. Anda dapat mengurangi ukuran untuk menghemat memori.
    # Atur parameter ini ke nilai kelipatan pangkat N dari 2 dari nilai NACC_RDMA_MR_MIN_INC_SIZE. Kelipatan minimum adalah 1.
    NACC_RDMA_MR_MAX_INC_SIZE=8388608
    
    # Jumlah koneksi per QP. Anda dapat menambah nilai untuk meningkatkan performa. Pada skenario tertentu, atur parameter ini ke 1.
    # int
    NACC_SOR_CONN_PER_QP=1
    
    # Jumlah thread NetACC. Jika throughput tinggi, tambahkan nilainya.
    # int
    NACC_SOR_IO_THREADS=1
    
    # Waktu kedaluwarsa QP kosong. Satuan: milidetik. Nilai 0 berarti QP kosong langsung kedaluwarsa. Nilai -1 berarti QP kosong tidak pernah kedaluwarsa.
    NACC_EMPTY_QP_EXPIRE_MS=60000
    
    # Jumlah maksimum QP kosong yang diizinkan.
    NACC_EMPTY_QP_MAX_ALL=100
    
    # Jumlah maksimum QP kosong yang diizinkan untuk setiap alamat tujuan.
    NACC_EMPTY_QP_MAX_PER=10
    
    # Probabilitas menggunakan RDMA untuk membentuk koneksi. Nilai valid: 0 hingga 100.
    NACC_CONNECT_RDMA_PERCENT=100
    
    # Menentukan apakah RDMA diaktifkan secara default.
    NACC_ENABLE_RDMA_DEFAULT=1
    
    # Tingkat log.
    # 0: TRACE
    # 1: DEBUG
    # 2: INFO
    # 3: WARN
    # 4: ERROR
    # 5: FATAL
    NACC_LOG_LEVEL=3
    
    # Jalur log.
    NACC_LOG_PATH="/tmp/netacc.log"
    
    # Parameter berikut jarang digunakan atau tidak perlu dikonfigurasi.
    
    # Afinisitas thread.
    # string
    NACC_SOR_AFFINITY=""
    
    # Menentukan apakah TCP diprioritaskan untuk membentuk koneksi.
    # bool
    NACC_CONN_TCP_FIRST=0

Gunakan NetACC

Gunakan NetACC dalam aplikasi dengan menjalankan perintah netacc_run atau mengatur variabel lingkungan LD_PRELOAD. Baca bagian Considerations sebelum melanjutkan.

Jalankan perintah netacc_run

netacc_run memuat NetACC saat startup aplikasi. Tambahkan awalan perintah aplikasi Anda dengan netacc_run untuk menjalankan aplikasi dengan NetACC diaktifkan.

netacc_run menerima parameter seperti -t (thread I/O) dan -p (koneksi per QP). Parameter yang ditentukan saat menjalankan perintah netacc_run menggantikan berkas konfigurasi.

Parameter perintah netacc_run

netacc_run -h
Usage: netacc_run [ OPTIONS ] COMMAND

Run COMMAND using NetACC for TCP sockets

OPTIONS:
   -f <path>   set config file, default /etc/netacc.conf
   -p <num>    set max connections per QP, default 1
   -t <num>    set netacc io threads, default 4
   -s <num>    set netacc message size, default 16384
   -F <num>    fast connect mode, default 0
   -d          enable debug mode
   -T          use TCP first in connect
   -P <num>    polling cq time ms
   -A <str>    affinity CPU list, 0 | 1-3 | 1,3,4
   -i <num>    set cq comp_vector, default 0
   -h          display this message
   -v          display version info
  • Contoh:

    Contoh berikut menggunakan Redis. Tambahkan awalan perintah Redis dengan netacc_run untuk menjalankan Redis dengan NetACC.

    • Jalankan Redis dengan NetACC:

      netacc_run redis-server
    • Jalankan redis-benchmark dengan NetACC:

      netacc_run redis-benchmark

Konfigurasikan variabel lingkungan LD_PRELOAD

Variabel lingkungan LD_PRELOAD menentukan pustaka bersama yang dimuat sebelum program dijalankan. Atur ke pustaka NetACC dalam variabel LD_PRELOAD untuk memuatnya secara otomatis.

  1. Cari lokasi pustaka dinamis NetACC:

    ldconfig -p | grep netacc

    Output contoh:

    image

  2. Atur variabel lingkungan LD_PRELOAD ke pustaka bersama NetACC:

    LD_PRELOAD=/lib64/libnetacc-preload.so your_application

    Ganti your_application dengan aplikasi target.

    Contoh (Redis):

    • Jalankan Redis dengan NetACC:

      LD_PRELOAD=/lib64/libnetacc-preload.so redis-server
    • Jalankan redis-benchmark dengan NetACC:

      LD_PRELOAD=/lib64/libnetacc-preload.so redis-benchmark

    Konfigurasikan variabel lingkungan LD_PRELOAD dalam skrip

    Untuk memuat NetACC secara otomatis pada aplikasi yang sering digunakan atau mengelola beberapa aplikasi dengan skrip, atur LD_PRELOAD dalam skrip wrapper. Misalnya, buat skrip bernama run_with_netacc.

    #!/bin/bash
    LD_PRELOAD=/lib64/libnetacc-preload.so $@

    Jalankan aplikasi dengan NetACC:

    ./run_with_netacc.sh your_application

    Contoh (Redis):

    • Jalankan Redis dengan NetACC:

      ./run_with_netacc.sh redis-server
    • Jalankan redis-benchmark dengan NetACC:

      ./run_with_netacc.sh redis-benchmark

Pantau NetACC

netacc_ss adalah alat pemantauan NetACC. Jalankan perintah netacc_ss untuk memeriksa status transfer data proses TCP yang dipercepat oleh NetACC. Anda dapat menjalankannya baik di server maupun klien.

Perintah netacc_ss

netacc_ss -h
Usage:
 netacc_ss: [-p] <pid> [options]...
 Show monitoring information of specified netacc process

Options:
 -c   clear unused sock file
 -h   display this help
 -s   display specified monitoring metric[s]. [all|cfg|cnt|mem|qp|sock]
      all: all monitoring information
      cfg: configuration information
      cnt: counter information[default]
      mem: memory information
      qp : queue pair information
      sock: socket information
 -v   display netacc version

Examples:
 netacc_ss -p 12345 -s mem,cnt

Periksa status transfer data proses TCP yang dipercepat NetACC:

netacc_ss -s all -p <Process ID>
Catatan

Untuk mencari ID proses, jalankan ps -ef | grep <Process name>.

Catatan penggunaan

  • Hanya koneksi TCP yang dibentuk melalui ENI dengan fitur eRDMA Interface (ERI) yang diaktifkan yang dikonversi menjadi koneksi RDMA. Koneksi lain tetap menggunakan TCP.

    Catatan

    Jika kedua ujung komunikasi tidak memiliki ENI dengan ERI yang diaktifkan, NetACC akan kembali menggunakan TCP.

  • Deskriptor file soket RDMA tidak dapat dikirim ke proses lain melalui IPC kernel.

    Catatan

    Koneksi RDMA terikat pada QP tertentu yang tidak dapat dibagi antar proses.

  • NetACC tidak mendukung IPv6. Untuk mencegah konflik, nonaktifkan IPv6 dengan menjalankan sysctl net.ipv6.conf.all.disable_ipv6=1.

  • NetACC tidak mendukung pembaruan panas (hot updates). Hentikan semua proses yang dipercepat NetACC sebelum memperbarui NetACC.

  • NetACC tidak mendukung opsi soket TCP tertentu, seperti SO_REUSEPORT, SO_ZEROCOPY, dan TCP_INQ.

  • NetACC bergantung pada glibc dan tidak dapat dijalankan di lingkungan non-glibc, seperti Golang.

  • Sebelum menggunakan NetACC, atur memori yang dapat dikunci maksimum menjadi tak terbatas dengan menjalankan ulimit -l unlimited.

    Catatan

    Jika nilai ulimit -l terlalu kecil, RDMA mungkin gagal mendaftarkan MR yang melebihi batas tersebut.

  • Saat aplikasi yang dipercepat NetACC mendengarkan pada port TCP, NetACC juga mendengarkan pada port RDMA (port TCP + 20000) untuk transfer data RDMA.

    Catatan

    Jika port RDMA sedang digunakan atau berada di luar rentang yang valid, koneksi akan gagal. Alokasikan port dengan benar untuk menghindari konflik.

  • Proses anak tidak mewarisi koneksi soket yang dibentuk oleh proses induk setelah pemanggilan fork().

    Catatan

    Proses anak harus membentuk koneksi soket baru.

  • Penggunaan ulang QP dinonaktifkan secara default.

    • Untuk mengaktifkan penggunaan ulang QP, atur koneksi per QP (-p) ke nilai lebih dari 1 melalui parameter NACC_SOR_CONN_PER_QP dalam berkas konfigurasi NetACC atau perintah netacc_run.

    • Penggunaan ulang QP mengurangi jumlah QP, overhead manajemen, dan konsumsi sumber daya, sehingga meningkatkan efisiensi komunikasi dalam skenario konkurensi tinggi.

    • Dengan penggunaan ulang QP diaktifkan, beberapa koneksi RDMA dapat berbagi nomor port lokal karena nomor port mengidentifikasi QP, bukan koneksi individual.

      Catatan

      Jika aplikasi Anda memerlukan nomor port lokal yang berbeda (misalnya, untuk layanan berbeda), nonaktifkan penggunaan ulang QP untuk menghindari konflik port.

Gunakan NetACC dalam aplikasi Redis

Manfaat NetACC untuk aplikasi Redis

  • Throughput sistem yang lebih baik

    NetACC mengurangi overhead CPU dan meningkatkan throughput untuk workload Redis dengan PPS tinggi.

  • Respons jaringan yang dipercepat

    NetACC memanfaatkan latensi rendah eRDMA untuk mempercepat respons jaringan Redis.

NetACC dalam benchmark performa Redis

Redis-benchmark adalah utilitas bawaan Redis yang mengukur performa server dengan mensimulasikan permintaan klien bersamaan.

Skenario pengujian

Gunakan NetACC dengan redis-benchmark untuk mensimulasikan 100 klien pada 4 thread yang mengirim 5 juta permintaan SET.

Parameter umum yang digunakan bersama perintah redis-server

Perintah redis-server menjalankan server Redis. Jalankan redis-server -h untuk melihat parameter yang tersedia. Contoh:

redis-server --port 6379 --protected-mode no
  • --port 6379: Port tempat Redis dijalankan. Default: 6379.

  • --protected-mode no: Menonaktifkan mode terproteksi. Saat mode terproteksi diaktifkan, Redis hanya menerima koneksi dari localhost (127.0.0.1) dan menolak koneksi eksternal. Mengatur ini ke no memungkinkan koneksi dari semua alamat IP.

    Penting

    Menonaktifkan mode terproteksi di lingkungan produksi membuka risiko keamanan. Gunakan dengan hati-hati di lingkungan jaringan terbuka.

Parameter perintah umum yang digunakan bersama redis-benchmark

redis-benchmark adalah tool uji stres Redis yang mensimulasikan banyak klien mengirim permintaan. Jalankan redis-benchmark --help untuk melihat parameter yang tersedia. Contoh:

redis-benchmark -h 172.17.0.90 -p 6379 -c 100 -n 5000000 -r 10000 --threads 4 -d 512 -t set
  • -h 172.17.0.90: Hostname atau alamat IP server Redis. Dalam contoh ini, diatur ke 172.17.0.90.

  • -p 6379: Port Redis. Default: 6379.

    Catatan

    Untuk memeriksa port Redis, jalankan sudo grep "^port" /<Path in which the redis.conf file is stored>/redis.conf. Secara default, redis.conf berada di /etc/redis.conf.

  • -c 100: Jumlah koneksi bersamaan.

  • -n 5000000: Total jumlah permintaan.

  • -r 10000: Rentang kunci acak. Perintah SET menggunakan bilangan bulat acak dari 0 hingga 9999 sebagai bagian dari kunci.

  • --threads 4: Jumlah thread. Secara default, redis-benchmark menggunakan satu thread.

  • -d 512: Ukuran data per permintaan SET dalam byte.

  • -t set: Menjalankan hanya pengujian yang ditentukan. -t diikuti nama perintah yang akan diukur. Di sini set hanya mengukur perintah SET.

Perintah ini menggunakan 4 thread untuk membentuk 100 koneksi bersamaan ke server Redis di 172.17.0.90 dan mengirim 5 juta permintaan SET dengan muatan 512 byte menggunakan kunci acak dari 0 hingga 9999.

Metrik umum dalam hasil benchmark redis-benchmark

  • Rangkuman throughput:

    rps: jumlah permintaan yang diproses server Redis per detik. Misalnya, 332933.81 requests per second berarti ~332.934 permintaan/detik.

  • Rangkuman latensi (satuan: milidetik):

    • avg: waktu respons rata-rata untuk semua permintaan.

    • min: waktu respons minimum untuk semua permintaan.

    • p50: 50% permintaan selesai dalam latensi ini.

    • p95: 95% permintaan selesai dalam latensi ini.

    • p99: 99% permintaan selesai dalam latensi ini.

    • max: waktu respons maksimum untuk semua permintaan.

Prasyarat

Buat dua Instance ECS yang mendukung eRDMA. Pilih Auto-install eRDMA Driver dan eRDMA Interface untuk mengaktifkan ERI pada ENI primer. Gunakan satu instans sebagai server Redis dan yang lain sebagai klien.

Konfigurasi instans:

  • Image: Alibaba Cloud Linux 3

  • Tipe instans: ecs.g8ae.4xlarge

  • Alamat IP privat ENI primer: 172.17.0.90 (server) dan 172.17.0.91 (klien). Ganti dengan nilai aktual dalam benchmark Anda.

    Catatan
    • Benchmark ini mengaktifkan ERI pada ENI primer. 172.17.0.90 adalah alamat IP privat ENI primer dari instans server Redis.

    • Jika ERI diaktifkan pada ENI sekunder, gunakan alamat IP privat mereka sebagai gantinya. Lihat Enable eRDMA pada topik "Use eRDMA".

Contoh cara mengonfigurasi parameter tertentu saat pembuatan Instance ECS

Perhatikan parameter berikut saat membuat instans. Untuk parameter lain, lihat Custom launch ECS instances.

  • Instances & Images: Pilih tipe instans yang mendukung eRDMA dan instal driver eRDMA.

    • Instance: Untuk informasi selengkapnya, lihat Limitations.

    • Images: Pilih Public Image lalu pilih Install eRDMA Driver. Driver eRDMA diinstal secara otomatis saat instans dijalankan.

      image

  • ENIs: Di sebelah kanan Primary ENI, aktifkan fitur ERI untuk mengikat ERI ke Instance ECS.

    image

    Catatan

    Saat membuat instans enterprise-level, Anda hanya dapat mengaktifkan fitur ERI untuk ENI primer. Jika perlu mengonfigurasi eRDMA untuk ENI sekunder, Anda dapat mengaktifkan fitur ERI untuk ENI sekunder di konsol atau dengan memanggil Operasi API. Untuk informasi selengkapnya, lihat Elastic RDMA network interface card (ERI).

Prosedur

  1. Sambungkan ke kedua Instance ECS (server dan klien Redis).

    Lihat Gunakan Workbench untuk masuk ke instans Linux melalui SSH.

  2. Verifikasi bahwa driver eRDMA telah diinstal.

    Setelah instans dijalankan, jalankan ibv_devinfo untuk memeriksa status driver eRDMA.

    • Output berikut menunjukkan driver telah diinstal.

      image

    • Output berikut menunjukkan driver sedang diinstal. Tunggu beberapa menit lalu coba lagi.

      image

  3. Instal Redis pada kedua instans:

    sudo yum install -y redis

    Output berikut menunjukkan Redis telah diinstal.

    image

  4. Ukur performa Redis dengan redis-benchmark.

    Lakukan benchmark menggunakan NetACC
    1. Pada instans server Redis, jalankan Redis dengan NetACC:

      netacc_run redis-server --port 6379 --protected-mode no
      Catatan

      Output berikut menunjukkan Redis berhasil dijalankan.

      image

    2. Pada instans klien Redis, jalankan redis-benchmark dengan NetACC:

       netacc_run redis-benchmark -h 172.17.0.90 -p 6379 -c 100 -n 5000000 -r 10000 --threads 4 -d 512 -t set
      Catatan

      Contoh hasil benchmark Redis

      ====== SET ======                                                      
        5000000 requests completed in 6.52 seconds
        100 parallel clients
        512 bytes payload
        keep alive: 1
        host configuration "save": 3600 1 300 100 60 10000
        host configuration "appendonly": no
        multi-thread: yes
        threads: 4
      
      Latency by percentile distribution:
      0.000% <= 0.039 milliseconds (cumulative count 3)
      50.000% <= 0.127 milliseconds (cumulative count 2677326)
      75.000% <= 0.143 milliseconds (cumulative count 3873096)
      87.500% <= 0.151 milliseconds (cumulative count 4437348)
      93.750% <= 0.159 milliseconds (cumulative count 4715347)
      96.875% <= 0.175 milliseconds (cumulative count 4890339)
      98.438% <= 0.183 milliseconds (cumulative count 4967042)
      99.609% <= 0.191 milliseconds (cumulative count 4991789)
      99.902% <= 0.207 milliseconds (cumulative count 4995847)
      99.951% <= 0.263 milliseconds (cumulative count 4997733)
      99.976% <= 0.303 milliseconds (cumulative count 4998853)
      99.988% <= 0.343 milliseconds (cumulative count 4999403)
      99.994% <= 0.367 milliseconds (cumulative count 4999704)
      99.997% <= 0.391 milliseconds (cumulative count 4999849)
      99.998% <= 2.407 milliseconds (cumulative count 4999924)
      99.999% <= 5.407 milliseconds (cumulative count 4999962)
      100.000% <= 6.847 milliseconds (cumulative count 4999981)
      100.000% <= 8.423 milliseconds (cumulative count 4999991)
      100.000% <= 8.919 milliseconds (cumulative count 4999996)
      100.000% <= 9.271 milliseconds (cumulative count 4999998)
      100.000% <= 9.471 milliseconds (cumulative count 4999999)
      100.000% <= 9.583 milliseconds (cumulative count 5000000)
      100.000% <= 9.583 milliseconds (cumulative count 5000000)
      
      Cumulative distribution of latencies:
      18.820% <= 0.103 milliseconds (cumulative count 941003)
      99.917% <= 0.207 milliseconds (cumulative count 4995847)
      99.977% <= 0.303 milliseconds (cumulative count 4998853)
      99.998% <= 0.407 milliseconds (cumulative count 4999879)
      99.998% <= 0.503 milliseconds (cumulative count 4999903)
      99.998% <= 0.703 milliseconds (cumulative count 4999904)
      99.998% <= 0.807 milliseconds (cumulative count 4999905)
      99.998% <= 0.903 milliseconds (cumulative count 4999906)
      99.998% <= 1.007 milliseconds (cumulative count 4999908)
      99.998% <= 1.103 milliseconds (cumulative count 4999909)
      99.998% <= 1.207 milliseconds (cumulative count 4999912)
      99.998% <= 1.407 milliseconds (cumulative count 4999913)
      99.998% <= 1.503 milliseconds (cumulative count 4999915)
      99.998% <= 1.607 milliseconds (cumulative count 4999916)
      99.998% <= 1.703 milliseconds (cumulative count 4999917)
      99.998% <= 1.807 milliseconds (cumulative count 4999918)
      99.998% <= 1.903 milliseconds (cumulative count 4999919)
      99.998% <= 2.103 milliseconds (cumulative count 4999920)
      99.999% <= 3.103 milliseconds (cumulative count 4999931)
      99.999% <= 4.103 milliseconds (cumulative count 4999944)
      99.999% <= 5.103 milliseconds (cumulative count 4999958)
      99.999% <= 6.103 milliseconds (cumulative count 4999971)
      100.000% <= 7.103 milliseconds (cumulative count 4999984)
      100.000% <= 8.103 milliseconds (cumulative count 4999989)
      100.000% <= 9.103 milliseconds (cumulative count 4999996)
      100.000% <= 10.103 milliseconds (cumulative count 5000000)
      
      Summary:
        throughput summary: 767341.94 requests per second
        latency summary (msec):
                avg       min       p50       p95       p99       max
              0.126     0.032     0.127     0.167     0.183     9.583

      Rangkuman menunjukkan ~770.000 permintaan/detik. Untuk detail metrik, lihat Common metrics in redis-benchmark benchmark results.

    Gunakan netacc_ss untuk memantau server Redis selama benchmark

    Selama benchmark, gunakan netacc_ss pada instans server Redis untuk memantaunya.

    • Cari ID proses Redis (redis-server):

      ps -ef | grep redis-server

      Output berikut menunjukkan ID proses redis-server adalah 114379.

      image

    • Periksa status koneksi dan transfer data Redis:

      netacc_ss -p 114379 -s all
      Catatan

      Ganti 114379 dengan ID proses Redis aktual. Lihat netacc_ss command.

      Output menunjukkan koneksi RDMA karena ERI diaktifkan pada kedua instans. Empat kolom paling kanan menunjukkan jumlah dan volume pesan.

      image

    Lakukan benchmark tanpa NetACC
    1. Pada instans server Redis, jalankan Redis:

      redis-server --port 6379 --protected-mode no --save
      Catatan

      Ganti 6379 dengan port aktual Anda. Lihat Common parameters used together with the redis-server command.

      Output berikut menunjukkan Redis berhasil dijalankan.

      image

    2. Pada instans klien Redis, jalankan redis-benchmark:

       redis-benchmark -h 172.17.0.90 -c 100 -n 5000000 -r 10000 --threads 4 -d 512 -t set
      Catatan

      Contoh hasil benchmark Redis

      ====== SET ======                                                         
        5000000 requests completed in 15.02 seconds
        100 parallel clients
        512 bytes payload
        keep alive: 1
        host configuration "save": 
        host configuration "appendonly": no
        multi-thread: yes
        threads: 4
      
      Latency by percentile distribution:
      0.000% <= 0.055 milliseconds (cumulative count 27)
      50.000% <= 0.287 milliseconds (cumulative count 2635010)
      75.000% <= 0.335 milliseconds (cumulative count 3782931)
      87.500% <= 0.367 milliseconds (cumulative count 4459136)
      93.750% <= 0.391 milliseconds (cumulative count 4720397)
      96.875% <= 0.415 milliseconds (cumulative count 4855130)
      98.438% <= 0.439 milliseconds (cumulative count 4936478)
      99.219% <= 0.455 milliseconds (cumulative count 4965765)
      99.609% <= 0.471 milliseconds (cumulative count 4984031)
      99.805% <= 0.487 milliseconds (cumulative count 4993326)
      99.902% <= 0.495 milliseconds (cumulative count 4995579)
      99.951% <= 0.511 milliseconds (cumulative count 4997659)
      99.976% <= 0.551 milliseconds (cumulative count 4998848)
      99.988% <= 0.599 milliseconds (cumulative count 4999468)
      99.994% <= 0.631 milliseconds (cumulative count 4999722)
      99.997% <= 0.663 milliseconds (cumulative count 4999862)
      99.998% <= 0.695 milliseconds (cumulative count 4999924)
      99.999% <= 0.759 milliseconds (cumulative count 4999964)
      100.000% <= 0.807 milliseconds (cumulative count 4999982)
      100.000% <= 1.935 milliseconds (cumulative count 4999993)
      100.000% <= 2.071 milliseconds (cumulative count 4999996)
      100.000% <= 2.111 milliseconds (cumulative count 4999998)
      100.000% <= 2.119 milliseconds (cumulative count 4999999)
      100.000% <= 2.143 milliseconds (cumulative count 5000000)
      100.000% <= 2.143 milliseconds (cumulative count 5000000)
      
      Cumulative distribution of latencies:
      0.028% <= 0.103 milliseconds (cumulative count 1377)
      0.985% <= 0.207 milliseconds (cumulative count 49228)
      60.094% <= 0.303 milliseconds (cumulative count 3004705)
      96.325% <= 0.407 milliseconds (cumulative count 4816230)
      99.938% <= 0.503 milliseconds (cumulative count 4996887)
      99.991% <= 0.607 milliseconds (cumulative count 4999546)
      99.999% <= 0.703 milliseconds (cumulative count 4999927)
      100.000% <= 0.807 milliseconds (cumulative count 4999982)
      100.000% <= 0.903 milliseconds (cumulative count 4999987)
      100.000% <= 1.903 milliseconds (cumulative count 4999990)
      100.000% <= 2.007 milliseconds (cumulative count 4999995)
      100.000% <= 2.103 milliseconds (cumulative count 4999997)
      100.000% <= 3.103 milliseconds (cumulative count 5000000)
      
      Summary:
        throughput summary: 332955.97 requests per second
        latency summary (msec):
                avg       min       p50       p95       p99       max
              0.292     0.048     0.287     0.399     0.447     2.143

      Rangkuman menunjukkan ~330.000 permintaan/detik. Untuk detail metrik, lihat Common metrics in redis-benchmark benchmark results.