Jika Anda seorang webmaster, Anda mungkin sering khawatir dengan kinerja aplikasi web Anda. Anda mungkin mengajukan pertanyaan seperti, "bagaimana cara melakukan pengujian beban aplikasi saya?" atau "apakah aplikasi saya dapat menangani banyak pengguna?" Dalam kasus ini, Apache Bench dapat sangat membantu. Apache Bench adalah alat sumber terbuka dan gratis untuk mengukur kinerja server web dengan antarmuka baris perintah yang sederhana dan mudah digunakan; ini dapat membantu Anda memahami bagaimana kinerja instalasi Apache Anda saat ini.
Dalam tutorial ini, kami akan menunjukkan cara menginstal dan menggunakan Apache Bench di Linux.
Prasyarat
- VPS Ubuntu 18.04 baru di Platform Cloud Atlantic.Net.
- Kata sandi root dikonfigurasi di server Anda.
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 18.04 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 18.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal Apache Bench
Apache Bench adalah bagian dari paket server web Apache, jadi Anda tidak perlu menginstal Apache Bench jika Server Web Apache diinstal pada sistem Anda.
Untuk sistem operasi Ubuntu/Debian, instal alat Apache Bench dengan perintah berikut:
apt-get install apache2-utils -y
Untuk sistem operasi RHEL/CentOS, instal alat Apache Bench dengan perintah berikut:
yum install httpd-tools -y
Anda dapat menampilkan semua opsi yang tersedia dengan alat Apache Bench menggunakan perintah berikut:
ab
Anda akan melihat layar berikut:
Penjelasan singkat tentang opsi yang paling umum digunakan ditunjukkan di bawah ini:
- -n: Tentukan jumlah permintaan koneksi yang dikirim ke server web.
- -c: Tentukan jumlah permintaan koneksi bersamaan yang dikirim ke server web.
- -t: Tentukan jumlah detik perintah ab harus terus mengirim permintaan.
Catatan: Terkadang Anda mungkin mendapatkan kesalahan "waktu koneksi habis". Alasannya adalah permintaan koneksi Anda diblokir oleh firewall atau server web Apache tidak dapat menangani permintaan lebih lanjut.
Langkah 3 – Menjalankan Tes Stres
Pada titik ini, alat Apache Bench diinstal. Sekarang, Anda dapat melakukan stress test terhadap server web Anda secara lokal atau menggunakan nama domain.
Mari kita lakukan stress test terhadap server web Apache Anda dengan mengirimkan 800 permintaan melalui 300 koneksi bersamaan.
ab -n 800 -c 300 http://your-domain-name/
Ini akan tampil untuk 800 permintaan dengan 300 bersamaan seperti yang ditunjukkan di bawah ini:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> 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 Finished 800 requests Server Software: Apache/2.4.29 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.459 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8953600 bytes HTML transferred: 8734400 bytes Requests per second: 1743.53 [#/sec] (mean) Time per request: 172.064 [ms] (mean) Time per request: 0.574 [ms] (mean, across all concurrent requests) Transfer rate: 19056.29 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 6 7.8 0 20 Processing: 8 92 124.3 44 437 Waiting: 4 92 124.4 43 437 Total: 22 98 128.9 44 453 Percentage of the requests served within a certain time (ms) 50% 44 66% 50 75% 53 80% 56 90% 435 95% 445 98% 450 99% 452 100% 453 (longest request)
Pada output di atas, Anda dapat melihat Apache telah menangani 1743,53 permintaan per detik, dan butuh total 0,459 detik untuk melayani total permintaan.
Mari lakukan stress test lain terhadap server web Nginx Anda dan bandingkan dengan hasil Apache dengan mengirimkan 800 permintaan melalui 300 koneksi bersamaan.
ab -n 800 -c 300 http://your-domain-name/
Anda akan melihat output berikut:
This is ApacheBench, Version 2.3 <$Revision: 1807734 $> 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 Finished 800 requests Server Software: nginx/1.14.0 Server Hostname: localhost Server Port: 80 Document Path: / Document Length: 10918 bytes Concurrency Level: 300 Time taken for tests: 0.184 seconds Complete requests: 800 Failed requests: 0 Total transferred: 8930400 bytes HTML transferred: 8734400 bytes Requests per second: 4354.95 [#/sec] (mean) Time per request: 68.887 [ms] (mean) Time per request: 0.230 [ms] (mean, across all concurrent requests) Transfer rate: 47474.91 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 1 12 7.5 9 32 Processing: 5 33 12.8 30 56 Waiting: 4 26 12.9 22 49 Total: 15 46 13.6 46 70 Percentage of the requests served within a certain time (ms) 50% 46 66% 56 75% 58 80% 60 90% 64 95% 66 98% 70 99% 70 100% 70 (longest request)
Pada output di atas, Anda dapat melihat Apache telah menangani 4354,95 permintaan per detik, dan butuh total 0,184 detik untuk melayani permintaan total.
Anda dapat melihat bahwa Nginx dapat menangani lebih banyak permintaan daripada Apache. Setelah membandingkan hasil dari kedua server, Anda akan mendapatkan ide mana yang harus dipilih untuk aplikasi web Anda.
Kesimpulan
Dalam panduan di atas, kami mempelajari cara menguji kinerja server web dengan Apache Bench. Anda sekarang dapat menjelajahi alat Apache Bench dan menjalankannya dengan berbagai opsi untuk mengukur kinerja server web Anda; coba hari ini di VPS Hosting dari Atlantic.Net!