Apache APISIX vs NGINX

February 2, 2024

Technology

Menurut statistik W3Techs hingga Juni 2022, NGINX adalah server web yang paling banyak digunakan secara global, menguasai pangsa pasar yang signifikan sebesar 33,6%. Adopsi yang luas dan kinerja yang terpuji telah membangun tingkat kepercayaan yang tinggi di antara pengguna, menjadikannya tolok ukur yang sering digunakan untuk perbandingan.

Hasil Tes Kinerja

Dalam pengujian praktis, kami membandingkan kinerja APISIX dan NGINX dalam skenario sederhana, dengan hasil sebagai berikut:

  • APISIX menunjukkan kinerja QPS sebesar 58.080 pada satu inti CPU, melampaui kinerja NGINX yang mencapai 37.154 pada perangkat keras yang sama.

  • Kinerja APISIX melampaui NGINX dengan selisih yang mengesankan sebesar 56%.

Konfigurasi Tes & Hasil Tes Beban

APISIXNGINX
QPS Satu Inti5808037151
Tes BebanAPISIX_VS_NGINX_1_SSAPISIX_VS_NGINX_2_SS
Konfigurasi Utamaroutes:
  -
    uri: /hello
    upstream:
      nodes:
        "127.0.0.1:1980": 1
#END
http {
    access_log off;

    server {
        listen 1990;

        location / {
            proxy_pass http://127.0.0.1:1980;
        }
    }
}
Perangkat KerasCPU 1 CORE, 4GB RAMCPU 1 CORE, 4GB RAM
Tingkat Penggunaan CPU100%100%

Lingkungan Tes:

  • Host: M1 Macbook Pro

  • Sistem Operasi: Debian

APISIX_VS_NGINX_1

Jika Anda tertarik dengan ini, ada baiknya mencoba mereplikasi tes sendiri, hasilnya relatif mudah untuk direproduksi.

Wawasan Teknis

Menurut diagram arsitektur perangkat lunak yang dirilis secara resmi oleh APISIX, harapan yang wajar adalah bahwa kinerja APISIX seharusnya lebih rendah daripada NGINX. Namun, "kejadian yang tidak biasa sering menunjukkan masalah yang mendasarinya." Mari kita jelajahi beberapa skenario abnormal yang mungkin muncul selama tes beban NGINX.

APISIX_VS_NGINX_2

Mari langsung ke intinya: Hasil kinerja APISIX sesuai dengan yang diharapkan, dan hal yang sama berlaku untuk NGINX. Namun, penting untuk menyadari bahwa skenario pengujian untuk APISIX berfokus pada kinerja QPS di bawah koneksi hidup panjang, sementara untuk NGINX, itu adalah koneksi hidup pendek. Oleh karena itu, perbedaan dalam kinerja QPS adalah wajar.

Koneksi hidup panjang biasanya digunakan dalam skenario yang memerlukan komunikasi berkelanjutan, seperti obrolan real-time atau transmisi data berkelanjutan. Di sisi lain, koneksi hidup pendek cocok untuk kebutuhan komunikasi sementara, seperti akses halaman web biasa dalam mode permintaan-respons HTTP.

APISIX_VS_NGINX_3

Berikut adalah contoh konfigurasi yang wajar untuk NGINX. Dengan konfigurasi ini, Anda akan menemukan peningkatan yang signifikan dalam kinerja satu inti NGINX, biasanya berlipat ganda setidaknya.

APISIX_VS_NGINX_4

Mengapa NGINX Menggunakan Koneksi Hidup Pendek Secara Default?

Lahir pada tahun 2004, NGINX merupakan salah satu proyek open-source tertua, mendekati dua dekade keberadaannya. Untuk memastikan iterasi pengguna yang berkelanjutan dan pengalaman yang konsisten, evolusi fitur NGINX cenderung mendukung kompatibilitas ke depan. Hal ini menjadikannya salah satu dari sedikit layanan proxy Web yang secara default menggunakan protokol HTTP 1.0. Pengaturan default ini telah bertahan selama lebih dari satu dekade, dan diperkirakan NGINX tidak akan mengubahnya di masa depan.

Di era microservices, solusi cloud-native, dan ledakan informasi AI, para insinyur mencari perangkat lunak yang andal dan bebas masalah, memungkinkan mereka untuk mulai bekerja dengan lancar. Mereka juga menghargai konfigurasi default yang selaras dengan praktik terbaik produksi. Akibatnya, perangkat lunak open-source modern cenderung melepaskan beban sejarah dan fokus pada penyelesaian masalah secara efisien, dengan segala kelebihan dan kekurangannya.

Tags: