PENDAHULUAN
1.1
Website merupakan salah
satu infrastruktur yang penting dalam menyebarluaskan informasi yang ada dalam
suatu organisasi. Sebuah website
didukung oleh adanya web server
sebagai pengendali dari sebuah web.
Maka sebelum website tersebut
dipublikasikan ke dalam dunia riil, terlebih dahulu web server tersebut harus menjalani pengujian atau tes performansi.
Saat ini ketika
permintaan akses terhadap suatu website
meningkat, kecepatan akses menurun. Halaman yang ingin diakses oleh klien di-reply lebih lama bahkan gagal diproses
oleh web server.
Hal ini dipengaruhi oleh titik jenuh yang dimiliki oleh web server yang mengelola website
tersebut.
Untuk
itu diperlukan suatu pengujian
terhadap web server agar dapat
diketahui tingkat performansinya. Dengan
mengetahui tingkat performansi web server
tersebut, maka dapat dilakukan suatu optimasi pada parameter konfigurasi web server untuk mencapai kinerja web server yang lebih baik dari
sebelumnya. Tingkat performansi web server tergantung dari kejenuhan web server tersebut, yang dapat diketahui dengan melihat kemampuan reply rate, standar deviasi dan error rate yang muncul.
Dalam dunia nyata beragam tool dapat digunakan untuk melakukan
pengujian performansi web server,
misalnya Paessler Webserver Stress Tool yang
berbayar maupun httperf yang berupa open source tool. Pada penelitian ini
penulis termotivasi untuk memanfaatkan open
source tool tersebut yaitu httperf.
Httperf merupakan salah
satu tool yang dapat dimanfaatkan
sebagai media dalam melakukan pengujian terhadap kemampuan reply rate, standar deviasi dan error rate suatu web server (David M. 1998).
1.2.1
Uji Performansi Web Server
Beberapa pendapat ahli tentang
uji performansi adalah sebagai berikut:
1)
Keseluruhan
performansi dari web dipengaruhi oleh
klien, web server, dan kapasitas
jaringan yang menghubungkan klien ke web
server (Martin F. & Carey L.
1996).
2)
Uji
performansi terhadap sistem web server
yang ada menentukan seberapa baik performanya, sehingga dapat dilakukan suatu
perubahan-perubahan untuk meningkatkan performansinya (Obaidat 2010).
3)
Ada
tiga cara untuk sebuah website menangani trafik yang tinggi, pertama adalah mirroring, distributed caching dan
melakukan performansi web server
(Yiming Hu 1999).
4)
Proses
performansi web server dapat dibagi
menjadi dua kategori yaitu : yang menguji web
server dalam penggunaan secara nyata dan yang menguji web server menggunakan load
generator (Paul B & Mark C. 1998).
Uji performansi memiliki
bentuk-bentuk tersendiri sebagai berikut:
1)
Performance Test
Uji performansi
digunakan untuk menguji setiap bagian dari suatu web server untuk
menemukan teknik terbaik untuk mencapai optimasi ketika trafik web meningkat
2)
Load Test
Load
test dilakukan
dengan pengujian website menggunakan
estimasi trafik dari sebuah website
yang mampu dilayani. Caranya adalah mendefinisikan waktu maksimum sebuah
halaman web dimuat. Pada akhir
pengujian dilakukan pembandingan seberapa maksimum waktu yang dibutuhkan untuk
membuka halaman web pada sebuah web server.
3)
Stress Test
Stress
test adalah
berupa simulasi serangan “brute force”
yang menjalankan muatan atau permintaan secara berlebihan menuju web server.
Tujuan stress test adalah untuk
estimasi muatan maksimum sebuah web
server sanggup menanganinya.
Dalam pengujian performansi web server, tujuan utamanya adalah
mengetahui tingkat kejenuhan dari web
server. Komponen yang dibutuhkan dalam pengujian web server adalah sebagai berikut:
1)
Sebuah
server yang menjalankan perangkat
lunak web server
2)
Satu
atau lebih klien yang menjalankan perangkat lunak pembangkit paket
3)
Jaringan
yang menghubungkan klien dengan server
1.2.2
Web
Server
Web
server adalah
program yang menerjemahkan alamat URL baik dalam bentuk nama file, yang kemudian mengirimkan kembali file tersebut maupun dalam bentuk nama
program dan menjalankan program itu lalu mengirimkan kembali output dari
program tersebut melalui internet (Ben & Peter 1999).
Pada dasarnya tugas web server hanya ada dua, yaitu:
1.
Menerima
permintaan (request) dari klien, dan
2.
Mengirimkan
apa yang diminta oleh klien (response)
Ilustrasi sebelumnya dapat dijelaskan sebagai
berikut :
1.
Klien
disini dapat berupa komputer desktop
dengan minimal memiliki browser dan
terhubung ke web server melalui
jaringan (intranet atau internet).
2.
Komputer
yang berfungsi sebagai server, di
dalamnya terdapat perangkat lunak web
server. Agar komputer ini dapat diakses oleh klien maka komputer harus
terhubung ke jaringan (intranet atau internet).
3.
Pertama-tama,
klien (user) akan meminta suatu
halaman ke (web) server untuk ditampilkan di komputer klien. Misalnya, klien
mengetikkan suatu alamat URL di browser
http://www.google.com. Lalu dengan
menggunakan protokol HTTP, browser
melakukan permintaan dari web server
Google. Proses permintaan ini disebut dengan request.
4.
Dari
sisi server mendapat permintaan
halaman utama dari Google, server
kemudian melakukan pencarian sesuai permintaan. Jika ditemukan maka halaman
yang diminta akan dikirim ke klien, namun jika tidak ditemukan, maka server akan memberi pesan “404. Page Not Found”, yang artinya halaman
tidak ditemukan.
1.1.1
HTTPERF
Httperf adalah program untuk mengukur
kinerja atau performansi dari web server yang dibuat oleh David Mosberger
dari HP Labs. Httperf menyediakan
fitur yang fleksibel dalam pembuatan beban kerja sesuai dengan parameter yang
diberikan padanya (Rasian 2009). Httperf
merupakan sebuah tool untuk sistem
operasi turunan UNIX. Httperf dapat
membangkitkan sejumlah paket load dan
mendukung HTTP/1.0 dan HTTP/1.1 (Bullock 2007).
Dalam sebuah pengujian web server sederhana, klien membuat
sejumlah besar permintaan dari web server,
sehingga akan terukur throughput yang
berupa jumlah reply per second dari web server tersebut.
CARA
KERJA HTTPERF :
Cara paling mudah dalam mengukur
performansi sebuah web server adalah
dengan mengirimkan permintaan ke server
dengan rate tertentu dan mengukur
waktu permintaan tadi tiba kembali. Pengujian dilakukan beberapa kali dengan
meningkatkan permintaan secara monoton hingga pada rate tertentu didapatkan server
menjadi jenuh (saturated).
Hasil pengukuran dari httperf ini memberikan data mentah
tentang kinerja dari web server,
namun berbeda dari kondisi pada dunia nyata, hal ini dikarenakan pada pengujian
web server ini hanya satu file yang dilakukan permintaan, sehingga
algoritma caching web server tidak teruji secara
keseluruhan (Julian 2001).
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 :
- Buka file /usr/include/linux/posix_types.h, kemudian ubah konstanta __FD_SETSIZE dari 1024 menjadi 50000
- Download source code httperf
- Extract file yang telah diunduh ke suatu direktori, kemudian masuk ke direktori hasil ekstraksi tadi.
- Setelah itu ketikkan perintah ./configure
- Ketikkan perintah make dan make install
- httperf pun siap digunakan jika tidak ada error yang terjadi
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
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 :
Standar metrik keluaran dari httperf dapat dikelompokkan sebagai
berikut (Theodore 2003) :
a.
Total Section
Menampilkan jumlah
total koneksi TCP yang dibuat, jumlah permintaan/ request, jumlah respon, dan waktu keseluruhan dari pengujian yang
dilakukan.
b.
Connection Section
Menjelaskan kinerja
koneksi TCP yang dihasilkan selama pengujian.
c.
Request Section
Menampilkan jumlah request per second yang didapatkan dari
pengujian.
d.
Reply Section
Menampilkan statistik
dari jumlah reply per second terhadap
pengujian yang dilakukan.
e.
Miscellaneous Section
Menyediakan laporan
tentang penggunaan CPU dan pemanfaatan jaringan pada mesin klien
f.
Error Section
Menampilkan jumlah error yang ditemukan selama pengujian.
Pada error section ini terdapat
bagian client-timo yang sangat berguna untuk mengetahui titik jenuh (saturated point) suatu web server.
SISTEM YANG COCOK
DI UJI MENGGUNAKAN 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.