Você está na página 1de 36

ANALISA PERFORMANSI LOAD BALANCING WEB

SERVER BERBASIS OPEN SOURCE


SKRIPSI

Oleh:
NIM

: 100010092

NAMA

: NI WAYAN ANIKA AYU

JENJANG STUDI

: STRATA SATU (S1)

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

1.1 Latar Belakang Masalah


Dengan kemajuan teknologi dan informasi saat ini, kebutuhan manusia
akan ketersediaan informasi secara online sangat besar. Seiring dengan
banyaknya perusahaan yang beralih ke sistem online (website) untuk
menjalankan proses bisnisnya, menyebabkan perusahaan harus menjaga agar
website yang dimiliki mampu memproses banyaknya request dari pengguna
(user) dengan baik. Namun seiring dengan makin bertambahnya pengguna atau
pengakses website tersebut, semakin berat pula kerja sebuah server untuk
memproses request data user. Website yang baik adalah website yang mampu
menyediakan data yang diminta oleh user secara efektif dan efisien. Semua
website membutuhkan server untuk dapat diakses. Server yang melayani
website disebut dengan web server.
Dahulu, untuk memproses request dari sebuah website, sebuah web server
tidak bekerja terlalu berat karena user yang mengakses website tersebut
terbilang masih sedikit dan beban request-nya pun tidak terlalu besar. Namun di
jaman yang serba terkomputerisasi ini, jumlah user yang mengakses website di
internet mengalami peningkatan yang sangat signifikan setiap harinya dan
dengan beban request yang bervariasi. Ini menyebabkan kerja dari sebuah web
server menjadi bertambah. Jika jumlah request melebihi maksimal jumlah
request yang bisa diproses web server, ini dapat menyebabkan downtime server.
Untuk mengatasi masalah tersebut, maka dikembangkanlah berbagai macam
web server sesuai dengan kebutuhan. Salah satu web server yang sering dipakai
di dunia adalah web server apache dan web server nginx (engine x). Keduanya
merupakan web server open source yang dapat berjalan di semua sistem
operasi.
Linux merupakan salah satu sistem operasi yang stabil, dan banyak
digunakan untuk keperluan server web. Banyak sekali server WWW yang
didukung oleh Linux. Bahkan ada istilah yang terkenal di Linux yaitu dinamakan
LAMP (singkatan dari Linux, Apache, MySQL, dan PHP).[5]

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.4 Manfaat Penelitian


Manfaat dari penelitian ini adalah sebagai bahan acuan untuk
administrator jaringan dalam pembangunan sebuah web server baik yang
digunakan untuk kalangan pribadi maupun komersil.
1.5

Ruang Lingkup Penelitian


Ruang lingkup dari penelitian ini adalah sebagai berikut:

1. Sistem

dibangun

secara

virtual

menggunakan

software

VMware

Workstation versi 10.0.0 build-1295980.


2. Sistem operasi yang digunakan untuk membangun server dan load
balancer adalah Debian 5.0 Lenny.
3. Penelitian hanya menggunakan 2 aplikasi web server, yaitu; Apache2 dan
Nginx-1.7.7.
4. Pengujian performansi load balancing web server menggunakan tool
Httperf dan JMeter.
5. Sistem dibangun pada jaringan lokal.
6. Hasil analisa penelitian adalah berupa perbandingan performansi load
balancing web server Apache dan Nginx.
1.6

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.

Gambar 1.1 Topologi load balancing web server Apache


Pada Gambar 3.1, web server dan load balancer menggunakan aplikasi
Apache. Client/ user yang melakukan request akan menghubungi load
balancer Apache, yang kemudian load balancer mengarahkan ke salah
satu web server Apache menggunakan metode load balancing.

Gambar 1.2 Topologi load balancing web server nginx


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.
4. Pengujian
Melakukan pengujian terhadap linux virtual server yang telah dibuat sesuai
skenario. Pengujian dilakukan menggunakan aplikasi Httperf dengan
menguji 2 (dua) parameter QoS yaitu; throughput dan response time.
Throughput adalah kecepatan (rate) transfer data efektif, yang diukur
dalam bps (bit per second). Untuk mengukur nilai Throughput digunakan
persamaan:[3]

Throughput

paket _ data _ diterima


lama _ pengama tan

Sedangkan Response time (delay atau latency) 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:
[3]

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

terhadap suatu peristiwa (karangan atau perbuatan) untuk mengetahui keadaan


sebenarnya (sebag maupun duduk perkara). Analisa juga diartikan sebagai
penguraian suatu pokok atas berbagai bagiannya dan penelaahan bagian serta
hubungan antarbagian untuk memperoleh pengertian yangtepat dan pemahaman
arti keseluruhan.
2.2

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 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

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.
2.2.1

Parameter Quality of Service (QoS)


Dalam mengukur performansi jaringan, QoS (Quality of Service) menjadi

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

paket _ data _ diterima


lama _ pengama tan

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

4) Jitter atau Variasi Kedatangan Paket


Jitter diakibatkan oleh variasi - variasi dalam panjang antrian, dalam
waktu pengolahan data, dan juga dalam waktu penghimpunan ulang paket paket di akhir perjalanan jitter. Untuk mengukur nilai Jitter digunakan persamaan
berikut:

Jitter

total _ var iasi _ delay


total _ paket _ yang _ diterima

Total _ var iasi _ delay Delay (rata rata _ delay )


2.3

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

: Merupakan berkas konfigurasi utama Apache.

envvars

: Merupakan berkas variable lingkungan untuk perkakas

apachect1, aplikasi pengontrol Apache.


httpd.conf

: Berkas ini diperuntukkan untuk konfigurasi yang

ditambahkan oleh pengguna Secara default berkas ini merupakan berkas


kosong.
ports.conf

: Berisikan daftar port yang digunakan oleh Apache.

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-

modul.load berisikan direktif LoadModule yang akan mengaktifkan modul


tersebut.

mods-enabled/

: Merupakan direktori untuk modul yang diaktifkan.

Sama seperti direktori mods-available/, untuk setiap modul terdapat dua


berkas yaitu nama-modul.load dan nama-modul.conf. sebenarnya direktori
ini berisikan tautan simbolik (symlink) dari konfigurasi modul di direktori
mods-avaiable.
sites-available/

: Direktori yang diperuntukkan bagi konfigurasi host

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/

: Merupakan direktori konfigurasi host virtual yang aktif.

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.

2.5 Sistem Operasi Open Source


Sistem Operasi adalah perangkat lunak sistem yang bertugas untuk
melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar
sistem, termasuk menjalankan software aplikasi seperti program-program
pengolah kata dan browser web. Sistem operasi merupakan penghubung antara
pengguna komputer dengan perangkat keras komputer. Pengertian sistem
operasi secara umum adalah suatu pengelola seluruh sumber daya yang
terdapat pada sistem komputer dan menyediakan sekumpulan layanan untuk
memudahkan dan memberi kenyamanan dalam penggunaan dan pemanfaatan
sumber daya sistem komputer.

Open source adalah istilah untuk software yang kode programnya


disediakan oleh pengembangnya untuk umum agar dapat dipelajari cara
kerjanya, diubah atau dikembangkan lebih lanjut serta untuk disebarluaskan.
Apabila pembuat program melarang orang lain untuk mengubah dan atau
menyebarluaskan program buatannya, maka program itu bukan open source,
meskipun tersedia kode programnya.
Dengan demikian, maka sistem operasi open source adalah sistem
operasi yang kode programnya disediakan oleh pengembangnya untuk umum
agar dapat dipelajari cara kerjanya, diubah atau dikembangkan lebih lanjut serta
untuk disebarluaskan dan bersifat gratis.
2.5.1 Linux Debian
Distribusi Linux (Distro Linux) adalah sebutan untuk sistem operasi
komputer dan aplikasinya, merupakan keluarga Unix yang menggunakan kernel
Linux. Distribusi Linux dapat berupa perangkat lunak bebas dan bisa juga berupa
perangkat lunak komersial seperti Red Hat Enterprise, SuSE, dan lain-lain. Ada
banyak distribusi atau distro Linux yang telah muncul. Beberapa bertahan dan
besar, bahkan sampai menghasilkan distro turunan, contohnya Distro Debian
GNU/Linux. Distro ini telah menghasilkan puluhan distro anak, antara lain
Ubuntu, Knoppix, Xandros, DSL, dan sebagainya. Berikut ini digambarkan
beberapa contoh Distro Linux yan beredar di pasaran.

Gambar 2.3 Gambar logo distro Linux

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

dikembangkan oleh VMWare.Inc yang memungkinkan administrator sistem unutk


membuat dan menjalankan mesin virtual langsung pada desktop. Perangkat
lunak ini digunakan untuk membuat banyak mesin virtual dan digunakan secara
simultan dengan sistem operasi yang digunakan. Setiap mesin virtual tersebut
bisa menjalankan sistem operasi yang dipilih, seperti Windows, Linux, varian
BSD dan lain sebagainya. Dalam arti yang sederhana, VMware workstation bisa
menjalankan banyak sistem operasi secara simulatan dengan menggunakan
satu fisik mesin.
2.8

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

masalah dengan mempresentasikan simbol-simbol tertentu yang mudah


dimengerti, mudah digunakan dan standar.
Tujuan utama penggunaan Flowchart adalah untuk menggambarkan
suatu tahapan penyelesaian secara sederhana, terurai, rapi dan jelas dengan
menggunakan simbol-simbol standar. Tahap penyelesaian masalah yang
disajikan harus jelas, sederhana, efektif, dan tepat. Flowchart mempunyai
beberapa simbol, yaitu:
Tabel 2.1 Simbol Flowchart
Simbol

Nama

Penjelasan

Terminator

Simbol penanda awal dan akhir.

Process

Simbol penanda proses berlangsung

Predefined

Simbol

penanda

Process

proses

didalam

masih

terdapat

proses.

Biasanya

digunankan untuk penanda prosedur


Alternate

atau fungsi.
Simbol penanda terdapat proses yang

Process

terjadi

bersamaan

dengan

Decision

proses utama kerja.


Simbol penanda pemilih,

dimana

kerja

perlunya diambil keputusan untuk


Data

melanjutkan proses.
Simbol
penanda

adanya

pengambilman input dan pengeluaran


Preparation

output.
Simbol penanda terjadi persiapan
atau inisialisasi awal sebelum proses

Connector

dikerjakan
Simbol

penanda

saling

terhunbungnya flowchart. Meskipun


terlihat

flowchart

terputus,

namun

dengan

simbol

ini

harus

proses

lompat

menuju

dengan label yang sama.

dibaca
konektor

BAB III
ANALISA DAN PERANCANGAN SISTEM

3.1

Gambaran Umum Sistem


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. 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.

Gambar 3.4 Topologi load balancing web server Apache


Pada Gambar 3.1, web server dan load balancer menggunakan aplikasi
Apache. Client/ user yang melakukan request akan menghubungi load balancer
Apache, yang kemudian load balancer mengarahkan ke salah satu web server
Apache menggunakan metode load balancing.

Gambar 3.5 Topologi load balancing web server nginx

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.

Gambar 3.3 Flowchart alur sistem load balancing web server


Pada flowchart diatas, alur sistem dimulai dari adanya request web,
kemudian load balancer akan memanggil atau memeriksa back-end server yang
tersedia. Jika ditemukan back-end server yang aktif, request akan diberikan dan
back-end server tersebut memberikan response terhadap request. Jika back-end
server yang dipanggil tidak aktif, maka method load balancing yang dipakai akan
memberikan response.

Gambar 3.4 Flowchart cara kerja web server 6


Gambar 3.4 merupakan flowchart cara kerja web server pada sistem.
Data yang diperlukan adalah URL, yaitu alamat web page yang diakses client
dan port 80 yang merupakan port default dari protocol HTTP (web). Jika URL dan
port terpenuhi, maka domain pada URL akan diperiksa pada DNS Server (Name
Server).

Jika

domain

tersebut

aktif/

ada,

maka

DNS

Server

akan

menterjemahkan domain tersebut menjadi IP Address dari Web Server yang


memiliki IP Address tersebut. Jika domain tidak ditemukan, maka akan
ditampilkan report error. Kemudian request (berupa URL atau web page) akan
dikirim ke Web Server. Jika web server merespon, maka web page yang diminta
akan dikirim dan ditampilkan pada client. Namun jika Web Server tidak
merespon/ tidak aktif, maka akan ditampilkan report error sesuai error yang ada.

Gambar 3.5 Flowchart alur pengujian load balancing web server 7


Gambar 3.5 merupakan flowchart alur pengujian load balancing yang
menggunakan teknik stress test, yaitu 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. Data yang diperlukan untuk pengujian adalah
URL (alamat web page) dan jumlah koneksi. Setelah sistem load balancing web
server di aktifkan, maka jalankan perintah untuk stress test. Kemudian hasil
stress test akan ditampilkan.

3.3

Spesifikasi Hardware dan Software


Terdapat 2 skenario load balancer yang dibangun untuk diuji performansi

load balancing web server, yaitu sebagai berikut:

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

Virtual Network Adapter : VMnet1(Host-Only)


OS: Debian 5.0 (Lenny)
Web server: Apache2
Based : CLI (Command Line Interface)

Apache Web Server


Hardware

CPUs : 1

RAM : 256 MB
HDD : 20 GB
Software

Virtual Network Adapter : VMnet1(Host-Only)


OS: Debian 5.0 (Lenny)
Based : CLI (Command Line Interface)
Web server: Apache2

Client
Hardware

CPUs : 1
RAM : 512 MB
HDD : 20 GB

Software

Virtual Network Adapter : VMnet1(Host-Only)


OS: Debian 5.0 (Lenny)
Based : GUI
Web server: Apache2

Sedangkan diagram jaringan untuk skenario 2 load balancing web server


menggunakan Nginx dapat dilihat pada Gambar 3.5 berikut.

Gambar 3.5 Diagram jaringan load balancing web server Nginx 8


Gambar 3.5 merupakan skenario diagram jaringan load balancer dan web
server menggunakan Nginx. Terdapat 2 buah web server Nginx dengan masing
masing IP Address 192.168.2.1/24 dan 192.168.2.2/24, 1 buah load balancer
(pembagi beban trafik) Nginx dengan IP Address 192.168.2.5, dan komputer
client dengan IP Address 192.168.2.xxx. Spesifikasi mesin virtual untuk masing
masing host adalah sebagai berikut:

Tabel 3.2 Tabel Spesifikasi skenario 2


Nginx Load Balancer
Hardware

CPUs : 1
RAM : 256 MB
HDD : 20 GB

Software

Virtual Network Adapter : VMnet1(Host-Only)


OS: Debian 5.0 (Lenny)
Web server: Nginx 1.7.7
Based : CLI (Command Line Interface)

Nginx Web Server


Hardware

CPUs : 1
RAM : 256 MB
HDD : 20 GB

Software

Virtual Network Adapter : VMnet1(Host-Only)


OS: Debian 5.0 (Lenny)
Based : CLI (Command Line Interface)
Web server: Nginx 1.7.7

Client
Hardware

CPUs : 1
RAM : 512 MB
HDD : 20 GB

Software

Virtual Network Adapter : VMnet1(Host-Only)


OS: Debian 5.0 (Lenny)
Based : GUI
Web server: Nginx 1.7.7

BAB IV
HASIL DAN PEMBAHASAN

4.2 Konfigurasi Web Server


4.2.1 Konfigurasi Web Server Apache
4.2.2 Konfigurasi Web Server Nginx
4.3 Konfigurasi Load Balancer
4.3.1 Konfigurasi Load Balancer Apache
4.3.2 Konfigurasi Load Balancer Nginx
4.4 Skenario Load Balancing

BAB
KESIMPULAN DAN SARAN

DAFTAR PUSTAKA