MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Tips untuk Memantau Cluster MariaDB

Dalam posting blog sebelumnya, kami telah membahas topik untuk Memantau Cluster Galera Anda apakah itu MySQL atau MariaDB. Meskipun versi teknologinya tidak jauh berbeda, MariaDB Cluster memiliki beberapa perubahan besar sejak versi 10.4.2. Dalam versi ini mendukung Galera Cluster 4 dan memiliki beberapa fitur baru yang hebat yang akan kita lihat di posting blog ini.

Untuk pemula yang belum terbiasa dengan MariaDB Cluster,  adalah cluster multi-master yang hampir sinkron untuk MariaDB. Ini hanya tersedia di Linux, dan hanya mendukung mesin penyimpanan XtraDB/InnoDB (walaupun ada dukungan eksperimental untuk MyISAM - lihat variabel sistem wsrep_replicate_myisam).

Perangkat lunak ini adalah teknologi paket yang didukung oleh Server MariaDB,  patch MySQL-wsrep untuk Server MySQL dan Server MariaDB yang dikembangkan oleh Codership (mendukung OS mirip-Unix), dan pustaka penyedia wsrep Galera.

Anda dapat membandingkan produk ini dengan MySQL Group Replication atau dengan MySQL InnoDB Cluster, yang bertujuan untuk menyediakan ketersediaan tinggi. (Meskipun mereka berbeda dalam prinsip dan pendekatan untuk memberikan HA.) 

Sekarang setelah kita membahas dasar-dasarnya, di blog ini kita akan memberikan tips yang menurut kami bermanfaat saat memantau Cluster MariaDB Anda.

Inti dari Cluster MariaDB

Saat Anda mulai menggunakan MariaDB Cluster, Anda harus mengidentifikasi apa sebenarnya tujuan Anda dan mengapa Anda memilih MariaDB Cluster sejak awal. Pertama Anda harus mencerna apa saja fitur dan manfaatnya saat menggunakan MariaDB Cluster. Alasan untuk mengidentifikasi ini adalah karena pada dasarnya itulah yang harus dipantau dan diperiksa agar Anda dapat menentukan kinerja, kondisi kesehatan normal, dan apakah berjalan sesuai dengan rencana Anda.

Pada dasarnya, ini diidentifikasi sebagai tidak ada jeda budak, tidak ada transaksi yang hilang, skalabilitas baca, dan latensi klien yang lebih kecil. Lalu bisa timbul pertanyaan seperti, bagaimana caranya agar tidak terjadi slave lag, atau transaksi hilang? Bagaimana cara membaca menjadi skalabel atau dengan latensi yang lebih kecil di sisi klien? Area ini adalah salah satu area utama yang perlu Anda perhatikan dan pantau terutama untuk penggunaan produksi berat.

Meskipun MariaDB Cluster sendiri dapat dikustomisasi. Menerapkan perubahan pada perilaku default seperti pc.weight atau pc.ignore_quorum, atau bahkan menggunakan multicast dengan UDP untuk sejumlah besar node, dapat memengaruhi cara Anda memantau sifat Cluster MariaDB Anda. Namun di sisi lain, variabel status yang paling penting biasanya adalah lapisan perak Anda di sini mengetahui status dan aliran cluster Anda baik-baik saja atau penurunannya menunjukkan kemungkinan masalah yang mengarah ke kegagalan bencana sebelumnya.

Selalu Pantau Aktivitas Server Anda (Jaringan, Disk, Beban, Memori, &CPU)

Memantau aktivitas server Anda juga bisa menjadi tugas yang kompleks jika Anda memiliki tumpukan yang sangat rumit yang terjalin dalam arsitektur database Anda. Namun, untuk Cluster MariaDB, selalu yang terbaik adalah membuat node Anda selalu disiapkan sededicat namun sesederhana mungkin. Meskipun itu tidak membatasi Anda untuk menggunakan semua sumber daya cadangan, di bawah ini adalah area utama umum yang harus Anda perhatikan.

Jaringan

Galera Cluster 4 menampilkan replikasi streaming sebagai salah satu fitur utama dan perubahan dari versi sebelumnya. Karena replikasi streaming mengatasi kekurangan yang ada pada rilis sebelumnya tetapi memungkinkannya untuk mengelola lebih dari 2GB set tulis sejak Galera Cluster 4. Ini memungkinkan transaksi besar terfragmentasi dan sangat disarankan untuk mengaktifkan ini selama level sesi saja. Ini berarti, memantau aktivitas jaringan Anda sangat penting dan krusial untuk aktivitas normal Cluster MariaDB Anda. Ini akan membantu Anda mengidentifikasi node mana yang memiliki lalu lintas jaringan paling banyak atau tertinggi berdasarkan periode waktu.

Jadi, bagaimana hal itu akan membantu Anda meningkatkan di mana node dengan lalu lintas jaringan tertinggi telah diidentifikasi? Nah, ini memberi Anda ruang untuk perbaikan dengan topologi database Anda atau lapisan arsitektur cluster database Anda. Menggunakan penyeimbang beban atau proxy basis data memungkinkan Anda untuk mengonfigurasi secara proaktif lalu lintas basis data Anda terutama saat menentukan penulisan spesifik mana yang akan menuju ke node tertentu. Katakanlah, dari 3 node, salah satunya lebih mampu menangani pertanyaan besar dan besar karena perbedaan dengan spesifikasi perangkat keras. Hal ini memungkinkan Anda untuk mengelola lebih banyak belanja modal dan meningkatkan perencanaan kapasitas Anda saat tuntutan pada periode waktu tertentu berubah.

Disk

Karena aktivitas jaringan juga penting dengan kinerja disk Anda terutama selama waktu pembilasan. Ini juga yang terbaik untuk menentukan bagaimana waktu komitmen dan kinerja pengambilan saat beban puncak tinggi tercapai. Ada kalanya Anda menyimpan host database Anda dengan tidak hanya didedikasikan untuk aktivitas Galera Cluster tetapi juga menggabungkan dengan alat lain seperti buruh pelabuhan, proxy SQL seperti ProxySQL atau MaxScale. Ini memberi Anda kontrol dengan server beban rendah dan memungkinkan Anda untuk menggunakan sumber daya cadangan yang tersedia yang dapat digunakan untuk tujuan bermanfaat lainnya terutama untuk tumpukan arsitektur database Anda. Setelah Anda dapat menentukan node mana pada pemantauan yang memiliki beban terendah tetapi masih mampu mengelola penggunaan IO disk-nya, maka Anda dapat memilih node tertentu sambil menonton dari waktu ke waktu. Sekali lagi, ini masih memberi Anda manajemen yang lebih baik dengan perencanaan kapasitas Anda.

CPU, Memori, dan Aktivitas Muat

Izinkan saya menjelaskan secara singkat ketiga area ini untuk dilihat saat memantau. Di bagian ini, sebaiknya Anda memiliki observabilitas yang lebih baik dari area berikut sekaligus. Ini lebih cepat dan lebih mudah dipahami, terutama mengesampingkan hambatan kinerja atau mengidentifikasi bug yang menyebabkan node Anda macet dan yang juga dapat memengaruhi node lain dan kemungkinan turun ke cluster.

Jadi, bagaimana CPU, memori, dan aktivitas beban saat pemantauan membantu Cluster MariaDB Anda? Nah, seperti yang saya sebutkan di atas, itu adalah salah satu dari sedikit hal yang menjadi faktor besar untuk pemeriksaan rutin harian. Sekarang, ini juga membantu Anda mengidentifikasi apakah ini kejadian berkala atau acak. Jika berkala, ini mungkin terkait dengan pencadangan yang berjalan di salah satu node Galera Anda, atau itu adalah kueri besar yang memerlukan pengoptimalan. Misalnya, kueri buruk tanpa indeks yang tepat, atau penggunaan pengambilan data yang tidak seimbang seperti melakukan perbandingan string untuk string yang begitu besar. Itu tidak dapat disangkal tidak dapat diterapkan untuk database tipe OLTP seperti MariaDB Cluster terutama jika itu benar-benar sifat dan persyaratan aplikasi Anda. Lebih baik gunakan alat analitik lain seperti MariaDB Columnstore, atau alat pemrosesan analitik pihak ketiga lainnya (Apache Spark, Kafka, atau MongoDB, dll.) untuk pengambilan data string besar dan/atau pencocokan string.

Jadi dengan semua area utama ini dipantau, pertanyaannya adalah, bagaimana hal itu akan dipantau? Itu harus dipantau setidaknya per menit. Dengan pemantauan yang disempurnakan, yaitu metrik kolektif per detik dapat menjadi sumber daya yang intensif dan sangat rakus dalam hal sumber daya Anda. Meskipun kolektivitas setengah menit dapat diterima terutama jika data dan RPO (tujuan titik pemulihan) Anda sangat rendah, sehingga Anda memerlukan metrik data yang lebih terperinci dan real-time. Sangat penting bahwa Anda dapat mengawasi seluruh gambaran cluster database Anda. Selain itu, yang terbaik dan penting adalah setiap kali metrik apa yang Anda pantau, Anda memiliki alat yang tepat untuk menarik perhatian Anda saat ada bahaya atau bahkan hanya peringatan. Menggunakan alat yang tepat seperti ClusterControl membantu Anda mengelola area utama ini untuk dipantau. Saya menggunakan versi gratis atau edisi komunitas dari ClusterControl dan membantu saya memantau node saya tanpa kerumitan dari instalasi hingga pemantauan node hanya dengan beberapa klik. Misalnya, lihat tangkapan layar di bawah ini:

Tampilan adalah gambaran umum yang lebih halus dan cepat tentang apa yang terjadi saat ini. Grafik yang lebih terperinci juga dapat digunakan,

atau dengan model data yang lebih kuat dan kaya yang juga mendukung bahasa kueri dapat memberikan Anda analisis tentang bagaimana kinerja Klaster MariaDB Anda berdasarkan data historis yang membandingkan kinerjanya secara tepat waktu. Misalnya,

Itu hanya memberi Anda lebih banyak metrik yang terlihat. Jadi, Anda melihat betapa pentingnya memiliki alat yang tepat saat memantau Cluster MariaDB Anda.

Pastikan Pemantauan Kolektif terhadap Variabel Statistik Cluster MariaDB Anda

Dari waktu ke waktu, tidak dapat dihindari bahwa versi MariaDB Cluster akan menghasilkan statistik baru untuk memantau atau meningkatkan sifat pemantauan database dengan menyediakan lebih banyak variabel status dan menyempurnakan nilai untuk dilihat. Seperti yang telah saya sebutkan di atas, saya menggunakan ClusterControl untuk memantau node saya di blog contoh ini. Namun, itu tidak berarti itu adalah alat terbaik di luar sana. Maksud saya PMM dari Percona sangat kaya dalam hal pemantauan kolektif untuk setiap variabel statistik yang setiap kali MariaDB Cluster memiliki variabel statistik yang lebih baru untuk ditawarkan, Anda dapat memanfaatkan ini dan juga mengubahnya karena PMM adalah alat sumber terbuka. Merupakan keuntungan besar bahwa Anda juga memiliki semua visibilitas Cluster MariaDB Anda karena setiap aspek diperhitungkan terutama dalam database berbasis produksi yang melayani ratusan ribu permintaan per menit.

Tapi mari kita bahas lebih spesifik masalahnya di sini. Apa saja variabel statistik yang harus diperhatikan? Ada banyak hal yang dapat diandalkan untuk Cluster MariaDB tetapi dengan fokus lagi pada fitur dan manfaat yang kami yakini Anda menggunakan Cluster MariaDB apa yang ditawarkannya, maka kami akan fokus ke dalamnya.

Kluster Galera - Kontrol Aliran

Kontrol aliran Klaster MariaDB Anda memberi Anda gambaran umum tentang bagaimana kinerja replikasi di seluruh klaster. Proses replikasi di Galera Cluster menggunakan mekanisme umpan balik, yang berarti memberi sinyal ke seluruh node dalam cluster tersebut dan menandai apakah node harus menjeda atau melanjutkan replikasi sesuai dengan kebutuhannya. Ini juga mencegah setiap node tertinggal terlalu jauh saat yang lain menerapkan transaksi masuk. Ini adalah bagaimana kontrol aliran berfungsi sebagai fungsinya di dalam Galera. Sekarang, ini harus dilihat dan tidak boleh diabaikan saat memantau Cluster MariaDB Anda. Ini, seperti yang disebutkan dalam salah satu manfaat menggunakan MariaDB Cluster adalah menghindari lag budak. Meskipun itu terlalu naif untuk memahami tentang kontrol aliran dan kelambatan budak, tetapi dengan kontrol aliran, itu akan memengaruhi kinerja cluster Galera Anda ketika ada banyak antrian dan komit atau pembilasan halaman ke disk menjadi sangat rendah untuk masalah disk seperti itu atau hanya saja kueri yang dijalankan adalah kueri yang buruk. Jika Anda seorang pemula tentang cara kerja Galera, Anda mungkin tertarik membaca postingan eksternal ini tentang apa itu kontrol aliran di Galera.

Byte yang Dikirim/Diterima

Byte yang dikirim atau diterima berkorelasi dengan aktivitas jaringan dan bahkan merupakan salah satu area utama untuk terlihat berdampingan dengan kontrol aliran. Ini memungkinkan Anda untuk menentukan node mana yang paling terpengaruh atau dikaitkan dengan masalah kinerja yang dialami dalam Cluster Galera Anda. Ini sangat penting karena Anda dapat memeriksa apakah ada penurunan dalam hal perangkat keras seperti perangkat jaringan Anda atau perangkat penyimpanan yang mendasarinya sehingga sinkronisasi halaman kotor dapat memakan waktu terlalu lama.

Pemuatan Cluster

Nah, ini lebih merupakan aktivitas basis data tentang seberapa banyak perubahan atau pengambilan data yang telah ditanyakan atau dilakukan sejauh ini sejak waktu aktif server. Ini membantu Anda mengesampingkan jenis kueri apa yang paling memengaruhi kinerja klaster database Anda. Hal ini memungkinkan Anda untuk memberikan ruang untuk perbaikan terutama pada keseimbangan beban permintaan database Anda. Menggunakan ProxySQL membantu Anda di sini dengan pendekatan yang lebih halus dan terperinci untuk perutean kueri. Meskipun MaxScale juga menawarkan fitur ini, ProxySQL memiliki lebih banyak perincian meskipun juga memberikan beberapa dampak kinerja atau biaya. Dampak datang ketika Anda hanya memiliki satu ProxySQL sebagai proxy SQL untuk mengerjakan perutean kueri dan dapat mengalami kesulitan saat lalu lintas tinggi sedang berlangsung. Memiliki biaya, jika Anda menambahkan lebih banyak node ProxySQL untuk menyeimbangkan lebih banyak lalu lintas yang mendasari KeepAlived. Meskipun, ini adalah kombo yang sempurna tetapi dapat dijalankan dengan biaya rendah hingga dibutuhkan. Namun, bagaimana Anda dapat menentukan jika diperlukan, bukan? Itulah pertanyaan yang tersisa di sini, jadi perhatian yang tajam untuk memantau area utama ini sangat penting, tidak hanya untuk pengamatan, tetapi juga untuk peningkatan kinerja klaster database Anda seiring berjalannya waktu.

Dengan demikian, ada banyak sekali variabel yang dapat dilihat di Cluster MariaDB. Hal terpenting di sini yang harus Anda perhitungkan adalah alat yang Anda gunakan untuk memantau klaster basis data Anda. Seperti yang disebutkan sebelumnya, saya lebih suka menggunakan lisensi versi gratis dari ClusterControl (Edisi Komunitas) di sini, di blog ini karena memberikan saya lebih banyak cara dengan fleksibilitas untuk dilihat di Galera Cluster. Lihat contoh di bawah ini,

Saya telah menandai atau melingkari merah pada tab yang memungkinkan saya untuk mengawasi secara visual kesehatan Cluster MariaDB saya. Katakanlah, jika aplikasi Anda serakah menggunakan replikasi streaming dari waktu ke waktu dan mengirimkan sejumlah besar fragmen (transfer jaringan besar) untuk antar-aktivitas cluster, yang terbaik adalah menentukan seberapa baik node Anda dapat menangani stres. Terutama selama stress testing sebelum mendorong perubahan spesifik dalam aplikasi Anda, yang terbaik adalah mencoba dan menguji untuk menentukan manajemen kapasitas produk aplikasi Anda dan menentukan apakah node dan desain database Anda saat ini dapat menangani beban persyaratan aplikasi Anda.

Bahkan pada ClusterControl edisi komunitas, saya dapat mengumpulkan hasil yang lebih terperinci dan lebih halus dari kesehatan Cluster MariaDB saya. Lihat di bawah,

Beginilah cara Anda mendekati pemantauan Klaster MariaDB Anda. Visualisasi yang sempurna selalu lebih mudah dan lebih cepat untuk dikelola. Ketika segala sesuatunya berjalan ke selatan, Anda tidak dapat kehilangan produktivitas Anda dan juga waktu henti dapat memengaruhi bisnis Anda. Meskipun memiliki gratis tidak memberikan Anda kemewahan dan kenyamanan saat mengelola database lalu lintas tinggi, memiliki alarm, notifikasi, dan manajemen database di satu area adalah add-on praktis yang dapat dilakukan ClusterControl.

Kesimpulan

MariaDB Cluster tidak mudah dipantau dibandingkan dengan pengaturan master-slave MySQL/MariaDB asinkron tradisional. Ini bekerja secara berbeda dan Anda harus memiliki alat yang tepat untuk menentukan apa yang terjadi dan apa yang masuk ke klaster database Anda. Selalu persiapkan perencanaan kapasitas Anda sebelum menjalankan MariaDB Cluster Anda tanpa pemantauan yang tepat sebelumnya. Sebaiknya beban dan aktivitas basis data Anda diketahui sebelum peristiwa bencana.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menangani Masalah Replikasi dari Cluster Database MariaDB non-GTID ke GTID

  2. Atur Set Karakter dan Susunan Kolom di MariaDB

  3. Mengamankan MySQL - Memanfaatkan Hak Akses Data untuk Instalasi yang Aman

  4. Bagaimana COLLATION() Bekerja di MariaDB

  5. Cara Memecahkan Masalah Basis Data MySQL