Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Co monitorować w MySQL 8.0

Monitorowanie jest koniecznością we wszystkich środowiskach, a bazy danych nie są wyjątkiem. Po uruchomieniu infrastruktury bazy danych musisz mieć oko na to, co się dzieje. Monitorowanie jest koniecznością, jeśli chcesz mieć pewność, że wszystko idzie dobrze, ale także, jeśli dokonujesz niezbędnych korekt, gdy Twój system rośnie i ewoluuje. Umożliwi to identyfikowanie trendów, planowanie aktualizacji lub ulepszeń lub adekwatne reagowanie na wszelkie problemy lub błędy, które mogą się pojawić w przypadku nowych wersji, różnych celów itd.

Dla każdej technologii baz danych należy monitorować różne rzeczy. Niektóre z nich są specyficzne dla silnika bazy danych, dostawcy, a nawet konkretnej wersji, której używasz. Klastry baz danych w dużym stopniu zależą od bazowej infrastruktury, więc statystyki sieci i działania są interesujące również dla administratorów baz danych.

Podczas uruchamiania wielu systemów baz danych monitorowanie tych systemów może stać się dość uciążliwym obowiązkiem.

W tym blogu przyjrzymy się, czego potrzebujesz do monitorowania środowiska MySQL 8.0. Przyjrzymy się również funkcjom monitorowania kontroli klastra, które mogą pomóc w bezpłatnym śledzeniu stanu baz danych.

Monitorowanie systemu operacyjnego i baz danych

Podczas obserwacji klastra lub węzła bazy danych należy wziąć pod uwagę dwa główne punkty:system operacyjny i samą instancję MySQL. Musisz określić, które metryki będziesz monitorować z obu stron i jak to zrobisz. Musisz przestrzegać parametru zawsze w rozumieniu twojego systemu i powinieneś szukać zmian w modelu zachowania.

Pamiętaj, że gdy ma to wpływ na jeden z Twoich parametrów, może to mieć również wpływ na inne, co komplikuje rozwiązywanie problemu. Posiadanie odpowiedniego systemu monitorowania i ostrzegania jest niezbędne, aby maksymalnie uprościć to zadanie.

W większości przypadków będziesz musiał użyć niektórych narzędzi, ponieważ trudno jest znaleźć takie, które pokryje wszystkie pożądane dane.

Monitorowanie systemu operacyjnego

Jedną z głównych rzeczy (która jest wspólna dla wszystkich silników baz danych, a nawet dla wszystkich systemów) jest monitorowanie zachowania systemu operacyjnego. Oto kilka punktów do sprawdzenia tutaj. Poniżej znajdziesz najlepsze zasoby systemowe do obejrzenia na serwerze bazodanowym. W rzeczywistości jest to również lista pierwszych rzeczy do sprawdzenia.

Wykorzystanie procesora

Wysokie użycie procesora nie jest złą rzeczą, o ile nie osiągniesz limitu. Nadmierny procent wykorzystania procesora może stanowić problem, jeśli nie jest to typowe zachowanie. W takim przypadku istotne jest zidentyfikowanie procesu/procesów, które generują ten problem. Jeśli problemem jest proces bazy danych, musisz sprawdzić, co dzieje się w bazie danych.

Pamięć RAM lub użycie SWAP

W idealnym przypadku cała baza danych powinna być przechowywana w pamięci, ale nie zawsze jest to możliwe. Daj MySQL tyle, na ile możesz sobie pozwolić, ale zostaw wystarczająco dużo, aby inne procesy mogły działać.

Jeśli widzisz wysoką wartość tej metryki i nic się nie zmieniło w twoim systemie, prawdopodobnie musisz sprawdzić konfigurację bazy danych. Parametry takie jak shared_buffers i work_mem mogą mieć na to bezpośredni wpływ, ponieważ definiują ilość pamięci, którą można wykorzystać dla bazy danych MySQL. Swap jest przeznaczony tylko do sytuacji awaryjnych i nie powinien być używany. Upewnij się, że system operacyjny jest ustawiony tak, aby MySQL mógł decydować o użyciu wymiany.

Wykorzystanie dysku 

Wykorzystanie dysku to jeden z kluczowych wskaźników do monitorowania i alertów. Upewnij się, że zawsze masz wolne miejsce na nowe dane, pliki tymczasowe, migawki lub kopie zapasowe.

Monitorowanie twardych wartości metryk nie jest wystarczająco dobre. Nienormalny wzrost wykorzystania miejsca na dysku lub nadmierne zużycie dostępu do dysku to ważne rzeczy, które należy obserwować, ponieważ w pliku dziennika MySQL może być rejestrowanych duża liczba błędów lub kiepska konfiguracja pamięci podręcznej, która może generować istotne zużycie dostępu do dysku zamiast wykorzystanie pamięci do przetwarzania zapytań. Upewnij się, że jesteś w stanie wykryć nietypowe zachowania, nawet jeśli Twoje ostrzeżenia i krytyczne wskaźniki nie zostały jeszcze osiągnięte.

Wraz z monitorowaniem przestrzeni powinniśmy również monitorować aktywność dysku. Najważniejsze wartości do monitorowania to:

  • Żądania odczytu/zapisu
  • Długość kolejki we/wy
  • Średnie oczekiwanie na IO
  • Średni czas odczytu/zapisu
  • Przepustowość odczytu/zapisu

Możesz użyć iostat lub pt-diskstats z Percony, aby zobaczyć wszystkie te szczegóły.

Rzeczy, które mogą wpłynąć na wydajność dysku, są często związane z transferem danych zi do dysku, więc monitoruj anormalne procesy, które mogą być uruchomione przez innych użytkowników.

Średnia obciążenia

Wszystko w jednym mierniku wydajności. Zrozumienie obciążenia systemu Linux jest kluczem do monitorowania systemów zależnych od systemu operacyjnego i baz danych.

Średnia obciążenia związana z trzema wymienionymi powyżej punktami. Wysokie średnie obciążenie może być generowane przez nadmierne użycie procesora, pamięci RAM lub dysku.

Sieć

O ile nie robienie kopii zapasowych lub przesyłanie ogromnych ilości danych, nie powinno to być wąskim gardłem.

Problem z siecią może mieć wpływ na wszystkie systemy, ponieważ aplikacja nie może połączyć się (lub połączyć utraconych pakietów) z bazą danych, więc jest to istotna metryka do monitorowania. Możesz monitorować opóźnienia lub utratę pakietów, a głównym problemem może być nasycenie sieci, problem ze sprzętem lub po prostu kiepska konfiguracja sieci.

Monitorowanie bazy danych

Chociaż monitorowanie jest koniecznością, zazwyczaj nie jest bezpłatne. Wydajność bazy danych zawsze wiąże się z pewnym kosztem, w zależności od tego, ile monitorujesz, więc powinieneś unikać monitorowania rzeczy, których nie będziesz używać.

Ogólnie istnieją dwa sposoby monitorowania baz danych, z dzienników lub po stronie bazy danych przez zapytania.

W przypadku logów, aby móc z nich korzystać, musisz mieć wysoki poziom rejestrowania, który generuje wysoki dostęp do dysku i może wpływać na wydajność Twojej bazy danych.

W trybie odpytywania każde połączenie z bazą danych wykorzystuje zasoby, więc w zależności od aktywności bazy danych i przydzielonych zasobów może to również wpłynąć na wydajność.

Oczywiście w MySQL jest wiele metryk. Tutaj skupimy się na najważniejszym.

Monitorowanie aktywnych sesji

Powinieneś również śledzić liczbę aktywnych sesji i status DB up down. Często, aby zrozumieć problem, trzeba sprawdzić, jak długo działa baza danych. więc możemy to wykorzystać do wykrywania odrodzeń.

Następną rzeczą byłaby liczba sesji. Jeśli jesteś blisko limitu, musisz sprawdzić, czy coś jest nie tak, czy po prostu musisz zwiększyć wartość max_connections. Różnica w liczbie może oznaczać wzrost lub spadek połączeń. Niewłaściwe użycie puli połączeń, blokowanie lub problemy z siecią to najczęstsze problemy związane z liczbą połączeń.

Najważniejsze wartości to

  • Czas pracy
  • Wątki_połączone
  • Max_used_connections
  • Aborted_connects

Blokady bazy danych

Jeśli masz zapytanie oczekujące na inne zapytanie, musisz sprawdzić, czy to inne zapytanie jest normalnym procesem, czy czymś nowym. W niektórych przypadkach, na przykład, jeśli ktoś dokonuje aktualizacji na dużym stole, ta akcja może wpływać na normalne zachowanie bazy danych, generując dużą liczbę blokad.

Replikacja monitorowania

Kluczowe metryki do monitorowania replikacji to opóźnienie i stan replikacji. Nie tylko stan up-down, ale także lag, ponieważ ciągły wzrost tej wartości nie jest dobrym znakiem, ponieważ oznacza, że ​​slave nie jest w stanie dogonić swojego mastera.

Najczęstsze problemy to problemy z siecią, problemy z zasobami sprzętowymi lub problemy z wymiarowaniem. Jeśli napotkasz problem z replikacją, musisz wiedzieć o tym jak najszybciej, ponieważ będziesz musiał to naprawić, aby zapewnić środowisko wysokiej dostępności.

Replikację najlepiej monitorować, sprawdzając SLAVE STATUS i następujące parametry:

  • SLAVE_RUNNING
  • SLAVE_IO_Running
  • SLAVE_SQL_RUNNING
  • LAST_SQL_ERRNO
  • SECONDS_BEHIND_MASTER

Kopie zapasowe

Niestety, waniliowa edycja społecznościowa nie zawiera menedżera kopii zapasowych. Powinieneś wiedzieć, czy kopia zapasowa została ukończona i czy nadaje się do użytku. Zwykle ten ostatni punkt nie jest brany pod uwagę, ale jest to prawdopodobnie najbardziej krytyczna kontrola w procesie tworzenia kopii zapasowej. Tutaj musielibyśmy użyć zewnętrznych narzędzi, takich jak percona-xtrabackup lub ClusterControl.

Dzienniki bazy danych

Należy monitorować dziennik bazy danych pod kątem błędów, takich jak FATAL lub zakleszczenie, a nawet typowych błędów, takich jak problemy z uwierzytelnianiem lub długotrwałe zapytania. Większość błędów jest zapisywana w pliku dziennika ze szczegółowymi przydatnymi informacjami, aby to naprawić. Typowe punkty awarii, na które należy zwracać uwagę, to błędy i rozmiary plików dziennika. Lokalizację dziennika błędów można znaleźć pod zmienną log_error.

Narzędzia zewnętrzne

Ostatnie, ale nie mniej ważne, możesz znaleźć listę przydatnych narzędzi do monitorowania aktywności bazy danych.

Percona Toolkit — to zestaw narzędzi Linuksa firmy Percona do analizy aktywności MySQL i systemu operacyjnego. Znajdziesz go tutaj. Obsługuje najpopularniejsze 64-bitowe dystrybucje Linuksa, takie jak Debian, Ubuntu i Redhat.

mysqladmin - mysqladmin to program administracyjny dla demona MySQL. Może być używany do sprawdzania stanu serwera (ping), wyświetlania listy procesów, wyświetlania wartości zmiennych, ale także wykonywania pewnych prac administracyjnych, takich jak tworzenie/usuwanie baz danych, opróżnianie (resetowanie) dzienników, statystyk i tabel, zabijanie uruchomionych zapytań, zatrzymaj serwer i kontroluj replikację.

innotop — oferuje rozszerzony widok instrukcji SHOW. Jest bardzo potężny i może znacznie skrócić czas śledztwa. Wśród waniliowej obsługi MySQL można zobaczyć widok Galera i szczegóły replikacji master-slave.

mtop - monitoruje serwer MySQL pokazując zapytania, których wykonanie zajmuje najwięcej czasu. Funkcje obejmują „powiększanie” procesu w celu pokazania całego zapytania, „wyjaśnianie” informacji optymalizatora zapytań dla zapytania oraz „zabijanie” zapytań. Ponadto dostępne są statystyki wydajności serwera, informacje o konfiguracji i wskazówki dotyczące strojenia.

Mytop –  działa w terminalu i wyświetla statystyki dotyczące wątków, zapytań, wolnych zapytań, czasu pracy, obciążenia itp. w formacie tabelarycznym, bardzo podobnym do systemu Linux

Wnioski

Ten blog nie ma stanowić wyczerpującego przewodnika po tym, jak ulepszyć monitorowanie baz danych, ale miejmy nadzieję, że daje jaśniejszy obraz tego, co może stać się niezbędne, i niektóre z podstawowych parametrów, które można obserwować. Nie wahaj się dać nam znać, jeśli w komentarzach poniżej pominęliśmy jakieś ważne.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z MySQL z usługami heterogenicznymi Oracle

  2. Jak wyświetlić sortowanie tabeli w MySQL

  3. Jak zainstalować MySQL Workbench w systemie Windows

  4. Aktualizuj dane w bazie danych MySQL

  5. Jak zaimportować bazę danych za pomocą phpMyAdmin