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.
InstalasiMenginstal 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 BenchmarkingUntuk 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 URLDalam 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.phphttp://nama.domain.com/kontak.phphttp://nama.domain.com/produk.phpLalu untuk proses benchmark, jalankan perintah berikut.
siege -b -c 20 -t 5M -f url.txt
RangkumanSiege 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