Analisis Load Balancing Pada Web Server Menggunakan - j

advertisement
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Vol. 2, No. 3, Maret 2018, hlm. 915-920
e-ISSN: 2548-964X
http://j-ptiik.ub.ac.id
Analisis Load Balancing Pada Web Server Menggunakan Algoritme
Weighted Least Connection
Dany Rahmana1, Rakhmadhany Primananda2 , Widhi Yahya3
Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya
Email: [email protected], [email protected], [email protected]
Abstrak
Load balancing merupakan sebuah teknik untuk membagi beban kerja pada 2 atau lebih server
ketika ada request dari klien, hal ini bertujuan agar traffic berjalan secara optimal. Pada teknik load
balancing terdapat beberapa algoritme, antara lain: least connection, weighted least connection dan lainlain. Pada penelitian ini menggunakan algoritme weighted least connection. Algoritme weighted least
connection membagi beban server berdasarkan nilai weight (bobot). Tool pendukung untuk load
balancing adalah IPVSADM yang terdapat interface Piranha. Dalam pengujian, parameter yang diukur
adalah throughput, response time dan CPU usage. Tool yang digunakan pada pengujian adalah httperf.
Dari hasil pengujian dengan mengirimkan 10000 koneksi didapat bahwa dengan mengirimkan koneksi
per detik lebih banyak akan meningkatkan nilai throughput. Pada pengujian nilai throughput tertinggi
sebesar 547,74 KB/s. Berbanding terbalik dengan nilai response time, jika diberikan koneksi tinggi maka
nilainya akan semakin tinggi dalam artian melambat. Pada pengujian pembagian koneksi, server yang
mempunyai bobot tertinggi menampung koneksi lebih banyak sebesar 4000 koneksi, bobot terendah
1000 koneksi dari total koneksi 10000. Pada pengujian CPU usage, algoritme weighted least connection
lebih baik dari algoritme least connection jika diterapkan pada server yang heterogen.
Kata kunci: Load Balancing, Weighted Least Connection, IPVSADM, Bobot
Abstract
Load balancing is a technique to divide the workload on 2 or more servers when there is a
request from the client. In load balancing techniques there are several algorithms,, others: least
connection, weighted least connection and others. This research uses weighted least connection
algorithm. The weighted least connection algorithm divides the server load based on the weight value.
The supporting tool for load balancing is IPVSADM with Piranha interface. In the test, the measured
parameters are throughput, response time and CPU usage. The tool used in the test in httperf. From the
test results with delivery of 10000 connections obtained by sending connections per second more will
increase the throughput value. On testing the highest throughput value is 547,74 KB / s. Compared with
the response time response, if given a high connection will be higher in the sense of slowing down. In
connection distribution testing, the server with the highest weights accommodates more connections of
4000 connections, the lowest weight of 1000 connections from the total 10000 connections. In CPU
usage testing, the weighted least connection algorithm is at least better than the least connection
algorithm when applied to a heterogeneous server.
Keywords: Load Balancing, Weighted Least Connection, IPVSADM, Weight
merupakan salah satu media untuk
mendapatkan informasi di internet.
Informasi yang ada di website disimpan
dalam sebuah web server. Ketika pengguna
melakukan request untuk melihat suatu
informasi, maka web server akan
megirimkan berkas request. Namun, ketika
website menerima request yang banyak
dalam suatu waktu, dapat menyebabkan
1. PENDAHULUAN
Kebutuhan
seseorang
untuk
mendapatkan informasi secara cepat dari
jarak jauh sudah semakin mudah seiring
berkembangnya
teknologi.
Pengguna
internet bisa kapan saja mengakses internet
dan melalui media apapun seperti perangkat
laptop, ponsel dan lainnya. Website
Fakultas Ilmu Komputer
Universitas Brawijaya
915
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
terjadinya overload pada web server.
Solusinya membagi beban request ke
beberapa server, sehingga tidak berpusat
terhadap satu server saja. Solusi tersebut
dikenal dengan nama load balancing
(Rijayana, 2005).
Load balancing merupakan sebuah
teknik untuk membagi beban kerja pada 2
atau lebih server ketika ada request dari
klien, hal ini bertujuan agar traffic berjalan
secara optimal. Load balancing bertujuan
untuk
memaksimalkan
throughput,
memperkecil
waktu
tanggap
dan
menghindari overload pada salah satu
server. Penerapan load balancing pada web
server merupakan solusi yang tepat dan
efektif dalam menangani beban server
(Rijayana, 2005). Dalam teknik Load
balancing terdapat beberapa algoritme
antara lain, least connection, weighted least
connection, dan lainnya.
Server
Load
Balancing
(SLB)
digunakan saat sistem menawarkan
throughput tinggi dan High Availability
(HA). Layanan web yang ditawarkan dari
Amazon atau Google mengandalkan SLB
dengan sejumlah besar server back end.
Karena cluster server back end ini cenderung
heterogen,
Load
Balancers
(LBs)
menawarkan algoritme penyeimbang seperti
Weighted Round Robin (WRR) dan
Weighted Least Connection (WLC) yang
memberikan
kemampuan
untuk
mempertimbangkan berbagai kapasitas
mesin dengan bobot yang dikonfigurasi
(Zinke & Schnor, 2013).
Algoritme weighted least connection
menentukan bobot kinerja dari setiap server
(Red Hat, Inc, 2014). Server dengan nilai
bobot kinerja tinggi akan menerima request
yang masuk lebih banyak dari server yang
memiliki bobot kinerja rendah. Algortime
least connection melakukan pembagian
request berdasarkan banyaknya koneksi
yang sedang dilayani oleh server
(Supramana & Prismana, 2016). Server yang
melayani koneksi dengan jumlah sedikit
akan diberikan beban untuk setiap request
yang masuk berikutnya. Pada pengujian
beban dinamis, algortime weighted least
connection
lebih
baik
dalam
mendistribusikan permintaan HTTP dan
balasan HTTP, namun waktu tanggapnya
lebih lambat jika dibandingkan dengan
algoritme least connection (Angsar, 2014).
Fakultas Ilmu Komputer, Universitas Brawijaya
916
Penelitian ini menerapkan algoritme
weighted least connection pada server yang
heterogen. Server yang heterogen memiliki
spesifikasi berbeda antara server satu
dengan lainnya, misalkan server A
mempunyai RAM 512 MB dan server B
mempunyai RAM 1024 MB. Pada algortime
weighted least connection terdapat weight
atau nilai bobot. Penggunaan nilai bobot
(weigthed) pada algoritme weighted least
connection membuat administrator dapat
mengkonfigurasi server mana yang dapat
menampung koneksi banyak dan sedikit.
Nilai bobot secara default bernilai 1 dan
tidak boleh 0. Pada algoritme weighted least
connection nilai bobot disesuaikan dengan
spesifikasi dari server yang digunakan, misal
terdapat 2 buah server dengan spesifikasi
yang berbeda. Server 1 mempunyai
spesifikasi yang lebih unggul dari server 2,
maka bobot nilai server 1 lebih tinggi dari 2.
Hal ini nantinya membuat server 1 dapat
menampung koneksi lebih banyak dari
server 2.
2. LANDASAN TEORI
2.1. IPVSADM
IPVSADM adalah userpace program yang
berfungsi untuk mengatur kernel module IP_VS.
Contohnya adalah ketika administrator ingin
menambahkan layanan baru, menambah atau
mengubah real server yang ada, menentukan
algoritme penjadwalan apa yang akan
digunakan, dan melihat daftar layanan serta real
server yang sudah terdaftar apa saja (Pratomo,
dkk., 2011).
2.2. Load Balancing
Load
balancing
adalah
proses
pendistribusian beban terhadap sebuah service
yang ada pada sekumpulan server atau perangkat
jaringan ketika ada permintaan dari pemakai
(Rijayana, 2005). Penggunaan teknik tersebut
diharapkan dapat membuat beban trafik yang
seimbang pada jalur-jalur koneksi. Sehingga
bisa memaksimalkan waktu respon dan
throughput. Load balancing digunakan pada saat
sebuah server telah memiliki jumlah pengguna
yang telah melebihi kapasitas maksimal dari
server tersebut (Supramana & Prismana, 2016).
2.3. Weighted Least Connection
Algoritme weighted least connection
membagi beban trafik berdasarakan bobot
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
kinerja dari masing-masing server . Bobot
diberikan kepada masing-masing real server.
Untuk koneksi baru akan dipilih server yang
paling sedikit kapasitasnya (Red Hat, Inc, 2014).
2.4. Web Server
Web server merupakan perangkat lunak yang
melayani permintaan HTTP dan web browser
dan mengirimkan kode-kode dinamis ke server
aplikasi.
Server
aplikasi
inilah
yang
menerjemahkan dan memproses kode-kode
dinamis menjadi kode-kode statis HTML dalam
suatu halaman statis yang kemudian dikirimkan
ke browser oleh web server. Web server biasanya
disebut juga sebagai HTTP server, karena
basisnya menggunakan protocol HTTP
(Abdullah, dkk., 2010).
917
4. PERANCANGAN DAN
IMPLEMENTASI
Proses perancangan sistem load balancing
pada web server dengan algoritme weighted least
connection
meliputi
beberapa
bagian,
diantaranya perancangan sistem itu sendiri dan
implementasi sistem.
4.1. Metode Direct Routing
Metode dalam linux virtual server pada
penelitian ini menggunakan metode direct
routing. Berikut bentuk dari topologi lvs direct
routing pada Gambar 1.
Gambar 1. Topologi LVS Direct Routing
2.5. HTTPERF
HTTPERF adalah tool yang dirancang untuk
mengukur
kinerja
web
server,
yang
memungkinkan
administrator
untuk
mendiagnosis
masalah
potensial
dan
memperbaiki masalah yang mempengaruhi
kinerja server mereka. HTTPERF dirancang
untuk menghasilkan permintaan HTTP GET,
yang kemudian memonitor tingkat respon untuk
menentukan jumlah yang diterima dan kecepatan
penerimaannya.
Kemudian
menghasilkan
ringakasan statistic untuk digunakan oleh
administrator server dan pihak lain yang ingin
melihatnya. Hasil yang akurat dapat diperoleh
hanya dalam satu proses HTTPERF per
komputer (Hope, 2017).
3. METODOLOGI PENELITIAN
Dalam melaksanakan penelitian ini, adapun
metode-metode yang dilakukan sebagai berikut:
a. Mencari teori penunjang dalam
mengimplentasikan load balancing
dengan algoritme weighted least
connection.
b. Melakukan
analisis
kebutuhan
perangkat yang digunakan dalam
merancang teknik load balancing
dengan algoritme weighted least
connection baik pada sisi perangkat
keras maupun perangkat lunak.
c. Setelah diketahui perangkat keras yang
digunakan, selanjutnya melakukan
perancangan dan implementasi.
d. Tahap selanjutnya melakukan pengujian
dan analisis terhadap kinerja dari sistem
yang dirancang. Jika sudah diuji
selanjuntya mengambil kesimpulan.
Fakultas Ilmu Komputer, Universitas Brawijaya
Pada metode ini paket yang ditujukan pada
virtual server dilampirkan pada paket lain yang
kemudian diarahkan ke salah satu server. Direct
routing memungkinkan real server memproses
dan mengarahkan paket secara langsung ke
pengguna yang meminta daripada mengirimkan
paket keluar melalui router linux virtual server.
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
Tool pendukung load balancer yaitu
IPVSADM. IPVSADM adalah userspace
program yang berfungsi mengatur kernel modul
IP_VS. Pada IP_VS terdapat scheduler yang
menentukan tujuan dari koneksi baru terhadap
real server. Penelitian ini menggunakan
perangkat lunak IPVSADM yang terdapat
interface bernama Piranha seperti pada Gambar
2.
dan 5.
Throughput
Nilai Throughput
(KB/s)
4.2. Load Balancer
918
600
400
200
0
250
500
750
1000
Koneksi / Detik
Gambar 4. Nilai Throughput
Gambar 2. Tampilan Piranha
Setelah login disajikan beberapa menu,
diantaranya terdapat tab virtual server seperti
pada Gambar 3. Pada halaman ini terdapat fungsi
untuk menambahkan atau mengurngi real server
yang digunakan, pengaturan alamat IP,
pemberian nilai bobot. Selain itu juga di halaman
ini terdapat menu untuk memilih scheduling
yang digunakan seperti weighted least
connection pada penelitian ini.
Dari Gambar 4 menunjukkan bahwa pada
pengujian 1000 koneksi per detik memperoleh
nilai throughput paling tinggi sebesar 547,04
KB/s, 750 koneksi per detik memperoleh nilai
throughput 411,5 KB/s, 500 koneksi per detik
memperoleh nilai throughput 274,38 KB/s dan
250 koneksi per detik mendapatkan nilai
throughput 137,2 KB/s. Hasil ini menunjukkan
bahwa semakin tinggi rate (koneksi per detik),
maka nilai throughput yang dihasilkan lebih
tinggi yaitu pada 1000 koneksi per detik dengan
nilai 547,04 KB/s. Sebaliknya pengujian dengan
koneksi per detik rendah maka nilai throughput
yang didapatkan juga rendah dibanding
pengujian dengan nilai rate lebih tinggi.
Nilai Response (ms)
Response / Reply Time
Gambar 3. Tampilan Virtual Server
5. PENGUJIAN
Terdapat 4 pengujian dalam sistem ini,
yaitu pengujian throughput dan response time,
perbedaan weight, jumlah koneksi dan CPU
usage.
5.1. Throughput dan Response Time
Pengujian ini dilakukan dengan mengirim
request sebanyak 10000 dengan koneksi per
detik yang diberikan bervariasi yaitu 250, 500,
750 dan 1000. Request diberikan kepada director
dan diteruskan ke real server yang sudah
terhubung. Hasil dari pengujian pada Gambar 4
Fakultas Ilmu Komputer, Universitas Brawijaya
15
10
5
0
250
500
750
1000
Koneksi per Detik
Gambar 5. Nilai Response
Gambar 5 memperlihatkan nilai response
pada pengujian yang dilakukan. Ketika
pengujian dilakukan dengan memberikan 1000
koneksi per detik memperoleh nilai response
12,16 KB/s, pada pengujian 750 koneksi per
detik memperoleh nilai response 2,44 KB/s,
pengujian 500 koneksi per detik memperoleh
nilai 1,38 KB/s dan pengujian 250 koneksi per
detik memperoleh nilai 1,1 KB/s. Nilai response
pada percobaan ini menunjukkan bahwa
semakin rendah rate yang diberikan, maka nilai
response yang diberikan akan baik. Terlihat pada
rate 250 rata-rata nilai reply time adalah 1,1.
Sebaliknya rate tinggi akan memperlambat
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
response, pada rate 1000 nilai reply time adalah
12,16.
5.2. Perbedaan Weight
Pengujian ini akan membuktikan bahwa
nilai bobot (weight) menentukan jumlah koneksi
yang masuk. Sama seperti pengujian
sebelumnya dengan menggunakan empat server.
Total koneksi yang diberikan 1000. Hasil dari
pengujian pada Gambar 6.
919
pengujian dilakukan dengan memberi koneksi
sebanyak 10000, server 4 penggunaan CPU-nya
lebih tinggi dibanding server 1, 2 dan 3. Pada
Bab 4 Perancangan dan Implementasi, penulis
mengkonfigurasi agar server 4 yang mempunyai
spesifikasi lebih tinggi dapat menampung
koneksi lebih banyak, hal ini yang membuat
penggunaan CPU di server 4 lebih tinggi
dibanding server lainnya.
5.4. Perbandingan dengan Algortime lain
Pada pengujian juga dilakukan dengan
membandingkan dengan algoritme lain yaitu
algoritme least connection. Berikut pada
Gambar 8. Adalah perbandingan CPU usage
antara algoritme weighted least connection
dengan algoritme least connection.
Gambar 6. Jumlah Koneksi Masuk
5.3. Penggunaan CPU
Pengujian dilakukan untuk melihat hasil
CPU utilization dari setiap server yang
digunakan pada sistem. Hasil yang disajikan
adalah nilai CPU idle dan CPU usage ketika
dilakukan pengujian. Pada pengujian ini
dilakukan percobaan sebanyak 5 kali, total
koneksi yang diberikan sebanyak 10000 koneksi
dengan koneksi per detik sebanyak 500. Hasil
dari pengujian pada Gambar 7.
Nilai CPU Utilization
(%)
CPU Utilization
100,00
50,00
Idle
0,00
Usage
1
2
3
4
Server
Gambar 7. Perbandingan CPU Utilization
Pada server 1 nilai rata-rata CPU idle yang
didapat 95,30 % dan CPU usage 4,67%. Server
2 nilai rata-rata CPU idle 91,86 % dan CPU
usage 8,15 %. Server 3 nilai rata-rata CPU idle
84,34 % dan CPU usage 15,59 %. Server 4 nilai
rata-rata CPU idle 80,28 % dan CPU usage
19,73 %. Data di atas menunjukkan bahwa saat
Fakultas Ilmu Komputer, Universitas Brawijaya
Nilai CPU Usage (%)
Hasil pada Gambar 6 menunjukkan server
keempat dengan IP 192.168.1.5 nilai bobot 7
dapat menampung koneksi yang masuk lebih
banyak dibanding dengan server lainnya yang
mempunya nilai bobot lebih rendah.
CPU Usage
20,00
15,00
Weighted Least
Connection
10,00
5,00
0,00
1
2
3
4
Least
Connection
Server ke-
Gambar 8. Perbandingan CPU Usage
Antara Algoritme Weighted Least Connection
dengan Least Connection
Pada Gambar 8 penggunaan CPU pada algortime
weighted least connection memiliki selisih yang
besar antara nilai CPU usage tertinggi dengan
nilai CPU usage terendah sebesar 15,06 %,
sedangkan pada algortime least connection
selisih antara nilai CPU usage tertinggi dengan
nilai CPU usage terendah sebesar 4,05 %. Pada
perbandingan jumlah koneksi, setiap server
dengan algoritme weighted least connection
menampung jumlah koneksi yang berbeda, hal
ini yang membuat penggunaan CPU antara
server 1 dan lainnya memiliki selisih yang tidak
sedikit, sedangkan pada algortime least
connection setiap server menampung jumlah
koneksi yang sama
6. KESIMPULAN
Algoritme weighted least connection
membagi beban trafik berdasarkan bobot kinerja
dari masing-masing server.. Nilai weight sangat
berpengaruh terhadap jumlah koneksi yang
dapat ditampung oleh suatu server. Server yang
punya spesifikasi lebih unggul diberi nilai
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer
weight lebih besar agar dapat menampung
koneksi lebih banyak.
Pengujian sistem yang dilakukan pada
penelitian ini diuji dalam beberapa pengujian
degan mengukur nilai throughput, response time
dan CPU usage. Hasilnya nilai throughput
sebesar 528,06 KB/s saat diberi 1000 koneksi
per detik (rate). Semakin tinggi rate yang
diberikan nilai throughput semakin tinggi.
Berbanding terbalik dengan nilai response, saat
pengujian dengan rate tinggi 1000 koneksi per
detik memperoleh nilai response 12,16 KB/s,
dalam artian melambat. Pada penggunaan CPU,
server 4 memiliki nilai penggunaan lebih tinggi
sebesar 19,73 % dibanding server lainnya, hal ini
karena server 4 dirancang untuk dapat
menampung koneksi lebih banyak.
Pengujian juga dilakukan dengan
membandingkan dengan algoritme least
connection, pada CPU usage algoritme weighted
least connection mempunyai nilai lebih baik jika
dilakukan perbandingan dengan algoritme least
connection bila dilihat dari spesifikasi yang
digunakan.
7. DAFTAR PUSTAKA
Abdullah, A., Simamora, S. N. M. P. & Andrian,
H. R., 2010. Implementasi dan
Analisa Load-Balancing pada suatu
Web-Server Lokal.
Angsar, N., 2014. Pengujian Distribusi
Beban Web dengan Algoritma Least
Connection dan Weighted Least
Connection. Volume 3.
Hope,
C.,
2017.
Httperf.
[Online]
Tersedia di:
https://www.computerhope.com/jargon/
h/httperf.htm [Diakses 21 Juli 2017].
Red Hat, Inc, 2014. Red Hat Enterprise
Linux
5
Virtual
Server
Administration. [Online] Tersedia di:
https://access.redhat.com/documentatio
n/en/red-hat-enterprise-linux/
[Diakses 12 Juli 2017].
Rijayana,
I.,
2005.
Teknologi
Load
Balancing Untuk Mengatasi Beban
Server. pp. 35-39.
Supramana & Prismana, I. G. L. P. E., 2016.
Implementasi Load Balancing Pada
Web Server Dengan Menggunakan
Apache. Volume 5, pp. 117-125.
Zinke, J. & Schnor, B., 2013. The Impact of
Weights on the Performance of
Fakultas Ilmu Komputer, Universitas Brawijaya
920
Server Load Balancing Systems.
Download