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.