Oleh:
NIM
: 100010092
NAMA
JENJANG STUDI
PROGRAM STUDI
: SISTEM KOMPUTER
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER
(STMIK) STIKOM BALI
2015
Halaman persetujuan
Halaman pengesahan
Halaman pernyataan
Kata Pengantar
Abstrak
DAFTAR
ISI
DAFTAR TABEL
DAFTAR GAMBAR
DAFTAR LAMPIRAN
BAB I
PENDAHULUAN
Load balancing adalah teknik untuk mendistribusikan beban trafik pada dua
atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal,
memaksimalkan throughput, memperkecil waktu tanggap dan menghindari
overload pada salah satu jalur koneksi.[4]
Dengan banyaknya aplikasi web server selain Apache, administrator
jaringan akan semakin banyak pilihan dalam membangun sebuah web server
yang handal. Dengan adanya teknik load balancing, kehandalan sebuah web
server menjadi semakin baik karena resiko terjadinya traffic yang tinggi dan
ketersediaan web server dapat diatasi dengan baik. Dengan mengetahui hal
tersebut, maka dilakukanlah penelitian Analisa Performansi Load Balancing Web
Server Berbasis Open Source ini. Agar dapat menjadi bahan acuan dalam
memilih load balancing web server yang tepat.
1.2 Rumusan Masalah
Berdasarkan latar belakang tersebut, rumusan masalah penelitian ini
adalah sebagai berikut;
1. Bagaimana membangun web server apache dan web server nginx?
2. Bagaimana menerapkan metode load balancing web server apache
maupun nginx?
3. Bagaimana cara menganalisa performansi load balancing web server
apache dan nginx?
4. Bagaimana hasil analisa performansi load balancing web server apache
dan nginx?
1.3 Tujuan Penelitian
Berdasarkan rumusan masalah trersebut, tujuan penelitian ini adalah
sebagai berikut;
1. Untuk membangun web server apache dan web server nginx.
2. Untuk menerapkan metode load balancing web server apache maupun
nginx.
3. Untuk menganalisa performansi load balancing web server apache dan
nginx.
4. Untuk mengetahui hasil analisa performansi load balancing web server
apache dan nginx.
1. Sistem
dibangun
secara
virtual
menggunakan
software
VMware
Metode Penelitian
1. Perencanaan
Melakukan perencanaan pembuatan web server dengan teknik linux virtual
server dengan aplikasi web server yang ada untuk meningkatkan
performansi sebuah web server.
2. Studi Literatur
Melakukan pengumpulan informasi dari sumber sumber terkait, seperti;
buku, dokumen dokumen, jurnal, dan penelitian terkait dengan
peningkatan performansi web server load balancing berbasis open source
sebagai pedoman dalam melakukan penelitian.
3. Perancangan
Melakukan perancangan linux virtual server dengan teknik load balancing
yang ada. Perancangan load balancing web server dilakukan sesuai
dengan topologi pada Gambar 1.1 dan Gambar 1.2.
Throughput
Delay
packet _ length
link _ bandwidth
5. Penyusunan Laporan
Pada tahap ini dilakukan penyusunan laporan tentang pendokumentasian
penelitian dari tahap awal sampai tahap akhir.
BAB II
TINJAUAN PUSTAKA
2.1
Analisa
Dalam kamus besar bahasa Indonesia, kata analisa berarti penyelidikan
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 perubahanperubahan 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
tolak ukur kualitas suatu layanan jaringan. Quality of Service (QoS) merupakan
metode pengukuran tentang seberapa baik jaringan dan merupakan suatu usaha
untuk mendefinisikan karakteristik dan sifat dari satu servis. QoS digunakan
untuk mengukur sekumpulan atribut kinerja yang telah dispesifikasikan dan
diasosiasikan dengan suatu servis.
QoS mengacu pada kemampuan jaringan untuk menyediakan layanan
yang lebih baik pada trafik jaringan tertentu melalui teknologi yang berbeda beda. QoS menawarkan kemampuan untuk mendefinisikan atribut atribut
layanan jaringan yang disedi akan, baik secara kualitatif maupun kuantitatif.
Parameter parameter dari Quality of Service (QoS) terdiri dari:[3]
1) Throughput
Throughput yaitu kecepatan (rate) transfer data efektif, yang diukur dalam
bps (bit per second). Untuk mengukur nilai Throughput digunakan
persamaan:
Throughput
2) Packet Loss
Packet Loss merupakan suatu parameter yang menggambarkan suatu
kondisi yang menunjukkan jumlah total paket yang hilang, dapat terjadi
karena collision dan congestion pada jaringan. Untuk mengukur nilai packet
loss digunakan persamaan:
Packet _ Loss
Y
100
A
Keterangan:
Y = Packet data dikirim Packet data diterima
A = Packet data dikirim
3) Delay (Latency atau Response Time)
Delay adalah waktu yang dibutuhkan paket untuk mencapai tujuan,
karena adanya antrian, atau mengambil rute yang lain untuk menghindari
kemacetan. Delay dapat dicari dengan membagi antara panjang paket (L. packet
length (bit/s)) dibagi dengan link bandwith (R, link bandwidth (bit/s)). Atau dengan
persamaan:
Delay
packet _ length
link _ bandwidth
Jitter
Load Balancing
Load balancing adalah teknik untuk mendistribusikan beban trafik pada dua
atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal,
memaksimalkan throughput, memperkecil waktu tanggap dan menghindari
overload pada salah satu jalur koneksi.[4]
Server load balancing adalah sebuah proses atau teknologi yang
mendistribusikan trafik sebuah situs kepada beberapa server menggunakan
sebuah perangkat jaringan. Perangkat tersebut menerima trafik yang ditujukan
pada situs dan mendistribusikannya ke beberapa server. Proses load balancing
sepenuhnya transparan bagi end-user. Load balancing dapat diimplementasikan
dengan hardware khusus, software maupun gabungan keduanya. Konfigurasi
standar yang ada memberi gambaran bahwa satu mesin ditempatkan diantara
klien dan server, mesin ini disebut director karena tugasnya adalah memberikan
balancing pada request dari klien ke server, bekerja sebagai saklar untuk request
dari klien. Load balancer mengimplementasikan beberapa metode penjadwalan
yang akan menentukan ke arah server mana request dari klien akan diteruskan.
Beberapa keuntungan yang diperoleh dari teknik load balancing adalah sebagai
berikut:[2]
1) Flexibility
Server tidak lagi menjadi inti sistem dan resource utama, tetapi menjadi
bagian dari banyak server yang membentuk cluster. Hal ini berarti bahwa
performa per unit dari cluster tidal terlalu diperhitungkan, tetapi performa
cluster secara keseluruhan. Sedangkan untuk meningkatkan performa dari
cluster, server atau unit baru dapat ditambahkan tanpa mengganti unit yang
lama.
2) Scalability
Sistem tidak memerlukan desain ulang seluruh arsitektur sistem untuk
mengadaptasikan sistem tersebut ketika terjadi perubahan pada komponen
sistem.
3) Security
Untuk semua trafik yang melewati load balancer, aturan keamanan dapat
diimplementasikan dengan mudah. Dengan private network digunkan untuk
real servers, alamat IPnya tidak akan diakses secara langsung dari luar
sistem cluster.
4) High-availability
Load balancer dapat mengetahui kodisi real server dalam sistem secara
otomatis, jika terdapat real server yang mati makan akan dihapus dari
daftar real server, dan jika real server tersebut kembali aktif maka akan
dimasukkan ke dalam daftar real server. Load balancer juga dapat
dikonfigurasi redundant dengan load balancer yang lain.
2.4
Web Server
Web server adalah perangkat lunak yang menjadi tulang belakang dari
world wide web (www). Web server menunggu permintaan dari client yang
menggunakan browser seperti Netscape Navigator, Internet Explorer, Mozilla
Firefox, dan program browser lainnya. Jika ada permintaan dari browser, maka
web server akan memproses permintaan itu kemudian memberikan hasil
prosesnya berupa data yang diinginkan kembali ke browser. Data ini mempunyai
format yang standar, disebut dengan format SGML (standar general markup
language). Data yang berupa format ini kemudian akan ditampilkan oleh browser
sesuai dengan kemampuan browser tersebut.[1] Web server yang digunakan
dalam penelitian ini adalah web server Apache dan Nginx.
2.4.1
Apache
Apache merupakan aplikasi web server yang paling banyak dipergunakan
di Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan
UNIX. Namun demikian, ada beberapa versi berikutnya Apache mengeluarkan
programnya yang dapat dijalankan di Windows NT.
Berdasarkan sejarahnya, Apache dimulai oleh veteran developer NCSA
httpd (National Center for Supercomputing Application). Saat itu pengembangan
NCSA httpd sebagai web server mengalami stagnasi. ROB MC COOL
meninggalkan NCSA dan memulai sebuah proyek baru bersama para webmaster
lainnya, menambal bug, dan menambahkan fitur pada NCSA httpd. Mereka
mengembangkan program ini lewat mailing list. Dengan berpijak pada NCSA
httpd versi 1.3, Team Apache mengeluarkan rilis pertama kali secara resmi
Apache versi 0.6.2.
Di Debian, berkas konfigurasi Apache dipecah menjadi beberapa direktori
dan berkas. Semua direktori dan berkas tersebut berada di bawah direktori
/etc/apache2. Berikut adalah berkas dan direktori konfigurasi Apache yang
terdapat di Debian;
apache.conf
envvars
Secara default Apache akan mendengarkan di port 80 untuk HTTP dan 443
untuk HTTPS. Jika ingin mengubah port default Apache, dapat disesuaikan
konfigurasi di berkas ini.
conf.d/
Direktori
yang
diperuntukkan
untuk
konfigurasi
tambahan Apache.
mods-available/ : Direktori ini berisikan modul yang bersedia untuk
Apache namun tidak aktif. Untuk setiap modul terdapat dua berkas yaitu
nama-modul.conf
merupakan
dan
berkas
nama-modul.load.
konfigurasi
modul
Berkas
tersebut,
nama-modul.conf
sedangkan
nama-
mods-enabled/
virtual yang tidak aktif. Setiap host virtual memiliki satu berkas konfigurasi
dan nama yang digunakan sebagai nama berkas dianjurkan nama virtual
host tersebut. Hal ini memudahkan manajemen virtual hosting, selain itu
nama berkas tersebut akan digunakan oleh perintah yang digunakan untuk
mengaktifkan situs.
sites-enabled/
Secara default, direktori ini hanya berisikan satu berkas yaitu 000-default
yang merupakan tautan simbolik ke /etc/apache2/sites-available/default.
2.4.2
Nginx
Nginx (engine x) adalah sebuah HTTP dan reverse proxy server, serta
sebuah mail proxy server yang ditulis oleh Igor Sysoev. Selama waktu yang
lama, ngix telah dipakai pada banyak situs dengan load berat seperti; Yandex,
Mail.Ru, VK, dan Rambler. Menurut Netcraft, nginx melayani 21,21% situs situs
tersibuk pada Februari 2015. Situs tersebut adalah Netfix, Wordpress.com,
FastMail.FM.
Debian merupakan salah satu distro linux yang cukup popular. Saat ini
Debian menggunakan kernel Linux atau kernel FreeBSD. Linux adalah sebuah
sistem operasi yang dirintis oleh Linus Torvalds dan didukung oleh ribuan
programmer di seluruh dunia.
2.6
Virtual Server
Virtual
server
adalah
server
yang
mempunyai
skalabilitas
dan
ketersediaan yang tinggi yang dibangun diatas sebuah cluster dari beberapa real
server. Arsitektur dari sebuah server cluster adalah benar baneas transparan
sampai ke end-user dan masing masing user berinteraksi dengan sistem
seolah-olah hanya ada satu virtual server dengan performa yang tinggi.
2.7
VMWare Workstation
VMWare
Workstation
adalah
sebuah
perangkat
lunak
yang
Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan
urutan prosedur dari suatu program. Flowchart menolong analis dan programmer
untuk memecahkan masalah ke dalam segmen-segmen yang lebih kecil dan
menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.
Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya
masalah yang perlu dipelajari dan dievaluasi lebih lanjut.
Flowchart juga diartikan sebagai langkahlangkah pemrosesan secara
detail yang digambarkan dengan grafis dari sebagian program yang akan dibuat.
Flowchart merupakan metode untuk menggambarkan tahap-tahap pemecahan
Nama
Penjelasan
Terminator
Process
Predefined
Simbol
penanda
Process
proses
didalam
masih
terdapat
proses.
Biasanya
atau fungsi.
Simbol penanda terdapat proses yang
Process
terjadi
bersamaan
dengan
Decision
dimana
kerja
melanjutkan proses.
Simbol
penanda
adanya
output.
Simbol penanda terjadi persiapan
atau inisialisasi awal sebelum proses
Connector
dikerjakan
Simbol
penanda
saling
flowchart
terputus,
namun
dengan
simbol
ini
harus
proses
lompat
menuju
dibaca
konektor
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1
world wide web (www). Web server menunggu permintaan dari client yang
menggunakan browser seperti Netscape Navigator, Internet Explorer, Mozilla
Firefox, dan program browser lainnya. Jika ada permintaan dari browser, maka
web server akan memproses permintaan itu kemudian memberikan hasil
prosesnya berupa data yang diinginkan kembali ke browser. Berbagai aplikasi
web server yang ada di dunia menawarkan berbagai fitur yang dapat
meningkatkan layanan web server yang dibangun, diantaranya Apache, Nginx,
IIS, Apache Tomcat, dan sebagainya.
Load balancing adalah teknik untuk mendistribusikan beban trafik pada
dua atau lebih jalur koneksi secara seimbang, agar trafik dapat berjalan optimal,
memaksimalkan throughput, memperkecil waktu tanggap dan menghindari
overload pada salah satu jalur koneksi.[4] Dengan adanya teknik load balancing
yang berfungsi mendistribusikan beban trafik pada jaringan, hal ini dapat
diimplementasikan untuk meningkatkan performansi web server yang dimiliki.
Penelitian tentang analisa performansi load balancing web server ini
dibuat untuk mengetahui kehandalan aplikasi web server Apache dan Nginx
sebagai real server maupun load balancer dalam menangani beban trafik yang
tinggi. Dalam pengujiannya, akan digunakan tool Httperf dan JMeter untuk
mengirim beban trafik ke masing masing load balancer yang telah dikonfigurasi
dengan beban trafik yang bervariasi. Skenario perancangan load balancing web
server dapat dilihat pada gambar berikut.
Pada Gambar 3.2, web server dan load balancer menggunakan aplikasi
Nginx. Client/ user yang melakukan request akan menghubungi load balancer
Nginx, yang kemudian load balancer mengarahkan ke salah satu web server
Nginx menggunakan metode load balancing.
3.2 Flowchart
Untuk menggambarkan alur sistem load balancing web server yang
dibangun, digunakan flowchart sebagai diagram alur kerja sistem. Flowchart alur
sistem load balancing web server adalah sebagai berikut.
Jika
domain
tersebut
aktif/
ada,
maka
DNS
Server
akan
3.3
Gambar 3.4 Skenario 1 diagram jaringan load balancer web server Apache 1
Gambar 3.4 merupakan skenario diagram jaringan load balancer dan web
server menggunakan Apache. Terdapat 2 buah web server Apache dengan
masing masing IP Address 192.168.1.1 dan 192.168.1.2, 1 buah load balancer
(pembagi beban trafik) Apache dengan IP Address 192.168.1.5, dan komputer
client dengan IP Address 192.168.1.xxx. Spesifikasi mesin virtual untuk masing
masing host adalah sebagai berikut:
Tabel 3.1 Tabel spesifikasi skenario 12
Apache Load Balancer
Hardware
CPUs : 1
RAM : 256 MB
HDD : 20 GB
Software
CPUs : 1
RAM : 256 MB
HDD : 20 GB
Software
Client
Hardware
CPUs : 1
RAM : 512 MB
HDD : 20 GB
Software
CPUs : 1
RAM : 256 MB
HDD : 20 GB
Software
CPUs : 1
RAM : 256 MB
HDD : 20 GB
Software
Client
Hardware
CPUs : 1
RAM : 512 MB
HDD : 20 GB
Software
BAB IV
HASIL DAN PEMBAHASAN
BAB
KESIMPULAN DAN SARAN
DAFTAR PUSTAKA