Anda di halaman 1dari 7

Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer e-ISSN: 2548-964X

Vol. 5, No. 5, Mei 2021, hlm. 1907-1913 http://j-ptiik.ub.ac.id

Implementasi Self-Tuning Pada Database Dengan Menggunakan Metode


Nesterov Accelerated Gradient

Arif Rahmanto1, Agung Setia Budi2, Rakhmadhany Primananda3

Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya


Email: 1arifrahmanto280798@gmail.com, 2agungsetiabudi@ub.ac.id, 3rakhmadhany@ub.ac.id
Abstrak
Tuning adalah proses untuk meningkatkan kinerja dari database untuk mencapai tujuan yang spesifik.
Dengan proses tuning yang biasa dilakukan seorang database administrator masih dengan cara
manual, maka semakin banyak waktu yang dibutuhkan agar database siap digunakan. Untuk itu
dirancang sebuah sistem untuk melakukan proses tuning secara otomatis pada database dengan
menggunakan algoritma Nesterov accelerated gradient untuk merubah nilai dari parameter yang
mampu meningkatkan kinerja database. Sistem di implementasikan pada database MariaDB sebagai
database utama Pengujian dilakukan untuk mengubah nilai parameter yang ditetapkan sebelumnya
dan didapatkan hasil nilai parameter yang optimal setelah iterasi ke 7. Ketika dilakukan pengujian
kinerja database dengan beban yang besar, database mampu menurunkan waktu query secara
signifikan antara sebelum dan sesudah tuning. Pada query load data 1.000.000 row database, terdapat
perbedaan rata-rata waktu eksekusi antara sebelum dan sesudah tuning dengan algoritma Nesterov
accelerated gradient sebesar 1 Menit 35 Detik. Sedangkan pada query load data 1.500.000 Row
penurunan rata- rata waktu eksekusi sebesar 14 menit 26 Detik. Dari pengujian juga dapat disimpulkan
waktu eksekusi yang stabil setelah dilakukan proses tuning dengan Nesterov accelerated gradient
dengan waktu eksekusi yang dibutuhkan berkisar 24-45 detik pada pengujian load data 1.000.000 row
dan 75-120 detik pada pengujian load data 1.500.000 row.

Kata kunci: Database, Nesterov Accelerated Gradient, MariaDB, Tuning, Query


Abstract
Tuning is the process of improving the performance of the database to achieve specific goals.. With
the tuning process that is usually done by a database administrator still manually, the more time it
takes for the database to be ready for use. For this reason, a system is designed to perform the
automatic tuning of the database using the Nesterov accelerated gradient algorithm to change the
value of the parameters that can improve database performance. The system is implemented in
MariaDB database as the main database. Tests are carried out to change the previously set parameter
values and the optimal parameter values are obtained after the 7th iteration. When testing the
performance of the database with a large load, the database is able to significantly reduce the query
time between before and after tuning. In the query load data of 1,000,000 database rows, there is a
difference in the average execution time between before and after tuning with the Nesterov accelerated
gradient algorithm of 1 minute 35 seconds. Whereas in the query load data 1,500,000 Row the
average decrease in execution time is 14 minutes 26 seconds. From the test, it can also be concluded
that the execution time is stable after the tuning process is carried out with the Nesterov Accelerated
Gradient with the required execution time ranging from 24-45 seconds on testing load data of
1,000,000 rows and 75-120 seconds on testing load data of 1,500,000 rows.

Keywords: Database, Nesterov accelerated gradient, MariaDB, Tuning, Query

data yang terjadi baik data pribadi, kelompok,


1. PENDAHULUAN maupun perusahaan. Data menjadi hal yang
Semakin berkembangnya zaman, manusia tidak bisa dipisahkan dari perkembangan di
tidak bisa terlepas dari komputer dan teknologi bidang teknologi informasi. Menurut
informasi. Maka semakin banyak pula transaksi (Hutahaean, 2014), data merupakan bahan

Fakultas Ilmu Komputer


Universitas Brawijaya 1907
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1908

mentah yang menyimpan informasi dari yang dilakukan oleh seorang database
seseorang. Sedangkan menurut (Sugiyono, administrator masih dilakukan dengan
2012), data merupakan bahan mentah yang perulangan manual. Dengan mengubah nilai
perlu diolah sehingga menghasilkan suatu dari parameter-parameter yang mempengaruhi
informasi atau keterangan yang menunjukkan kinerja melalui file konfigurasi dari database
fakta sehingga dapat memberikan gambaran secara manual. Cara tersebut dirasa kurang
tentang suatu keadaan. efektif dan memakan banyak waktu dalam
Jumlah data yang semakin besar juga proses tuning hingga mencapai goal yang
membutuhkan suatu database yang andal dan maksimal. Untuk itu perlu dilakukan tuning
mampu menyimpan semua informasi. Database secara otomatis sehingga waktu yang
adalah sekumpulan informasi ataupun data yang dibutuhkan untuk tuning menjadi lebih cepat.
dapat disimpan secara terstruktur didalam Dalam penelitian sebelumnya yang
sistem komputer dan dapat diubah, diambil, dilakukan oleh (Rodd & Kulkarni, 2013) proses
maupun di modifikasi tergantung operasi proses self-tuning dilakukan dengan memanfaatkan
data (Augustyn, 2018). Biasanya, database di algoritma fuzzy dalam proses optimasi
control oleh Database Management System database. Kemudian pada penelitian yang
(DBMS). Bersama dengan data, DBMS dilakukan oleh (Karanam & Rodd, 2017),
membentuk sebuah sistem database. Untuk algoritma Fuzzy Logic dan Neural network
meningkatkan kinerja dari database terdapat digunakan untuk menentukan nilai parameter
beberapa cara untuk melakukan optimasi pada yang sesuai. Untuk itu pada penelitian ini akan
database. memperkenalkan algoritma Nesterov
Optimasi pada sebuah database dapat Accelerated Gradient sebagai metode dalam
dipengaruhi oleh beberapa faktor. Dari segi proses self-tuning database. Harapan dari
desain logika database, dengan memperhatikan penelitian ini adalah mampu memudahkan
relasi antar tabel sehingga mengurangi proses tuning bagi database administrator,
redundansi data serta menghemat tempat selain itu diharapkan penelitian ini mampu
penyimpanan database. Sedangkan dari segi menyempurnakan penelitian yang telah
fisik, seorang Database Administrator (DBA) dilakukan sebelumnya.
harus mengetahui format akses database serta
karakteristik pengoperasian sumber daya 2. PENELITIAN TERKAIT
perangkat keras terutama memori dan disk Terdapat beberapa penelitian sebelumnya
subsystem I/O (Zhang, 2016). Terdapat yang telah membahas proses self-tuning pada
beberapa cara untuk melakukan optimasi pada database. Penelitian yang dilakukan (Rodd &
sebuah database. Antara lain mengoptimasi Kulkarni, 2013), self-tuning pada database
struktur data, optimasi alokasi memori pada dilakukan dengan menjadikaan nilai dari Buffer
database, optimasi struktur fisik dari database, Hit Ratio, User Load, dan Database Size
optimasi penggunaan statement pada SQL, dll. sebagai input dari Fuzzy. Untuk kemudian
Salah satu cara yang dilakukan untuk dimasukkan nilai tersebut diubah berdasarkan
optimasi sebuah database adalah tuning. fuzzy rules yang ditentukan. Dari hasil
Tuning adalah sebuah proses iterasi untuk pengujian yang dilakukan terdapat peningkatan
meningkatkan kinerja SQL untuk mencapai kinerja sebesar 18.52% ketika dibandingkan
tujuan yang spesifik (Ashdown, 2017). Proses dengan fitur auto-tune Oracle 10g pada TCP-C
tuning dilakukan dengan cara mengubah nilai workload. Saat pengujian pada TCP-E
dari sebuah parameter pada database yang akan workload terjadi peningkatan performa sebesar
berpengaruh langsung terhadap kinerja dari 28.7% ketika dibandingkan dengan fitur auto-
suatu database. Berdasarkan penelitian yang tune Oracle.
dilakukan oleh (Debnath, et al., 2008) berkaitan
dengan parameter database terdapat beberapa (Wei, et al., 2014) pada penelitiannya
parameter yang dianggap berpengaruh secara menyempurnakan metode dan fuzzy rules yang
langsung terhadap naiknya kinerja dari sebuah digunakan dari penelitian sebelumnya. Dengn
database.Parameter yang berpengaruh antara menggunakan beberapa parameter dan indikator
lain work_memory, shared_buffers, performa ditentukan fuzzy rule untuk
maintenance_work_memory, max_connections, melakukan self-tuning. Parameter yang
effective_cache_size, dll. digunakan antara lain db_cache_size,
Namun dalam pengaplikasiannya, tuning shared_pool_size, dan pga_aggregate_target.

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1909

Sedangkan indikator performa yang digunakan dengan data uji yang sama. Data uji diambil
adalah buffer-hit cache ratio, library-cache hit dari file sampel CSV dari web eforexcel.com
ratio, share_pool_usage, dan in memory sort yang berisi data penjualan.
ratio.
3.3 Teknik Analisis dan Pembahasan
Penelitian mengenai self-tuning juga pernah
dilakukan oleh (Karanam & Rodd, 2017) Analisis dan pembahasan dilakukan setelah
dengan menggunakan neural network dan fuzzy proses pengambilan waktu eksekusi query
rules dalam proses perubahan parameter. sebelum dan sesudah tuning dengan
Sistem mengobservasi efek parameter BUFFER menggunakan Nesterov accelerated gradient.
CACHE terhadap waktu respon database. Kemudian akan dibahas bagaimana pengaruh
Sistem mengevaluasi informasi dari DBMS metode Nesterov accelerated gradient ketika
seperti BUFFER HIT RATIO, USER LOAD, diimplementasikan untuk perubahan nilai
dan AVERAGE TABLE SIZE menggunakan parameter dari database dan pengaruh tuning
fuzzy logic controller dan neural network untuk dalam meningkatkan kinerja dari database.
kemudian mengubah nilai dari parameter.
4. PERANCANGAN SISTEM
Terdapat beberapa penelitian mengenai
implementasi algoritma Nesterov Accelerated Pada bagian ini akan disampaikan
Gradient. Penelitian yang dilakukan oleh bagaimana perancangan pada sistem
(Shen, et al., 2017) mengaplikasikan algoritma Implementasi Self-tuning pada Database
NAG untuk memvisualisasikan relasi fenotipe menggunakan Metode Nesterov accelerated
pada penyakit manusia. Algoritma NAG pernah gradient agar dapat memenuhi kebutuhan
digunakan oleh (Wang, et al., 2018) untuk fungsionalnya.
rekonstruksi gambar ultrasonik. Pada program utama, terdapat 3 bagian
yang akan diuraikan yaitu Pengambilan
3. METODOLOGI Parameter dari file konfigurasi, Benchmark &
Metodologi yang akan digunakan pada Pengecekan Kondisi, dan Proses perubahan
penelitian ini disesuaikan dengan tujuan yang nilai parameter. Diagram alir program utama
ingin dicapai. Untuk alur penelitian akan dapat dilihat pada Gambar 2 dibawah ini.
diuraikan pada Gambar 1 dibawah ini.

3.1 Metode Penelitian


Dalam metode penelitian akan dijelaskan
metode dan langkah yang diambil dalam
melakukan penelitian. Alur dari metode
penelitian dapat dilihat pada Gambar 1.

Gambar 1. Alur Metode Penelitian

3.2 Teknik Pengumpulan Data


Teknik pengumpulan data dari penelitian Gambar 2. Diagram Alir Program Utama
ini untuk waktu benchmark dan waktu query
Database yang baru diinstall kemudian
adalah dengan mengambil waktu eksekusi
diambil nilai variabel parameternya dan
query load data secara langsung. Pengambilan
dimasukkan ke config file database. Kemudian
data dilakukan pada database yang sama
Fakultas Ilmu Komputer, Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1910

nilai parameter pada config file dibaca oleh Max_connection = 181


program utama untuk di inisialisasi variabel
3 Innodb_buffer_pool_size 11 detik
var1, var2, var3, dan var4. Dari nilai variabel
= 219152384,
default itu dilakukan benchmark untuk menjadi
Innodb_read_threads = 5,
acuan dalam proses perubahan nilai parameter
Innodb_write_threads = 5,
dan pengecekan kondisi. Setelah benchmark
Max_connection = 244
akan dilakukan proses query flush untuk
menghilangkan cache pada proses sebelumnya. 4 Innodb_buffer_pool_size 11 detik
Dari hasil benchmark akan dilakukan cek = 315621376,
kondisi apabila waktu benchmark sama dengan Innodb_read_threads = 8,
waktu yang diharapkan, atau proses iterasi telah Innodb_write_threads = 8,
mencapai 100 kali maka sistem akan berhenti. Max_connection = 350
Apabila kondisi tidak terpenuhi maka sistem 5 Innodb_buffer_pool_size 11 detik
akan melakukan perubahan nilai parameter = 465567744,
dengan menggunakan algoritma Nesterov Innodb_read_threads =
accelerated gradient. 12, Innodb_write_threads
= 12, Max_connection =
5. PENGUJIAN
516
Tujuan dari bab ini adalah untuk
6 Innodb_buffer_pool_size 12 detik
mengetahui seberapa besar tingkat keberhasilan
= 694157312,
dari sistem Ketika di ujicoba pada keadaan
Innodb_read_threads =
yang berbeda-beda. Pengujian dilakukan pada
18, Innodb_write_threads
laptop dengan spesifikasi prosesor Intel Core
= 18, Max_connection =
i5-7200U CPU @ 2.50GHz (4 CPU) dan
769
memori RAM sebesar 8192 MB. Database
MariaDB di instalasi pada Oracle Virtual 7 Innodb_buffer_pool_size 11 detik
Machine dengan base memory 2048MB dan 2 = 1040187392,
processor dan menggunakan Linux Oracle 64- Innodb_read_threads =
bit sebagai OS. 27, Innodb_write_threads
= 27, Max_connection =
5.1 Pengujian Tuning Database 1150
Pengujian tuning dilakukan pada database 8 Innodb_buffer_pool_size 20 detik
uji. Dari 7 iterasi yang dilakukan, waktu = 1560281088,
eksekusi berkisar 11-12 detik yang berarti Innodb_read_threads =
melebihi waktu eksekusi 1-2 detik dari waktu 41, Innodb_write_threads
yang diharapkan yaitu 10 detik. Namun pada = 41, Max_connection =
iterasi ke 8, waktu eksekusi melonjak menjadi 1724
20 detik. Jadi dapat disimpulkan nilai parameter
yang optimal pada database uji didapatkan
5.2 Pengujian Query Sebelum dan Sesudah
setelah iterasi ke 7. Proses perubahan nilai
Tuning
dapat dilihat pada Tabel 1 dibawah.
Pengujian dilakukan dengan melakukan
Tabel 5.1. Tabel Proses Perubahan Nilai
proses query load data ke dalam database
No Nilai Parameter Waktu
dengan menggunakan file sebesar 500.000 Row.
Eksekusi Perbandingan waktu eksekusi dapat dilihat pada
1 Innodb_buffer_pool_size 12 detik Tabel 2 dibawah ini.
= 134217728,
Innodb_read_threads = 4, Tabel 5.2. Hasil Pengujian Query Load Data
Innodb_write_threads = 4, No Sebelum Tuning Setelah Tuning
Max_connection = 151
1 13,619 Detik 9,746 Detik
2 Innodb_buffer_pool_size 11 detik
2 12,767 Detik 10,240 Detik
= 161480704,
Innodb_read_threads = 4, 3 12,059 Detik 10.659 Detik
Innodb_write_threads = 4,
Fakultas Ilmu Komputer, Universitas Brawijaya
Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1911

4 13,532 Detik 11,545 Detik Rata- 128 Detik 33 Detik


rata
5 14,029 Detik 10,675 Detik
Tabel 4. Waktu Eksekusi Load Data 1.500.000
Dari , terlihat penurunan waktu query load Row
data dengan kisaran penurunan 1-4 detik. Hal No 1500000 Row 1500000 Row
ini menunjukkan peningkatan performa dari Sebelum Tuning Setelah Tuning
database dalam melakukan query load data
karena perubahan nilai parameter yang 1 1037 Detik (17 120 Detik
Menit 17 Detik)
mempengaruhi kinerja query. Penurunan waktu
eksekusi dapat dilihat pada Gambar 3 dibawah 2 782 Detik (12 99 Detik
ini. Menit 52 Detik)
Gambar 3. Grafik Penurunan Waktu Query 3 925 Detik (15 92 Detik
menit 25 Detik)
Grafik Waktu Eksekusi Query
16
4 1013 Detik (16 76 Detik
Menit 53 Detik)
Waktu Eksekusi (Dalam Detik)

14
12 5 1043 Detik (17 83 Detik
10 Menit 23 Detik)
8
6 Rata- 960 Detik 94 Detik
4 rata
2
0
Pengujian Pengujian Pengujian Pengujian Pengujian
Dari tabel diatas dapat dilihat penurunan
1 2 3 4 5 waktu query load data yang sangat signifikan
pada kedua file saat sebelum dan sesudah
Sebelum Tuning Setelah Tuning
dilakukannya tuning. Pada query load data
dengan besar file 1.000.000 row, waktu
5.3 Pengujian Query dengan Besar File eksekusi query rata-rata mengalami penurunan
yang Berbeda sebesar 1 Menit 35 Detik. Sedangkan pada
query dengan besar file 1.500.000 Row terlihat
Pengujian dilakukan dengan melakukan penurunan waktu eksekusi rata-rata sebesar 14
proses load data pada database yang telah di menit 26 Detik. Grafik penurunan waktu
tuning dengan 2 ukuran file yang berbeda yaitu eksekusi masing-masing file dapat dilihat pada
1.000.000 Row dan 1.500.000 Row. Hasil Gambar 4 dan 5 dibawah ini.
pengujian dapat dilihat pada Tabel 3 dan Tabel
4 dibawah ini.
Tabel 3. Waktu Eksekusi Load Data 1.000.000
Row
No 1000000 Row 1000000 Row
Sebelum Tuning Setelah Tuning
1 144 Detik (2 Menit 24 Detik
24 Detik)
2 111 Detik (1 Menit 27 Detik
51 Detik)
3 146 Detik (2 Menit 35 Detik
26 Detik)
4 112 Detik (1 Menit 42 Detik
52 Detik)
5 130 Detik (2 Menit 37 Detik
10 Detik)

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1912

Gambar 4. Waktu Query Load Data 1.000.000 Dengan melakukan impelementasi


Row algoritma Nesterov accelerated gradient pada
Grafik Waktu Eksekusi 1.000.000 proses tuning database, peneliti mampu
Row mengubah nilai parameter yang mempengaruhi
kinerja dari database secara otomatis. Acuan
160 dari perubahan nilai parameter adalah nilai error
Waktu Eksekusi (Dalam Detik)

140 dari benchmark dengan waktu yang diharapkan.


120 Peningkatan kinerja dapat dilihat ketika
100 database yang telah dilakukan tuning dengan
80 menggunakan Nesterov accelerated gradient
60
dilakukan query load data. Pada query load data
40
dengan ukuran 500.000 row perbandingan
20
waktu eksekusi antara sebelum dan sesudah
0
Pengujian Pengujian Pengujian Pengujian Pengujian
tuning berkisar 1-3 detik. Ketika database
1 2 3 4 5 dibebankan query load data dengan ukuran
1.000.000 Row perbandingan rata-rata waktu
1000000 Row Sebelum Tuning
eksekusi antara sebelum dan sesudah tuning
1000000 Row Setelah Tuning
sebesar 95 detik. Sedangkan ketika dilakukan
load data dengan ukuran 1.500.000 Row
Gambar 5. Waktu Query Load Data 1.500.000 perbandingan rata-rata waktu eksekusi sebesar
Row 866 detik.
Grafik Waktu Eksekusi 1.500.000 7. DAFTAR PUSTAKA
Row
Ashdown, L., 2017. Oracle Database SQL
1200
Tuning Guide, 12c Release 1 (12.1).
Waktu Eksekusi (Dalam Detik)

1000
[Online]
800
Available at:
600 https://docs.oracle.com/database/121/T
400 GSQL/title.htm
200 [Accessed 31 January 2020].
0
Pengujian Pengujian Pengujian Pengujian Pengujian Augustyn, A., 2018. Britannica. [Online]
1 2 3 4 5 Available at:
1500000 Row Sebelum Tuning https://www.britannica.com/technology
/database
1500000 Row Setelah Tuning
[Accessed 31 January 2020].
Dari pengujian diatas juga dapat terlihat Hutahaean, J., 2014. Konsep Sistem Informasi.
waktu eksekusi yang stabil setelah proses Yogyakarta: Deepublish.
tuning dilakukan. Dari 5 pengujian yang
Karanam, K. & Rodd, S. F., 2017. Analysis of
dilakukan waktu eksekusi yang dibutuhkan
Fuzzy with Neuro-Fuzzy Approach to
untuk melakukan proses load data 1.000.000
Self-Tune Database System. Mumbai,
row berkisar antara 110- 145 detik saat sebelum
IEEE.
tuning dilakukan dan ketika dibandingkan
dengan setelah tuning waktu eksekusi berkisar Rodd, S. F. & Kulkarni, U. P., 2013. Adaptive
antara 24-45 detik. Hal ini terlihat juga pada 5 self-tuning techniques for performance
pengujian load data 1.500.000 row, dimana tuning of Database systems : A Fuzzy-
waktu eksekusi yang dibutuhkan berkisar 12-17 based approach. 2013 Second
menit saat sebelum tuning dan 75-120 detik saat International Conference on Advanced
setelah tuning Dapat disimpulkan bahwa proses Computing, Networking and Security,
tuning juga mampu menstabilkan waktu query pp. 124-129.
dari sebuah database. Shen, X. et al., 2017. Visualization of Disease
Relationships by Multiple Maps t-SNE
6. KESIMPULAN
Regularization Based on Nesterov
accelerated gradient. 2017 IEEE

Fakultas Ilmu Komputer, Universitas Brawijaya


Jurnal Pengembangan Teknologi Informasi dan Ilmu Komputer 1913

International Conference on
Bioinformatics and Biomedicine, pp.
604-607.
Sugiyono, 2012. Metode Penelitian Kuantitatif,
Kualitatif, dan R&D. 17th ed. Bandung:
Alfabeta.
Wang, H. et al., 2018. Ultrasound Image
Reconstruction Using Nesterov's
Accelerated Gradient. Sydney, IEEE.
Wei, Z., Ding, Z. & Hu, J., 2014. Self-Tuning
Performance of Database Systems
Based on Fuzzy Rules. 11th
International Conference on Fuzzy
Systems and Knowledge Discovery, pp.
194-198.
Zhang, J., 2016. Research on Database
Application Performance Optimization
Method. Tianjin, MMEBC.

Fakultas Ilmu Komputer, Universitas Brawijaya

Anda mungkin juga menyukai