Benchmark Aplikasi Web Menggunakan Apache Bench


Suatu waktu, kita ingin mengetahui performa aplikasi yang telah dibuat. Semisal, berapa lama waktu yang dibutuhkan untuk melayani 100 pengguna dalam satu waktu? Atau, berapa ratus permintaan yang dapat dilayani dalam 30 detik? Dan lain sebagainya.

Salah satu tool yang cukup membantu adalah Apache Bench.

Instalasi

Untuk sistem operasi berbasis Debian/Ubuntu, bisa menggunakan command berikut.

$ sudo apt install apache2-utils

Perlu diketahui, apabila kita sudah menginstal Apache 2 di sistem tersebut, maka apache2-utils belum terpasang di dalammnya. Jika apache2-utils sudah diinstal, kita dapat menggunakan Apache Bench pada Bash dengan perintah ab.

Penggunaan

Pengujian menggunakan Apache Bench dilakukan melalui Bash. Sebelumya, pastikan URL aplikasi yang akan diuji dapat diakses, baik menggunakan wget atau peramban secara langsung. Sebagai contoh, Laravel dapat menggunakan built-in server dengan perintah: php artisan serve, yang nantinya URL bawaan yang dapat diakses adalah http://localhost:8000.

Contoh ujicoba sederhana adalah sebagai berikut:

$ ab -n 1000 -c 100 http://localhost:8000/
 
This is ApacheBench, Version 2.3 <$Revision: 1528965 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking localhost (be patient)
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Completed 600 requests
Completed 700 requests
Completed 800 requests
Completed 900 requests
Completed 1000 requests
Finished 1000 requests
 
 
Server Software:        
Server Hostname:        localhost
Server Port:            8000
 
Document Path:          /
Document Length:        86 bytes
 
Concurrency Level:      100
Time taken for tests:   0.446 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      281000 bytes
HTML transferred:       86000 bytes
Requests per second:    2242.86 [#/sec] (mean)
Time per request:       44.586 [ms] (mean)
Time per request:       0.446 [ms] (mean, across all concurrent requests)
Transfer rate:          615.47 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.9      0       4
Processing:     3   42   8.7     40      69
Waiting:        3   42   8.7     40      69
Total:          7   42   8.5     40      72
 
Percentage of the requests served within a certain time (ms)
  50%     40
  66%     42
  75%     43
  80%     49
  90%     55
  95%     61
  98%     64
  99%     66
 100%     72 (longest request)

Opsi -n menentukan berapa kali URL tersebut diakses, sedangkan opsi -c menentukan jumlah URL yang diakses dalam waktu bersamaan, kemudian diikuti dengan URL dari aplikasi yang ingin diuji. Untuk menampilkan opsi lain, dapat mengetikkan perintah ab -h pada Bash.

Dari keluaran di atas, dapat dilihat beberapa hasil yang menunjukkan performa aplikasi web kita, misal waktu yang dibutuhkan untuk melayani permintaan, besaran data yang ditransfer, time per request, dan lain sebagainya.

Ada banyak faktor yang mempengaruhi hasil di atas. Jika ada indikasi web agak lambat diakses, bukan berarti kesalahan terjadi pada code yang dibangun semata. Bisa jadi keterlambatan dipengaruhi oleh server basisdata misalnya, atau bisa juga mesin yang kita gunakan tak mampu menanangi proses yang kita minta.

Tak Berkategori

Yugo Purwanto

Pemrogram PHP dan JavaScript yang sedang sibuk mengembangkan aplikasi Glosarium Bahasa Indonesia.

1 comment

Tinggalkan Balasan