Post Pic

Benchmark Performa Web Server dengan Siege

Siege adalah aplikasi yang dibuat untuk keperluan stress test dan benchmark webserver. Stress test dan benchmarking diperlukan untuk mengetahui seberapa baik performa aplikasi web Anda, dan seberapa banyak client atau koneksi yang bisa ditangani oleh aplikasi Anda.


Instalasi

Menginstal siege di Ubuntu atau Debian adalah semudah menginstal aplikasi lain dari repositori.

sudo apt-get install siege

Untuk penggunakan CentOS atau RHEL, Anda bisa menginstalnya dari repo RPMForge atau download dari DAG.

Menggunakan Siege untuk Benchmarking

Untuk melakukan proses benchmark, jalankan perintah berikut.

 siege -b -c 20 -t 5M http://nama.domain.com/blog/
Penjelasan:
 
-b = Benchmark, dengan pilihan ini tidak akan ada waktu jeda dari satu test ke test 
     berikutnya (defaultnya ada delay secara acak mulai dari 0 s.d 3 detik).
-c = Banyaknya koneksi secara bersamaan yang akan dijalankan, default 10. 
     Dalam contoh diset 20 koneksi.
-t = Lama test akan dijalankan, dalam contoh di set 5 menit. 
     Anda bisa set waktu berbeda dengan akhiran S utk detik, M untuk menit 
     dan H untuk jam. Misal 60S = 60 detik, 1H = 1 jam.
 
Dan http://nama.domain.com/blog/ adalah URL yang akan di test.

Contoh output:

Transactions:                  43119 hits
Availability:                 100.00 %
Elapsed time:                  92.40 secs
Data transferred:             160.76 MB
Response time:                  0.02 secs
Transaction rate:             466.66 trans/sec
Throughput:                     1.74 MB/sec
Concurrency:                    7.74
Successful transactions:       43119
Failed transactions:               0
Longest transaction:            9.48
Shortest transaction:           0.00

Dari output di atas, Anda perhatikan baris transaction rate. Semakin besar berarti semakin cepat dan semakin banyak client yang bisa ditangani oleh aplikasi web kita.

Perhatikan juga baris failed transactions. Baris ini menunjukkan jumlah koneksi yang gagal saat menjalankan proses benchmark. Dalam kondisi server yang sibuk, biasanya server mulai error dan koneksi dari user pun gagal dilayani dengan baik.

Benchmark Untuk Banyak URL

Dalam contoh di atas kita hanya menggunakan satu URL saja. Jika ingin melakukan benchmark untuk banyak URL sekaligus, kita bisa membuat daftar URL yang akan ditest dan perintahkan siege untuk membacanya.

Buat berkas baru misal url.txt. Isi dengan URL yang mau ditest. Misal seperti di bawah ini,

http://nama.domain.com/
http://nama.domain.com/blog/
http://nama.domain.com/about.php
http://nama.domain.com/kontak.php
http://nama.domain.com/produk.php

Lalu untuk proses benchmark, jalankan perintah berikut.

 siege -b -c 20 -t 5M -f url.txt

Rangkuman

Siege bisa digunakan untuk proses benchmark, sehingga Anda bisa mengukur seberapa banyak kira-kira jumlah client yang bisa ditangani oleh aplikasi web Anda.

Catatan untuk contoh di atas, angka concurrent connection sebanyak 20 koneksi adalah jumlah yang kecil. Silakan Anda mencobanya dengan angka yang lebih besar, misal 100 koneksi. Lalu perhatikan bagaimana aplikasi dan server Anda meresponnya.

Yang perlu diingat, benchmark harus dijalankan ke web Anda sendiri, bukan ke web orang lain. Karena kalau dijalankan ke web orang lain, artinya Anda menyerang atau mengganggu layanan punya orang :D