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.
[…] Benchmark Aplikasi Web Menggunakan Apache Bench […]