Memantau kinerja database MySQL adalah tugas harian hampir setiap DBA MySQL. Dalam posting blog ini kami akan mencoba mendemonstrasikan cara memantau kinerja database MySQL Anda - dengan ClusterControl.
Apa yang Perlu Anda Pantau?
Secara umum, jika Anda memantau kinerja MySQL, Anda mungkin harus mempertimbangkan untuk memantau hal-hal berikut:
- Pengelolaan Kueri - memantau kinerja kueri Anda terbukti menjadi salah satu cara paling efisien untuk meningkatkan kinerja MySQL.
- Deteksi Pencilan Kueri - data historis dapat memberi tahu kita banyak hal:bahkan dapat digunakan untuk menghitung kinerja kueri yang diharapkan berdasarkan data historis, lalu membandingkan kinerja kueri saat ini dengan kinerja yang diharapkan untuk mendeteksi outlier kueri.
- Kinerja Skema Basis Data - ClusterControl dapat membantu Anda mengoptimalkan kinerja instance MySQL Anda dengan memberikan wawasan skema untuk memastikan skema Anda dioptimalkan untuk beban kerja Anda.
- Keseimbangan Beban - penyeimbang beban seperti ProxySQL, HAProxy atau MaxScale dapat membuat database Anda bekerja dengan kemampuan terbaiknya. Penyeimbang beban tersebut dapat dengan mudah diterapkan menggunakan ClusterControl.
Database Load Balancing dan Manajemen Query Menggunakan ClusterControl
ClusterControl mendukung penyeimbang beban berikut:
- HAProxy
- MariaDB MaxScale
- ProxySQL
- Keepalived (hanya alamat IP virtual)
Perhatikan bahwa ClusterControl harus berada pada node independen, terpisah dari cluster database Anda.
Sehubungan dengan manajemen kueri, ClusterControl memungkinkan Anda untuk menyerap yang berikut (Anda dapat melihat hal-hal ini setelah Anda beralih ke tab Monitor Kueri):
- Anda dapat melihat kueri paling lambat dan berjalan lama.
- Anda dapat melihat daftar kueri yang sedang berjalan.
- Anda dapat melihat daftar outlier kueri.
Tab ini memberi Anda daftar gabungan dari semua kueri teratas Anda yang berjalan di semua node cluster database Anda. ClusterControl mendapatkan informasi dengan salah satu dari dua cara berikut:
- Kueri diambil dari PERFORMANCE_SCHEMA atau
- Jika PERFORMANCE_SCHEMA dinonaktifkan atau tidak tersedia, ClusterControl akan mengurai konten Log Kueri Lambat.
Jika Log Kueri Lambat sedang digunakan, hanya kueri yang melebihi Waktu Kueri Panjang yang akan dicantumkan di sini.
Waktu Kueri Panjang mengumpulkan kueri yang membutuhkan waktu lebih lama dari Waktu Kueri Lama untuk dieksekusi (misalnya, jika Waktu Kueri Panjang 0,1, hanya kueri yang membutuhkan waktu lebih dari 0,1 detik untuk dieksekusi yang akan dicatat), “ kueri log tidak menggunakan indeks?” mengonfigurasi perilaku ClusterControl sehubungan dengan kueri tanpa indeks, dll.
Tabel kueri teratas secara otomatis disegarkan setiap 30 detik (kecepatan penyegaran dapat diubah). Kolom tabel kueri teratas berisi daftar kueri sampel, nama database, jumlah total kemunculan kueri, jumlah baris yang terlibat dalam operasi, jumlah tabel sementara yang dibuat untuk kueri tertentu, dll. - daftar kueri teratas gabungan juga dapat diurutkan berdasarkan Waktu Kejadian atau Waktu Eksekusi untuk menampilkan kueri yang paling umum atau paling lambat.
ClusterControl juga memungkinkan Anda melihat daftar kueri yang sedang berjalan. Halaman ini juga otomatis di-refresh setiap 30 detik dan menampilkan:
- Server MySQL tempat proses diambil.
- ID koneksi.
- Nama database.
- Pengguna MySQL yang mengeluarkan pernyataan.
- Waktu eksekusi thread MySQL dalam hitungan detik.
- Nama host klien yang mengeluarkan pernyataan.
- Jenis perintah yang dijalankan oleh thread.
- Status utas (seperti yang dijelaskan dalam dokumentasi MySQL)
Laman outlier kueri menampilkan kueri yang dianggap sebagai "pencilan". Dengan kata lain, halaman ini menampilkan semua kueri yang membutuhkan lebih banyak waktu untuk dieksekusi daripada kueri normal jenis itu, yang lebih lama didefinisikan sebagai penyimpangan latensi 2 sigma + waktu_kueri_rata-rata. Halaman ini menampilkan:
- Waktu yang tepat untuk menangkap kueri.
- Kueri itu sendiri.
- Waktu yang dibutuhkan kueri SQL untuk dieksekusi.
- Rata-rata waktu eksekusi kueri SQL.
- Waktu eksekusi standar deviasi (mikrodetik).
- Waktu eksekusi maksimum kueri (mikrodetik).
- Waktu penguncian kueri (mikrodetik).
Tab monitor kueri menyediakan ringkasan pemrosesan kueri di semua node di kelompok.
Ringkasan
Ketika datang untuk memantau kinerja database MySQL Anda, ClusterControl dapat melakukan keajaiban. ClusterControl dapat membuat penerapan penyeimbang beban menjadi sederhana, dapat membantu Anda mengelola kueri dengan mudah dan memantau kinerjanya, ClusterControl juga dapat menghitung kinerja kueri yang diharapkan berdasarkan data historis.