Metode RED untuk menganalisis kinerja MySQL

Terjemahan artikel disiapkan untuk mengantisipasi dimulainya kursus "Praktik dan Alat DevOps" .










Metode RED (Rate, Errors, Duration) adalah salah satu pendekatan populer untuk pemantauan kinerja. Ini sering digunakan untuk memantau layanan mikro , meskipun tidak ada yang mencegah Anda menggunakannya untuk database seperti MySQL.



Dalam Percona Monitoring and Management (PMM) v2, semua informasi yang diperlukan dikumpulkan ke dalam database ClickHouse, dan kemudian menjadi masalah teknologi untuk membuat dasbor untuk memvisualisasikan metrik menggunakan sumber data ClickHouse bawaan .



Saat membuat dashboard, selain panel untuk RED, beberapa panel tambahan juga ditambahkan untuk menunjukkan beberapa hal menarik yang dapat dilakukan dengan Grafana + ClickHouse sebagai sumber data dan informasi yang kami simpan tentang performa query MySQL.



Mari kita lihat lebih dekat dasbor.







Kami melihat panel metode RED klasik yang menampilkan Query Rate (permintaan per detik), Error Rate (kesalahan), serta rata-rata dan 99th persentil Query Latency (waktu eksekusi kueri) untuk semua node dalam sistem. Panel di bawah ini menampilkan informasi pada node tertentu, yang sangat berguna untuk membandingkan performanya. Jika salah satu node mulai bekerja secara berbeda dari node serupa lainnya, maka ini adalah alasan untuk penyelidikan.



Dengan bantuan filter ("Filter" di bagian atas dasbor) Anda hanya dapat melihat data yang Anda butuhkan. Misalnya, Anda hanya dapat memilih kueri skema "sbtest" untuk host yang terletak di wilayah "datacenter4":







Pemfilteran ad-hoc ini sangat nyaman. Anda dapat menggunakan ekspresi reguler dalam filter, mencari dengan QueryID tertentu, menganalisis kueri dari host klien tertentu, dll. Untuk deskripsi kolom yang tersedia di ClickHouse, lihat posting Analisis Kueri Lanjutan di Pemantauan dan Manajemen Percona dengan Akses Langsung ClickHouse .



Dari sebagian besar panel, Anda dapat dengan cepat membuka Analisis Kueri untuk melihat informasi mendetail tentang kinerja kueri, atau jika Anda melihat sesuatu yang tidak biasa pada salah satu host, Anda dapat melihat kueri dari host ini melalui "Tautan Data" - klik grafik dan ikuti tautan khusus:







Untuk setiap sistem secara terpisah, Anda dapat melihat metrik RED yang sama seperti untuk keseluruhan sistem secara keseluruhan. Secara default, saya akan membiarkan panel ini diminimalkan, terutama jika Anda memantau banyak host.



Kami berkenalan dengan panel metode RED. Sekarang mari kita lihat Dasbor Tambahan di dasbor ini.







Efisiensi Berbasis Baris menunjukkan berapa banyak baris yang dianalisis per baris yang dikembalikan atau diubah. Biasanya, nilai yang lebih besar dari 100 menunjukkan indeks buruk atau kueri sangat kompleks yang membaca banyak data dan hanya mengembalikan beberapa baris. Kedua kasus ini membutuhkan analisis.



Efisiensi Berbasis Waktu(efisiensi berbasis waktu) didasarkan pada matematika yang sama, tetapi lebih melihat waktu eksekusi kueri daripada jumlah baris yang dipindai. Ini memungkinkan Anda untuk mendiagnosis masalah dengan disk lambat atau permintaan yang bertentangan. Biasanya, sistem performa tinggi harus mengharapkan sepersekian milidetik untuk mengirim atau mengubah string ke klien. Kueri yang mengembalikan atau memperbarui banyak baris akan memiliki nilai yang lebih rendah.



Kueri Per Host(jumlah permintaan oleh host) berbicara sendiri dan di sebelahnya itu sangat berguna untuk melihat Query Load Per Host (load by hosts), yang menunjukkan jumlah permintaan aktif yang bersamaan. Di sini kita dapat melihat bahwa meskipun mysql4 tidak memiliki jumlah kueri tertinggi (tingkat kueri), ia memiliki beban tertinggi dan jumlah rata-rata kueri aktif tertinggi.



Berpikir tentang metrik lain apa yang mungkin berguna, saya menambahkan panel tambahan berikut:







Panel ini memisahkan Query Processing Efficiency menjadi query BACA (yang mengembalikan baris) dan query TULIS (yang memiliki row_affected).



Efisiensi Berbasis Waktu Kueri sama dengan yang dijelaskan di atas, hanya dengan penekanan pada jenis kueri tertentu.



Efisiensi pemrosesan data(efisiensi pemrosesan data) adalah tampilan yang sedikit berbeda pada data yang sama. Ini menunjukkan berapa banyak baris yang diperiksa oleh kueri versus waktu eksekusi kueri. Di satu sisi, ini menunjukkan kekuatan pemrosesan sistem. Sistem dengan banyak inti, memiliki semua data dalam memori, dapat memproses jutaan baris per detik dan melakukan banyak pekerjaan. Tapi itu tidak berarti efisiensi kueri. Faktanya, sistem yang memproses banyak data dengan cepat sering melakukan banyak pemindaian tabel lengkap.



Terakhir, ada beberapa daftar permintaan.







Kueri yang sering, kueri paling lambat (menurut waktu eksekusi rata-rata), kueri dengan beban tertinggi, dan kueri yang gagal atau gagal. Anda juga dapat melihat kueri ini di Analisis Kueri, tetapi saya ingin menunjukkannya di sini sebagai contoh.



Apakah kamu tertarik? Anda dapat menginstal dasbor di Percona Monitoring and Management (PMM) v2 dari Grafana.com .






Dari kode ke kubernetes







All Articles