Pendahuluan T1 672006230 Full text

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