Perekaman performa Cloud SQL untuk MySQL membantu Anda mendiagnosis dan menyelesaikan masalah performa yang kompleks dan sementara di database MySQL Anda.
Saat instance Anda mengalami penurunan performa, seperti perlambatan atau penghentian database, metrik standar mungkin tidak cukup untuk menentukan penyebab utamanya. Pengambilan performa mengatasi masalah ini dengan mengambil snapshot database yang mendetail dan tepat waktu pada saat masalah terdeteksi. Anda dapat menggunakan pemicu yang dapat dikonfigurasi untuk mengambil snapshot di seluruh sistem saat masalah sementara terjadi dan untuk mendeteksi transaksi yang berjalan lama.
Contoh kasus penggunaan
Bagian ini mencantumkan contoh kasus penggunaan tentang cara menggunakan perekaman performa setelah Anda mengaktifkannya untuk instance Anda.
Mendiagnosis database yang terhenti
Masalah: Instance tidak merespons selama beberapa menit, tetapi metrik hanya menunjukkan penurunan kueri per detik (QPS) dan peningkatan koneksi.
Contoh penggunaan: Tentukan pemicu nilai minimum menggunakan runningThreadsThreshold.
Log pengambilan performa menunjukkan sejumlah besar penantian semaphore, yang mengidentifikasi pertentangan mutex tertentu (misalnya, pada indeks hash adaptif) sebagai penyebab utamanya.
Menganalisis penurunan kualitas kueri
Masalah: Performa kueri tiba-tiba menurun di seluruh sistem.
Contoh penggunaan: Log perekaman performa mengungkapkan satu transaksi yang berjalan lama yang mengakumulasi sejumlah besar log urung. Log mengidentifikasi transaksi yang berjalan lama, pengguna, dan teks kueri.
Menyelidiki jeda replikasi
Masalah: Replika baca tertinggal jauh dari sumbernya.
Contoh penggunaan: Anda mengonfigurasi nilai pemicu
batas tinggi untuk secondsBehindSourceThreshold. Anda dapat memeriksa log perekaman performa untuk menunjukkan GTID spesifik yang menyebabkan jeda.
Mengelola transaksi yang berjalan lama
Masalah: Tugas batch atau kueri pengguna berjalan dalam waktu yang terlalu lama, sehingga menahan kunci.
Contoh penggunaan: Anda mengonfigurasi pemicu batas
untuk transactionDurationThreshold.
Log perekaman performa mengidentifikasi transaksi yang melebihi nilai minimum. Anda dapat menggunakan informasi ini untuk melakukan penyelidikan.
Cara data performa dicatat
Perekaman performa beroperasi sebagai layanan berbasis agen yang memantau instance Anda. Saat Anda mengaktifkan pengambilan performa, instance Cloud SQL Anda akan melakukan hal berikut untuk mengambil data performa:
Agen menyelidiki konfigurasi database Anda untuk membaca pemicu yang telah Anda tentukan. Kemudian, agen akan menyelidiki metrik database Anda pada interval yang dapat dikonfigurasi, yang secara default disetel ke 30 detik.
Jika masalah terdeteksi dan batas pemicu telah terlampaui, agen akan terus membandingkan status aktif database dengan aturan Anda. Untuk mencegah alarm palsu dari lonjakan sementara, agen memicu pengambilan performa penuh hanya jika mendeteksi masalah untuk sejumlah probe berturut-turut. Misalnya, agen dapat memicu perekaman performa jika mendeteksi bahwa jumlah thread tinggi untuk tiga pemeriksaan berturut-turut.
Saat perekaman performa dipicu, agen akan terhubung ke database dan menjalankan serangkaian perintah diagnostik untuk merekam snapshot mendetail.
Informasi yang diambil diformat menjadi entri log dan dikirim langsung ke Cloud Logging project untuk instance Cloud SQL di bawah aliran log tertentu yang bernama
mysql-performance-capture.log.
Pemicu yang dapat dikonfigurasi
Anda dapat mengonfigurasi pemicu berikut untuk pengambilan performa:
runningThreadsThreshold: dipicu saat jumlah thread aktif yang berjalan di instance utama melebihi nilai yang ditentukan. Misalnya, Anda dapat mengonfigurasi nilai minimum untuk menjalankan pengambilan performa jika jumlah thread yang berjalan aktif lebih tinggi dari 100.secondsBehindSourceThreshold: pemicu untuk replika saat jeda replikasi melebihi jumlah detik yang ditentukan. Misalnya, Anda dapat mengonfigurasi nilai minimum untuk menjalankan pengambilan performa jika jeda replika baca lebih dari 300 detik.transactionDurationThreshold: memicu logging untuk setiap transaksi yang berjalan lebih lama dari durasi yang ditentukan. Misalnya, Anda dapat menyiapkan pemicu untuk mencatat setiap transaksi tunggal yang berjalan selama lebih dari 10 menit.
Periode tunggu setelah perekaman performa
Untuk mencegah logging yang berlebihan dan overhead sistem selama peristiwa performa yang berkelanjutan, pengambilan performa menerapkan periode tunggu 30 menit setelah pengambilan snapshot berhasil. Periode tunggu ini diaktifkan secara otomatis untuk mencegah agen memicu pengambilan baru yang berlebihan saat sistem berada dalam status masalah yang diperpanjang.
Harga
Perekaman performa menyimpan log di Cloud Logging, yang dapat menimbulkan biaya penyimpanan tambahan.
Untuk mengetahui informasi selengkapnya tentang harga penyimpanan log di Logging, lihat Harga.
Batasan
- Anda harus mengaktifkan insight kueri untuk menggunakan pengambilan performa. Jika Anda menonaktifkan insight kueri, Anda juga akan menonaktifkan pengambilan performa.
- Perekaman performa hanya tersedia untuk Cloud SQL untuk MySQL 5.7 dan yang lebih baru.