Apr 09

[Tools] Mengukur Kinerja Web Server dengan HTTPerf

Terkadang kita butuh untuk melihat seberapa kuat performa dari web server kita. Terutama jika nantinya web server kita itu akan diakses oleh banyak orang. Mungkin saja sampai jutaan orang yang mengakses untuk setiap detik. Atau mungkin kita butuh untuk memperkirakan, apabila aplikasi web milik kita akan diakses oleh banyak orang, seberapa responsif. Ada beberapa tool yang dapat digunakan untuk mengukur kinerja dari web server atau aplikasi web. Salah satu yang sering digunakan di dunia akademik adalah httperf.

Httperf adalah sebuah aplikasi kecil berbasis console yang dapat digunakan untuk menguji performa dari web server. Dengan httperf, kita dapat mensimulasikan pengguna-pengguna yang mengakses website kita. Apakah itu secara bersama-sama mengakses, halaman tertentu yang diakses, atau ada beberapa data yang harus dikirimkan oleh user. Kemudian dari hasil ujicoba, kita dapat melihat seperti apa performa webserver/website kita.

Untuk mulai menggunakan httperf, yang perlu dilakukan pertama adalah instalasi aplikasi tersebut ke komputer. Apabila menggunakan Ubuntu atau Linux Mint, cukup ketikkan perintah berikut :

apt-get install httperf

Untuk beberapa kasus, httperf perlu di-compile sendiri. Misalnya saja ketika request per detik yang diberikan ke server berjumlah sangat banyak. Oleh karena itu, berikut ini beberapa langkah singkat untuk mengcompile httperf :

  1. Buka file /usr/include/linux/posix_types.h, kemudian ubah konstanta __FD_SETSIZE dari 1024 menjadi 50000
  2. Download source code httperf dari website ini
  3. Extract file yang telah diunduh ke suatu direktori, kemudian masuk ke direktori hasil ekstraksi tadi.
  4. Setelah itu ketikkan perintah ./configure
  5. Ketikkan perintah make dan make install
  6. httperf pun siap digunakan jika tidak ada error yang terjadi :shakehand2

Kemudian, jika ingin menggunakan httperf ini untuk menguji performa, ada beberapa option penting yang perlu diperhatikan, yaitu :

  • –server=IP/domain webserver : option ini digunakan untuk menentukan lokasi server yang ingin kita uji.
  • –uri=RESOURCE : option ini digunakan untuk menentukan file apa yang ingin diakses oleh httperf, apabila ingin memasukkan root directory dari website, tinggal masukkan saja / (slash)
  • –num-conns=INT : option ini digunakan untuk menentukan berapa kali koneksi ke server akan dilakukan
  • –rate=INT : option ini digunakan untuk memberitahu httperf, berapa request per detik yang harus dikirimkan

Sebagai contoh, jika kita ingin menguji suatu website di localhost, dengan file yang ingin diakses adalah index.php, dan httperf ingin melakukan koneksi sebanyak 1000x dengan 100 request/detik, maka perintahnya adalah seperti ini :

httperf --server=localhost --uri=/index.php --num-conns=1000 --rate=100

Dan hasilnya dapat dilihat seperti gambar di bawah ini. Di situ ada connection-rate, connection-time, request rate, reply rate, reply time, errors, dan berbagai macam keterangan lainnya. Keterangan mengenai hasil ini sebetulnya sudah cukup jelas, atau dapat juga dilihat di manual httperf. Tetapi ada 1 poin yang perlu perhatian khusus, yaitu di bagian Errors, ada error yang namanya fd-unavail. Error ini disebabkan httperf yang tidak dapat membuat socket baru akibat dari open file descriptor yang digunakan sudah terlalu banyak. Dan ini menyebabkan hasil ujicoba tidak valid, karena masalah berasal dari sisi klien. Untuk itulah, kenapa di atas, disarankan untuk mengkompilasi httperf sendiri.

Error fd-unavail tidak boleh bernilai selain 0 atau ujicoba anda akan mendapatkan hasil yang tidak valid. Selain melakukan proses kompilasi sendiri, yang perlu dilakukan untuk menghindari error tersebut adalah mengetikkan perintah ulimit seperti di bawah ini sebelum httperf berjalan :

ulimit -n 50000

Be Sociable, Share!

0
comments

Reply

[+] kaskus emoticons nartzco