Panduan Linux

Load Testing NGINX dengan ApacheBench dan wrk

Halo, teman-teman! Kali ini kita bakal ngomongin tentang load testing NGINX pake dua tools keren: ApacheBench (ab) dan wrk. Buat yang belum tau, load testing itu penting banget buat ngecek seberapa kuat server kita nahan beban kalo lagi rame-rame. NGINX sendiri udah terkenal sebagai web server yang kenceng dan stabil, tapi tetep aja kita perlu ngetesnya biar yakin.

Kenapa Perlu Load Testing?

Sebelum kita mulai, yuk bahas dulu kenapa sih load testing itu penting:

  1. Ngecek Kinerja: Kita bisa tau seberapa cepat server kita ngehandle request.
  2. Mencari Bottleneck: Biar tau bagian mana yang perlu dioptimasi.
  3. Memprediksi Skalabilitas: Biar tau kira-kira server kita bisa nahan berapa banyak user.
  4. Mencegah Downtime: Biar gak kaget pas lagi rame-rame tiba-tiba server down.

Persiapan Sebelum Load Testing

Sebelum mulai ngetes, pastiin dulu:

  1. Server NGINX udah jalan dan bisa diakses.
  2. Tools ApacheBench dan wrk udah terinstall di mesin testing.
  3. Target URL yang mau dites udah siap (misalnya http://localhost/).

Install ApacheBench dan wrk

Buat yang belum punya, install dulu toolsnya:

Load Testing dengan ApacheBench

ApacheBench atau ab itu tools simpel buat ngetes performa web server. Cara pakenya gampang banget. Misalnya, kita mau ngetes NGINX dengan 1000 request dan 100 concurrent connection:

ab -n 1000 -c 100 http://localhost/

Hasilnya bakal keluar kayak gini:

Server Software:        nginx/1.18.0
Server Hostname:        localhost
Server Port:            80

Document Path:          /
Document Length:        612 bytes

Concurrency Level:      100
Time taken for tests:   0.123 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      830000 bytes
HTML transferred:       612000 bytes
Requests per second:    8130.08 [#/sec] (mean)
Time per request:       12.300 [ms] (mean)
Time per request:       0.123 [ms] (mean, across all concurrent requests)
Transfer rate:          6589.58 [Kbytes/sec] received

Dari sini kita bisa liat:

Load Testing dengan wrk

wrk itu tools yang lebih modern dan powerful dibanding ab. wrk bisa ngehandle lebih banyak concurrent connection dan lebih fleksibel. Contoh pakenya:

wrk -t12 -c400 -d30s http://localhost/

Artinya:

Hasilnya bakal keluar kayak gini:

Running 30s test @ http://localhost/
  12 threads and 400 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    20.12ms   15.38ms 199.47ms   86.12%
    Req/Sec     1.70k   357.26     2.00k    69.33%
  610750 requests in 30.10s, 463.65MB read
Requests/sec:  20290.69
Transfer/sec:     15.40MB

Dari sini kita bisa liat:

Perbandingan ApacheBench dan wrk

Tips Load Testing

  1. Mulai dari Kecil: Jangan langsung pake beban tinggi, mulai dari yang kecil dulu.
  2. Monitor Server: Pantau resource server (CPU, memory, network) pas lagi ngetes.
  3. Ubah Parameter: Coba variasikan jumlah request dan concurrent connection buat liat batas server.
  4. Tes di Lingkungan yang Sama: Kalo bisa, tes di lingkungan yang mirip production biar hasilnya akurat.

Kesimpulan

Load testing itu penting banget buat mastiin server kita siap nahan beban. Pake tools kayak ApacheBench dan wrk, kita bisa ngecek performa NGINX dengan mudah. Jangan lupa buat selalu monitor dan optimasi server biar makin kenceng!

Nah, itu dia sedikit sharing tentang load testing NGINX. Semoga bermanfaat, ya! Kalo ada pertanyaan atau mau nambahin, komen aja di bawah. Happy testing!

#Nginx #Tutorial