1
1. Pendahuluan
Perkembangan teknologi semakin memberi kemudahan kepada setiap orang untuk mengakses data-data yang tersebar di internet. Perkembangan ini
memberikan dampak yang besar terhadap MySQL
Server
karena beban yang diterima semakin meningkat. Telah diketahui bahwa penyebab dari akses yang
meningkat ini karena terlalu banyak koneksi ke dalam
database
, pemrosesan
query
yang tidak diperlukan, dan HTTP
request
yang tidak diperlukan. Seperti jika pada sebuah
database
terdapat 1000
user
dan semua
user
melakukan koneksi secara bersamaan, untuk masing-masing user melakukan 5
query
, sehingga menghasilkan 5000
query
yang berlangsung dalam sekali waktu. Untuk MySQL
Server
dengan spesifikasi terbatas maka hal ini dapat menyebabkan MySQL
Server
mengalami kelebihan beban[1]. Kota Semarang merupakan ibukota propinsi Jawa Tengah dimana
memiliki ratusan ribu warga di dalamnya. Selain jumlah penduduk yang padat, sekolah juga dibangun dibanyak tempat. Masalah timbul pada saat sebuah
keluarga ingin menyekolahkan anaknya. Mereka akan mencari informasi lengkap mengenai sekolah yang ingin dimasuki. Tetapi pada kenyataannya masyarakat
tidak mengetahui cara mencari informasi setiap sekolah yang ada sehingga mereka hanya mengandalkan apa kata orang tentang informasi sekolah yang ada.
Untuk itulah sistem informasi sekolah berbasis online sangat dibutuhkan untuk membantu keluarga calon siswa dalam mencari sekolah yang cocok untuk anak
mereka. Pada sistem informasi sekolah wilayah Kabupaten Semarang,
database
akan diakses secara umum oleh warga Semarang, dan kemungkinan beberapa dari daerah lainnya.
Database
dengan jumlah data lebih dari 15000 akan diakses oleh ratusan ribu orang, dan mencapai puncaknya pada setiap masa kelulusan sekolah.
Ada beberapa macam cara untuk mengatasi hal tersebut. Salah satunya adalah dengan cara membangun
Load Balanced Cluster
pada MySQL
Server
sehingga beban
request
yang diterima oleh
server
dapat dibagikan kepada seluruh jumlah
node
yang aktif. Penggunaan
Load Balanced Cluster
memberikan keuntungan dimana PC yang digunakan sebagai
node
tidak menuntut spesifikasi yang tinggi, sehingga PC dengan spesifikasi rendah juga dapat dipakai. Dengan
adanya
node
tambahan pada MySQL
Server
maka kinerja
server
dapat lebih dioptimalkan.
Jika cara tersebut dapat diaplikasikan pada MySQL
Server
untuk menanggulangi masalah yang ada, pertanyaannya adalah bagaimana cara
membangun
Load Balanced
MySQL
Server Cluster
? Selain itu, berapa besarkah peningkatan kinerja setelah penambahan
node
? Jika sudah terlihat berapa besar peningkatan kinerja setelah penambahan
node
, pada
node
keberapakah dianggap terbaik untuk menangani MySQL
Server
? 2.
Tinjauan Pustaka
Mengacu pada penelitian terdahulu yang berupa “Analisis Perbandingan Algoritma Penjadwalan
Load balancer
Terhadap Kinerja
Web Server Cluster
”, telah menganalisis dengan membandingkan algoritma yang dipakai pada sistem
2
komputasi
load balancing cluster
, bahwa algoritma penjadwalan menggunakan
least connection
memiliki hasil yang lebih baik dari pada
round robin
. Pada penelitian tersebut telah dibandingkan berdasarkan
connection
,
time response
,
throughput
,
request lost
, dan
test duration
[2]. Mengacu juga pada penelitian terdahulu yang berupa “Implementasi dan
Evaluasi Kinerja
Load Balancing
Pada
Server
-
Server
Proxy di IPB”, telah menganalisis bahwa 2 buah
server
proxy yang dipakai di IPB menjadi lebih baik jika metode
load balance
pembobotan yang dipakai adalah 1:2, karena menghasilkan standard deviasi penggunaan CPU yang paling kecil. Pada
penelitian tersebut telah dibandingkan berdasarkan penggunaan CPU, penggunaan
Memory
,
Throughput
,
Total Connection
, dan
Hit Ratio
[3]. Mengacu pada penelitian terdahulu yang berjudul “Perancangan Sistem
Informasi Sekolah Menggunakan Vaadin dengan Pemanfaatan Google Maps di Kota Semarang”, bahwa masalah yang dihadapi adalah cara pembangunan sistem
informasi berbasis
online
menggunakan Vaadin. Pada Penelitian ini dilakukan pembuatan sistem aplikasi berbasis
web
dengan
database
menggunakan Postgres dan penyimpanan data dilakukan secara
online
, diakses untuk masyarakat umum[4].
Database
sekolah pada penelitian tersebut akan digunakan untuk penelitian ini.
Dengan adanya sistem
load balance
, beban kerja yang diterima oleh
server
dapat dibagi sesuai jumlah
node
yang aktif. Dan sistem ini dapat juga diterapkan untuk
database server
, sehingga beban akses basis data juga dapat dibagikan dengan
database server
yang lain. Pada penelitian ini akan dilakukan perancangan dan implementasi sistem
Load Balanced
MySQL
Server Cluster
, kemudian membandingkan kinerja
load balanced
MySQL
Server cluster
dengan jumlah
node
yang berbeda, dan setelah itu akan ditentukan jumlah
node
yang dapat dipakai untuk menghasilkan kinerja layanan yang optimal setelah menambah
jumlah
node
dengan didasarkan pada perbandingan CPU
Usage
,
Memory Usage
,
Total Execution Time
,
Average Execution Time
, serta 95
percentile Execution Time
. CPU
Usage
dan
Memory Usage
dipakai sebagai parameter karena beban kerja sebuah
node
tidak lepas terhadap pemakaian
hardware
-nya. CPU digunakan oleh PC sebagai pusat pemrosesan data, sedangkan
Memory
digunakan oleh PC sebagai penyimpanan data hasil pemrosesan[5].
Total Execution Time
,
Average Execution Time
, dan 95
Percentile Execution Time
dipakai sebagai parameter karena waktu pemrosesan merupakan hasil akhir dari keseluruhan kinerja selama
proses berlangsung[6]. 3.
Metode dan Perancangan Sistem
Metode yang dipakai pada penelitian ini menggunakan PPDIOO yang merupakan metode Cisco untuk menggambarkan aliran berkelanjutan dari layanan
yang dibutuhkan jaringan. PPDIOO adalah singkatan dari
prepare
,
plan
,
design
,
implement
,
operate
,
optimize
.
Prepare
merupakan tahap penentuan arsitektur jaringan dan kebutuhan sistem.
Plan
merupakan tahap penentuan kebutuhan jaringan berdasarkan tujuan, fasilitas, kebutuhan
user
, dan lainnya.
Design
merupakan tahap yang lebih detail dari tahap
Plan
.
Implement
merupakan tahap
3
dimana jaringan dibangun berdasarkan tahap
Design
.
Operate
merupakan pengujian akhir dari tahap
Implement
yang akan mendeteksi kesalahan, koreksi dan memonitor performa, sekaligus memberikan data awal untuk tahap
Optimize
.
Optimize
merupakan tahap respon dari data yang didapatkan dari tahap
Operate
, yang bisa berupa optimalisasi sistem maupun jaringan bahkan sampai merombak
sistem maupun jaringan awalnya jika tidak sesuai dengan harapan. Gambar 1 menunjukkan bagan metode PPDIOO.
Gambar 1 Metode PPDIOO.
Kelebihan dari metode ini adalah: Mengurangi biaya total dari kepemilikan jaringan; Meningkatkan ketersediaan jaringan; Mengembangkan
percepatan bisnis; Percepatan akses pada aplikasi dan layanan[7]. Pada penelitian ini, metode PPDIOO sangat cocok karena akan dilakukan pengukuran kinerja
secara total dalam sekali waktu sehingga tidak perlu melakukan proses fase sebelumnya, dan penggunaan metode ini dapat digunakan secara berlanjut sesuai
dengan perkembangan sistem yang terjadi di masa depan.
Penelitian yang dilakukan menggunakan beberapa
node
untuk disiapkan sebagai MySQL
Server
.
Node
merupakan bagian dari
server
yang menjalankan sistem operasinya sendiri dan bekerja sama dengan
node
yang lain untuk menangani suatu
request
dari
client
. Pada
node
yang telah disiapkan kemudian dilakukan pengukuran kinerja, dengan melakukan akses melalui
client
yang melewati bagian
Load Balancer
.
Load Balancer
merupakan sebuah bagian dari
server
yang diletakkan sebagai penghubung antara
client
dengan MySQL
Server
, dengan fungsi untuk membagikan beban
request
yang diterima kepada seluruh
node
yang aktif.
Node
yang aktif diberi nama ds1, ds2, ds3, dan ds4. Sinkronisasi data yang terjadi pada MySQL
Server
dilakukan dengan menggunakan
Replication
.
Replication
atau replikasi merupakan sistem sinkronisasi yang terintegrasi di MySQL
Server
yang terdiri dari
Master
dan
Slave
.
Master
merupakan acuan
database
yang akan direplikasi oleh
Slave
. Sedangkan Slave merupakan
node
yang akan melakukan replikasi sesuai dengan perubahan data pada
Master
. Untuk tahap
Prepare
, arsitektur pada sistem yang dibuat adalah sistem yang menghubungkan
client
dan
server
dengan melewati sebuah
node
yang berfungsi sebagai
load balancer
. Kebutuhan
software
pada jaringan adalah Sistem Operasi,
Load Balancer
, MySQL
server
, SSH
client
. Pengukuran dilakukan dalam 3 tahap, tahap untuk mengukur kinerja
server
dengan 2
node
, dengan 3
node
, dan 4
node
.
Database
yang akan digunakan untuk pengukuran adalah data informasi seluruh Sekolah Kabupaten Semarang.
Untuk tahap
Plan
, kebutuhan sistem adalah
software
pengukuran kinerja yang akan diletakkan pada
client
, dan sistem replikasi pada MySQL
server
.
Prepare Plan
Design
Implement Operate
Optimize
4
Untuk tahap
Design
,
software
yang akan dipakai adalah HAProxy sebagai
Load Balancer
, Debian sebagai sistem operasi, Sysbench sebagai
software
pengukuran kinerja. Arsitektur jaringan disesuaikan dengan kebutuhan sistem pada masing-masing pengukuran.
Gambar 2 Skema Replikasi 2 Node.
Gambar 2 menunjukkan skema replikasi untuk pengukuran 2 node. Masing-masing
node
mereplikasi
database
satu sama lain.
Master
dari ds1 adalah ds2,
master
dari ds2 adalah ds1.
Gambar 3 Skema Replikasi 3 Node.
Gambar 3 menunjukkan skema replikasi untuk pengukuran 3
node
. Masing-masing
node
mereplikasi
database
sesuai dengan master acuannya.
Master
dari ds1 adalah ds2,
master
dari ds2 adalah ds3,
master
dari ds3 adalah ds1.
Gambar 4 Skema Replikasi 4 Node.
Gambar 4 menunjukkan skema replikasi untuk pengukuran 4
node
. Masing-masing
node
mereplikasi
database
sesuai dengan
master
acuannya.
Master
dari ds1 adalah ds2,
master
dari ds2 adalah ds3,
master
dari ds3 adalah ds4,
master
dari ds4 adalah ds1. Untuk tahap
Implement
, sistem dibagi menjadi 3 bagian, yaitu :
client
,
front-end
, dan
back-end
.
Client
dibangun secara
virtual
dengan spesifikasi prosesor Intel i5 1.7GHz, 512MB RAM, 8GB
harddisk
.
Front-end
yang berfungsi sebagai
Load Balancer
dibangun secara
virtual
dengan spesifikasi prosesor Intel i5 1.7GHz, 512MB RAM, 8GB
harddisk
.
Back-end
yang berfungsi sebagai
database server
dibangun secara fisik dengan spesifikasi prosesor Intel Pentium IV 3.0GHz, 512MB RAM, dan 40GB
harddisk
.
Software
yang diletakkan pada
client
adalah sistem operasi Debian, SSH
client
, dan Sysbench.
Software
yang diletakkan pada
front-end
adalah sistem operasi Debian, SSH
client
, Samba
Client
, dan HAProxy.
Software
yang diletakkan pada
back-end
adalah sistem
ds1 ds2
ds4 ds3
ds1 ds2
ds3 ds1
ds2
5
operasi Debian, SSH
client
, Samba
Client
, dan MySQL
server
. Gambar 5 menunjukkan arsitektur jaringan
Load Balance Cluster
.
Gambar 5 Arsitektur Jaringan Load Balance Cluster.
Gambar 5 menunjukkan bahwa arsitektur yang dipakai mengharuskan
client
melewati
front-end
untuk bisa berkomunikasi dengan
back-end
.
Front-end
yang berfungsi sebagai
load balancer
akan mengarahkan permintaan pada salah satu
node
pada bagian
back-end
. Permintaan diproses dan dikembalikan kepada
front-end
, kemudian
front-end
mengembalikan hasil permintaan pada
client
yang melakukan permintaan.
Pada
software Sysbench
juga dilakukan konfigurasi
file
untuk mengaplikasikan sistem
load balance
mencapai 4
node
. Sedangkan pada
software
MySQL dilakukan konfigurasi
master
pada file
my.cnf
dan konfigurasi
slave
pada
command line
MySQL. Untuk mengaktifkan konfigurasi
master
pada MySQL perlu dilakukan
restart service
MySQL setelah
file my.cnf
selesai dikonfigurasi. Konfigurasi
slave
dilakukan dengan mengacu pada konfigurasi
master
yang dipilih. Selain itu perlu dilakukan konfigurasi hak akses replikasi dari
node
lain dan hak akses
query
data dari
front-end
. Pada masing-masing jumlah
node
memiliki konfigurasi
master
dan
slave
yang berbeda-beda, sehingga pada setiap akhir pengukuran, perlu dilakukan konfigurasi ulang
master
dan
slave
. Untuk tahap
Operate
, dilakukan pengecekan sistem dari
client
menggunakan aplikasi Sysbench sehingga dapat diketahui apakah sistem telah bekerja dengan baik. Jika sistem telah bekerja dengan baik maka kemudian
dilakukan pengukuran kinerja terhadap sistem. Dan setelah pengukuran kinerja dilakukan pada tiap-tiap jumlah
node
, maka kemudian dilakukan perbandingan kinerja dari tiap-tiap jumlah
node
. Setelah didapatkan perbandingan jumlah kinerja dari tiap-tiap jumlah
node
, kemudian akan ditentukan pada
node
berapakah kinerja
server
dianggap optimal. Proses perbandingan kinerja dilakukan dengan langkah-langkah sebagai
berikut : Pembuatan Grafik Pengukuran Kinerja pada masing-masing jumlah
node
; Perhitungan selisih pengukuran kinerja dari 2
node
ke 3
node,
3
node
ke 4
node,
dan 2
node
ke 4
node
; Perhitungan persentase selisih pengukuran kinerja dengan membandingkan dari kinerja 2
node
; Perhitungan rata-rata dari masing- masing parameter; Dan, perhitungan Persentase keseluruhan.
Untuk tahap
Optimize
, akan ditentukan berdasarkan hasil yang diperoleh setelah tahap
Operate
selesai dilakukan.
4. Hasil dan Pembahasan