Melakukan Stress Test Web Server menggunakan Siege
Untuk menguji batas kinerja web, Siege digunakan. Siege adalah uji regresi open source dan utilitas benchmark. Siege dikonfigurasi untuk membaca banyak URL ke dalam memori dan secara bersamaan melakukan stress terhadap sistem. Program melaporkan jumlah total hit yang direkam, byte yang ditransfer, waktu response, konkurensi, dan status pengembalian. Dalam pengujian, Siege menjalankan berbagai klien secara bersamaan, untuk menekankan berbagai URL di server web wiki. Tes stres dilakukan ke Wikipedia mirror dalam waktu 60 detik.
Kiwix adalah aplikasi agar wikipedia dapat di akses secara offline. Kita dapat mengukur kinerja Kiwix menggunakan siege. Untuk memudahkan proses pengukuran sebaiknya kita membuat script untuk menyalakan atau mematikan Kiwix pada server yang akan diukur, misalnya sebagai berikut,
kiwix-on.sh
echo 123456 | sudo -S killall kiwix-serve echo 123456 | sudo -S killall kiwix-serve echo 123456 | sudo -S killall kiwix-serve echo 123456 | sudo -S killall kiwix-serve cd /usr/local/src/kiwix-0.10-x86_84/bin/ /usr/local/src/kiwix-0.10-x86_84/bin/kiwix-serve --port=8080 /usr/local/src/kiwix-0.10-x86_84/bin/wikipedia_id_all_novid_2018-07.zim & /usr/local/src/kiwix-0.10-x86_84/bin/kiwix-serve --port=8081 /usr/local/src/kiwix-0.10-x86_84/bin/wiktionary_id_all_novid_2018-07.zim &
kiwix-off.sh
echo 123456 | sudo -S killall kiwix-serve echo 123456 | sudo -S killall kiwix-serve echo 123456 | sudo -S killall kiwix-serve echo 123456 | sudo -S killall kiwix-serve
Instalasi Siege sangat mudah menggunakan perintah berikut,
sudo su apt update apt -y install siege
Agar siege dapat berjalan dengan mudah, sebaiknya kita juga membuat sebuah file yang berisi URL kiwix yang akan digunakan saat siege mengukur kiwix sebagai berikut (misalnya menggunakan vi),
vi ~/.siege/url-192.168.0.1.txt
Isi file,
http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/ http://192.168.0.1:8080/search?content=wikipedia_id_all_novid_2018-07&pattern=Onno+W.+Purbo http://192.168.0.1:8080/skin/jquery-ui/jquery-ui.min.js http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Onno_W._Purbo.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Daerah_Khusus_Ibukota_Jakarta.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Lambang_Daerah_Khusus_Ibukota_Jakarta.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Kiwix.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Perangkat_lunak_bebas.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Richard_Stallman.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Indonesia.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Matematika.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Ilmu_fisik.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Reaksi_asam_basa.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Asam.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Biologi.html http://192.168.0.1:8080/wikipedia_id_all_novid_2018-07/A/Organisme.html http://192.168.0.1:8081/wiktionary_id_all_novid_2018-07/ http://192.168.0.1:8081/wiktionary_id_all_novid_2018-07/A/bahasa_Indonesia.html http://192.168.0.1:8081/wiktionary_id_all_novid_2018-07/A%2fki%c3%aan%2dkap%2dkut%2ehtml
Figure 1. menunjukkan Availability (%) pada saat dilakukan stress test pada sistem menggunakan Siege. Di atas 20 klien secara simultan menggunakan sistem akan menurunkan availability RaspberryPi3. Penurunan availability mini PC Asus mulai muncul di sekitar 20 klien, dan penurunan lebih parah setelah lebih dari 80 klien secara bersamaan. Mesin mesin virtual i5 tampaknya jauh lebih tahan dan mampu menahan beban lebih dari 150 klien dengan hanya sedikit penurunan availability.
Figure 2. menunjukkan klik yang diterima seiring dengan bertambahnya jumlah klien. RaspberryPi3 hanya dapat menerima hit terendah, sekitar 1000-1500 hit, di antara empat (4) sistem. Sedangkan Asus Mini PC dapat menerima hit, sekitar 9.000-10.000 hit. Mesin i5 dapat menerima di atas 15000 hingga 25000 hit, sekitar 25 kali kemampuan RaspberryPi3. Sistem dengan empat core mampu menerima, sekitar 20%, hit lebih tinggi dibandingkan dengan mesin single core.
Figure 3. menunjukkan transaksi yang berhasil ditangani oleh sistem; itu cukup mirip dengan karakteristik hit yang diterima oleh sistem. RaspberryPi3 hanya mampu menangani sekitar 700-900 transaksi. Asus Mini PC dapat menangani 3000-4000 transaksi dengan baik. Mesin virtual i5 dapat menangani transaksi yang lebih tinggi, sekitar 6000-8000 transaksi. Dengan demikian, RaspberryPi3 hanya mampu memenuhi 10% dan 20% kemampuan masing-masing i5 dan Asus Mini PC. Sistem dengan empat core mampu menerima, sekitar 20%, transaksi sukses yang lebih tinggi dibandingkan dengan mesin single core.
Figure 4. menunjukkan tingkat transaksi, dalam transaksi per detik, untuk banyak klien yang membebani sistem. RaspberryPi3 hanya mampu menangani sekitar 20-30 transaksi per detik. Asus Mini PC dapat menangani 5-6 kali dibandingkan dengan RaspberryPi3 untuk lebih dari 150 transaksi per detik. Mesin i5 mampu menangani beban yang jauh lebih tinggi hingga sekitar 250-400 transaksi per detik atau sepuluh kali lebih tinggi dari RaspberryPi3. Sistem empat core dapat melayani, sekitar 20%, tingkat transaksi yang lebih tinggi dibandingkan dengan mesin single core.
Figure 5. menunjukkan kemampuan konkurensi sistem dalam menangani beban klien. Semua sistem mampu memenuhi konkurensi menjadi sama dengan jumlah klien hingga 20 klien yang mengakses. Pada 30 klien, konkurensi RaspberryPi3 dan Asus Mini PC menjadi rata, tidak mampu mengimbangi jumlah klien yang mengakses. Pada 50 klien, mesin virtual i5 tidak lagi mampu mengimbangi jumlah klien yang mengakses. Namun, konkurensi mesin virtual i5 agak menurun tetapi tidak datar dan mencoba mengikuti jumlah klien yang mengakses.
Gambar 6. menunjukkan transaksi yang gagal sebagai fungsi dari jumlah klien yang mengakses sistem. Di RaspberryPi dan Asus Mini PC, kegagalan transaksi mulai muncul setelah 30 klien mengakses sistem. Pada 40 klien, transaksi gagal meningkat drastis. Menariknya, mesin i5 mampu menangani transaksi dengan cukup baik dengan transaksi gagal di bawah lima hingga di atas 100 klien.
Gambar 7. menampilkan transaksi terpanjang saat stress test pada sistem. Semua sistem tampaknya menangani beban dengan benar untuk 20 klien. RaspberryPi3 dan Asus Mini PC menunjukkan lompatan dalam transaksi terlama setelah 30 dan lebih banyak klien memuat. Mesin virtual i5 mengalami peningkatan signifikan dalam transaksi terlama setelah memuat lebih dari 50 klien.
Gambar 8. menunjukkan waktu respon dalam ms untuk transaksi yang masuk sebagai fungsi dari jumlah klien. RaspberryPi menunjukkan peningkatan linear dalam waktu respons sebagai fungsi dari jumlah klien, dari satu klien hingga sekitar 20 klien. Di atas 20 klien, waktu respons RaspberryPi3 tampaknya tidak stabil. Mesin mini PC dan Asus i5 tampaknya cukup tahan terhadap permintaan tes stres transaksi dan dapat menahan waktu respons di bawah 0,4 detik hingga 100 klien.
Sangat menarik untuk dicatat bahwa interface jaringan membatasi kinerja mesin virtual i5. Tabel berikut menunjukkan klik rata-rata, tingkat transaksi rata-rata, transaksi sukses rata-rata, dan transaksi gagal rata-rata untuk mesin virtual inti tunggal dan empat inti dengan LAN dan penghubung langsung dengan klien di host yang sama.
Table: Perbandingan Kinerja LAN dan direct bridge saat Siege Web Stress
ave. hits | ave.transaction/sec | ave. successful transactions | ave. fail transactions | |
---|---|---|---|---|
1 core LAN | 15304 | 255 | 5300 | 14.8 |
1 core nolan | 17235 | 287 | 6084 | 1.4 |
4 core LAN | 19429 | 342 | 6711 | 14.1 |
4 core nolan | 22365 | 373 | 7844 | 4.7 |
Ini menunjukkan bahwa mesin virtual dengan sambungan bridging secara langsung memiliki kinerja yang lebih tinggi dan lebih sedikit transaksi yang gagal. Kinerja yang lebih tinggi juga diamati pada mesin dengan jumlah core yang lebih banyak.
Pranala Menarik
- BENCHMARKING: mengukur kemampuan system
- Mengukur packet per second
- Mengukur Bandwidth
- mengukur SQL - menggunakan mysqlslap
- Menggunakan mysqlslap number-of-query
- Menggunakan mysqlslap iterations
- Menggunakan mysqlslap custom queries
- Menggunakan mysqlslap untuk membandingkan Engine
- Mengukur kinerja OS dengan unixbench
- Mengukur Kinerja Apache Web Server
- Melakukan Stress Test Web Server menggunakan Siege
- Mengukur Kinerja File Sharing menggunakan dbench
- Konsumsi Daya RaspberryPi3
- Internet OFFLINE sebagai solusi bagi sekolah di Pedesaan dan Rural
- Beberapa Diskusi Hasil Pengukuran
- Internet Offline: Modul Training