Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa yang Harus Dipantau di MySQL 8.0

Pemantauan adalah suatu keharusan di semua lingkungan, dan database tidak terkecuali. Setelah infrastruktur database Anda aktif dan berjalan, Anda harus mengawasi apa yang terjadi. Pemantauan adalah suatu keharusan jika Anda ingin memastikan semuanya berjalan dengan baik, tetapi juga jika Anda membuat penyesuaian yang diperlukan saat sistem Anda tumbuh dan berkembang. Itu akan memungkinkan Anda untuk mengidentifikasi tren, merencanakan peningkatan atau peningkatan, atau bereaksi secara memadai terhadap masalah atau kesalahan apa pun yang mungkin muncul dengan versi baru, tujuan yang berbeda, dan sebagainya.

Untuk setiap teknologi database, ada hal yang berbeda untuk dipantau. Beberapa di antaranya khusus untuk mesin database, vendor, atau bahkan versi tertentu yang Anda gunakan. Cluster basis data sangat bergantung pada infrastruktur yang mendasarinya, sehingga statistik jaringan dan operasi juga menarik untuk dilihat oleh administrator basis data.

Saat menjalankan beberapa sistem basis data, pemantauan sistem ini dapat menjadi tugas yang berat.

Di blog ini, kita akan melihat apa yang Anda butuhkan untuk memantau lingkungan MySQL 8.0. Kami juga akan melihat fitur pemantauan kontrol cluster, yang dapat membantu Anda melacak kesehatan database Anda secara gratis.

OS dan Pemantauan Sistem Basis Data

Saat mengamati cluster atau node database, ada dua poin utama yang harus diperhatikan:sistem operasi dan instance MySQL itu sendiri. Anda perlu menentukan metrik mana yang akan Anda pantau dari kedua sisi dan bagaimana Anda akan melakukannya. Anda harus selalu mengikuti parameter dalam arti sistem Anda, dan Anda harus mencari perubahan pada model perilaku.

Perhatikan bahwa ketika salah satu parameter Anda terpengaruh, hal itu juga dapat memengaruhi yang lain, membuat pemecahan masalah menjadi lebih rumit. Memiliki sistem pemantauan dan peringatan yang tepat sangat penting untuk membuat tugas ini sesederhana mungkin.

Dalam kebanyakan kasus, Anda perlu menggunakan beberapa alat, karena sulit menemukannya untuk mencakup semua metrik yang diinginkan.

Pemantauan Sistem OS

Satu hal utama (yang umum untuk semua mesin basis data dan bahkan untuk semua sistem) adalah memantau perilaku Sistem Operasi. Berikut adalah beberapa poin untuk diperiksa di sini. Di bawah ini Anda dapat menemukan sumber daya sistem teratas untuk ditonton di server basis data. Ini sebenarnya juga daftar hal pertama yang harus diperiksa.

Penggunaan CPU

Penggunaan CPU yang tinggi bukanlah hal yang buruk selama Anda tidak mencapai batasnya. Persentase penggunaan CPU yang berlebihan bisa menjadi masalah jika itu bukan perilaku biasa. Dalam hal ini, penting untuk mengidentifikasi proses/proses yang menghasilkan masalah ini. Jika masalahnya adalah proses database, Anda perlu memeriksa apa yang terjadi di dalam database.

Memori RAM atau Penggunaan SWAP

Idealnya, seluruh database Anda harus disimpan dalam memori, tetapi ini tidak selalu memungkinkan. Berikan MySQL sebanyak yang Anda mampu, tetapi biarkan proses lain berfungsi.

Jika Anda melihat nilai tinggi untuk metrik ini dan tidak ada yang berubah di sistem Anda, Anda mungkin perlu memeriksa konfigurasi database Anda. Parameter seperti shared_buffers dan work_mem dapat memengaruhi ini secara langsung karena parameter tersebut menentukan jumlah memori yang dapat digunakan untuk database MySQL. Swap hanya untuk keadaan darurat, dan tidak boleh digunakan, pastikan Anda juga mengatur sistem operasi Anda untuk membiarkan MySQL memutuskan penggunaan swap.

Penggunaan Disk 

Penggunaan disk adalah salah satu metrik utama yang harus dipantau dan diwaspadai. Pastikan Anda selalu memiliki ruang kosong untuk data baru, file sementara, snapshot, atau cadangan.

Memantau nilai metrik keras tidak cukup baik. Peningkatan abnormal dalam penggunaan ruang disk atau konsumsi akses disk yang berlebihan adalah hal penting yang harus diperhatikan karena Anda dapat memiliki sejumlah besar kesalahan yang dicatat dalam file log MySQL atau konfigurasi cache yang buruk yang dapat menghasilkan konsumsi akses disk yang vital alih-alih menggunakan memori untuk memproses kueri. Pastikan Anda dapat menangkap perilaku abnormal meskipun peringatan dan metrik kritis Anda belum tercapai.

Seiring dengan ruang pemantauan, kita juga harus memantau aktivitas disk. Nilai teratas untuk dipantau adalah:

  • Baca/Tulis permintaan
  • Panjang antrian IO
  • Rata-rata IO menunggu
  • Rata-rata waktu Baca/Tulis
  • Baca/Tulis bandwidth

Anda dapat menggunakan iostat atau pt-diskstats dari Percona untuk melihat semua detail ini.

Hal-hal yang dapat memengaruhi kinerja disk Anda sering kali terkait dengan transfer data dari dan menuju disk Anda, jadi pantau proses abnormal daripada yang dapat dimulai dari pengguna lain.

Memuat Rata-Rata

Metrik kinerja lengkap. Memahami Linux Load adalah kunci untuk memantau OS dan sistem yang bergantung pada basis data.

Memuat rata-rata yang terkait dengan tiga poin yang disebutkan di atas. Rata-rata beban yang tinggi dapat dihasilkan oleh penggunaan CPU, RAM, atau disk yang berlebihan.

Jaringan

Kecuali melakukan pencadangan atau mentransfer data dalam jumlah besar, hal itu seharusnya tidak menjadi hambatan.

Masalah jaringan dapat memengaruhi semua sistem karena aplikasi tidak dapat terhubung (atau menghubungkan paket yang hilang) ke database, jadi ini adalah metrik yang penting untuk dipantau. Anda dapat memantau latensi atau kehilangan paket, dan masalah utamanya dapat berupa saturasi jaringan, masalah perangkat keras, atau hanya konfigurasi jaringan yang buruk.

Pemantauan Basis Data

Meskipun pemantauan adalah suatu keharusan, biasanya tidak gratis. Selalu ada biaya pada kinerja database, tergantung pada seberapa banyak Anda memantau, jadi Anda harus menghindari pemantauan hal-hal yang tidak akan Anda gunakan.

Secara umum, ada dua cara untuk memantau database Anda, dari log atau dari sisi database dengan melakukan kueri.

Dalam hal log, untuk dapat menggunakannya, Anda harus memiliki tingkat logging yang tinggi, yang menghasilkan akses disk yang tinggi dan dapat mempengaruhi kinerja database Anda.

Untuk mode kueri, setiap koneksi ke database menggunakan sumber daya, jadi bergantung pada aktivitas database Anda dan sumber daya yang ditetapkan, hal itu dapat memengaruhi kinerja juga.

Tentu saja, ada banyak metrik di MySQL. Di sini kita akan fokus pada yang paling penting.

Memantau Sesi Aktif

Anda juga harus melacak jumlah sesi aktif dan status DB naik turun. Seringkali untuk memahami masalah Anda perlu melihat berapa lama database berjalan. jadi kita bisa menggunakan ini untuk mendeteksi respawn.

Hal berikutnya adalah sejumlah sesi. Jika Anda mendekati batas, Anda perlu memeriksa apakah ada yang salah atau jika Anda hanya perlu menaikkan nilai max_connections. Perbedaan jumlah tersebut dapat berupa penambahan atau pengurangan koneksi. Penggunaan penyatuan koneksi, penguncian, atau masalah jaringan yang tidak tepat adalah masalah paling umum yang terkait dengan jumlah koneksi.

Nilai kunci di sini adalah

  • Waktu beroperasi
  • Utas_terhubung
  • Max_used_connections
  • Aborted_connects

Pengunci Basis Data

Jika Anda memiliki kueri yang menunggu kueri lain, Anda perlu memeriksa apakah kueri lain tersebut merupakan proses normal atau sesuatu yang baru. Dalam beberapa kasus, jika seseorang membuat pembaruan pada tabel besar, misalnya, tindakan ini dapat memengaruhi perilaku normal database Anda, menghasilkan sejumlah besar kunci.

Memantau Replikasi

Metrik utama untuk memantau replikasi adalah lag dan status replikasi. Tidak hanya status naik turun tetapi juga lag karena peningkatan nilai yang terus-menerus bukanlah pertanda baik karena artinya budak tidak dapat mengejar tuannya.

Masalah yang paling umum adalah masalah jaringan, masalah sumber daya perangkat keras, atau masalah dimensi. Jika Anda menghadapi masalah replikasi, Anda perlu mengetahuinya secepatnya karena Anda harus memperbaikinya untuk memastikan lingkungan ketersediaan tinggi.

Replikasi paling baik dipantau dengan memeriksa SLAVE STATUS dan parameter berikut:

  • SLAVE_RUNNING
  • SLAVE_IO_Running
  • SLAVE_SQL_RUNNING
  • LAST_SQL_ERRNO
  • SECONDS_BEHIND_MASTER

Cadangan

Sayangnya, edisi komunitas vanilla tidak disertakan dengan pengelola cadangan. Anda harus tahu apakah pencadangan telah selesai, dan apakah itu dapat digunakan. Biasanya, poin terakhir ini tidak diperhitungkan, tetapi ini mungkin pemeriksaan paling kritis dalam proses pencadangan. Di sini kita harus menggunakan alat eksternal seperti percona-xtrabackup atau ClusterControl.

Log Basis Data

Anda harus memantau log database untuk kesalahan seperti FATAL atau kebuntuan, atau bahkan untuk kesalahan umum seperti masalah autentikasi atau kueri yang berjalan lama. Sebagian besar kesalahan ditulis dalam file log dengan informasi terperinci yang berguna untuk memperbaikinya. Titik kegagalan umum yang perlu Anda perhatikan adalah kesalahan, ukuran file log. Lokasi log kesalahan dapat ditemukan di bawah variabel log_error.

Alat Eksternal

Terakhir namun tidak kalah pentingnya, Anda dapat menemukan daftar alat yang berguna untuk memantau aktivitas basis data Anda.

Percona Toolkit - adalah kumpulan alat Linux dari Percona untuk menganalisis aktivitas MySQL dan OS. Anda dapat menemukannya di sini. Ini mendukung distribusi Linux 64 bit paling populer seperti Debian, Ubuntu, dan Redhat.

mysqladmin - mysqladmin adalah program administrasi untuk daemon MySQL. Ini dapat digunakan untuk memeriksa kesehatan server (ping), membuat daftar proses, melihat nilai variabel, tetapi juga melakukan beberapa pekerjaan administratif seperti membuat/menjatuhkan database, menyiram (menyetel ulang) log, statistik, dan tabel, mematikan kueri yang sedang berjalan, hentikan server dan kendalikan replikasi.

innotop - menawarkan tampilan pernyataan SHOW yang diperluas. Ini sangat kuat dan secara signifikan dapat mengurangi waktu investigasi. Di antara dukungan vanilla MySQL, Anda dapat melihat tampilan Galera dan detail replikasi Master-slave.

mtop - memantau server MySQL yang menampilkan kueri yang membutuhkan waktu paling lama untuk diselesaikan. Fitur termasuk 'memperbesar' proses untuk menampilkan kueri lengkap, 'menjelaskan' informasi pengoptimal kueri untuk kueri, dan 'membunuh' kueri. Selain itu, statistik kinerja server, informasi konfigurasi, dan tip penyetelan juga disediakan.

Mytop -  berjalan di terminal dan menampilkan statistik tentang rangkaian pesan, kueri, kueri lambat, waktu aktif, pemuatan, dll. dalam format tabel, sangat mirip dengan Linux

Kesimpulan

Blog ini tidak dimaksudkan sebagai panduan lengkap tentang cara meningkatkan pemantauan basis data, tetapi diharapkan memberikan gambaran yang lebih jelas tentang hal-hal apa saja yang penting dan beberapa parameter dasar yang dapat diamati. Jangan ragu untuk memberi tahu kami jika kami melewatkan yang penting di komentar di bawah.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Manajemen akun pengguna, peran, izin, otentikasi PHP dan MySQL - Bagian 4

  2. SQL:Ulangi baris hasil beberapa kali, dan beri nomor baris

  3. Cara Mengekstrak Substring Dari String di PostgreSQL/MySQL

  4. Contoh CURRENT_TIMESTAMP – MySQL

  5. MySQL :tidak ada di GROUP BY