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

Monitorowanie wydajności MySQL za pomocą ClusterControl

Monitorowanie wydajności baz danych MySQL to codzienne zadanie prawie każdego administratora baz danych MySQL. W tym poście na blogu postaramy się zademonstrować, jak monitorować wydajność baz danych MySQL - za pomocą ClusterControl.

Co musisz monitorować?

Ogólnie rzecz biorąc, jeśli monitorujesz wydajność MySQL, prawdopodobnie powinieneś rozważyć monitorowanie następujących rzeczy:

  • Zarządzanie zapytaniami - monitorowanie wydajności zapytań może okazać się jednym z najskuteczniejszych sposobów poprawy wydajności MySQL.
  • Wykrywanie wyników odstających w zapytaniu - dane historyczne mogą nam wiele powiedzieć:można je nawet wykorzystać do obliczenia oczekiwanej wydajności zapytań na podstawie danych historycznych, a następnie porównać bieżącą wydajność zapytań z oczekiwaną wydajnością w celu wykrycia wyników odstających zapytań.
  • Wydajność schematu bazy danych - ClusterControl może pomóc zoptymalizować wydajność instancji MySQL, zapewniając wgląd w schematy, aby upewnić się, że schematy są zoptymalizowane pod kątem obciążenia.
  • Równoważenie obciążenia - Load Balancery, takie jak ProxySQL, HAProxy lub MaxScale, mogą sprawić, że Twoja baza danych będzie działać najlepiej, jak potrafi. Te systemy równoważenia obciążenia można łatwo wdrożyć za pomocą ClusterControl.

Równoważenie obciążenia bazy danych i zarządzanie zapytaniami przy użyciu ClusterControl

ClusterControl obsługuje następujące systemy równoważenia obciążenia:

  • HAProxy
  • MariaDB MaxScale
  • ProxySQL
  • Keepalived (tylko wirtualny adres IP)

Pamiętaj, że ClusterControl musi znajdować się w niezależnym węźle, oddzielonym od klastra bazy danych.

W odniesieniu do zarządzania zapytaniami, ClusterControl pozwala przyswoić następujące może zobaczyć te rzeczy po przejściu na kartę Monitor zapytań):

  • Możesz wyświetlić najczęstsze powolne i długo działające zapytania.
  • Możesz wyświetlić listę aktualnie uruchomionych zapytań.
  • Możesz wyświetlić listę wartości odstających zapytań.

Ta karta zawiera zagregowaną listę wszystkich najczęściej uruchamianych zapytań wszystkie węzły klastra bazy danych. ClusterControl uzyskuje informacje na jeden z dwóch sposobów:

  1. Zapytania są pobierane z PERFORMANCE_SCHEMA lub
  2. Jeśli PERFORMANCE_SCHEMA jest wyłączona lub niedostępna, ClusterControl przeanalizuje zawartość dziennika powolnych zapytań.

Jeżeli używany jest dziennik powolnych zapytań, w tym miejscu zostaną wyświetlone tylko zapytania, które przekraczają długi czas zapytań.

Long Query Time zbiera zapytania, których wykonanie trwa dłużej niż długi czas zapytania (na przykład, jeśli długi czas zapytania wynosi 0,1, będą rejestrowane tylko zapytania, których wykonanie trwa dłużej niż 0,1 sekundy),” logowanie zapytań nie używających indeksów?” konfiguruje zachowanie ClusterControl w odniesieniu do zapytań bez indeksów itp.

Tabela najlepszych zapytań jest automatycznie odświeżana co 30 sekund (częstotliwość odświeżania można zmienić). Kolumny tabeli topowych zapytań zawierają listę próbkowanych zapytań, nazwy baz danych, łączną liczbę wystąpień zapytań, liczbę wierszy biorących udział w operacjach, liczbę tabel tymczasowych utworzonych dla danego zapytania itp. - lista zagregowanych topowych zapytań można również uporządkować według czasu wystąpienia lub czasu wykonania, aby wyświetlić najczęstsze lub najwolniejsze zapytania.

ClusterControl umożliwia również przeglądanie listy aktualnie uruchomionych zapytań. Ta strona jest również automatycznie odświeżana co 30 sekund i wyświetla:

  • Serwer MySQL, z którego pobierany jest proces.
  • Identyfikator połączenia.
  • Nazwa bazy danych.
  • Użytkownik MySQL, który wydał oświadczenie.
  • Czas wykonania wątku MySQL w sekundach.
  • Nazwa hosta klienta wystawiającego oświadczenie.
  • Typ polecenia, które wątek wykonuje.
  • Stan wątku (jak wyjaśniono w dokumentacji MySQL)

Strona wyników odstających zapytań zawiera zapytania, które są uważane za „odstające”. Innymi słowy, ta strona pokazuje wszystkie zapytania, których wykonanie zajmuje więcej czasu niż zwykłe zapytanie tego typu, które jest już definiowane jako odchylenie opóźnienia wynoszące 2 sigma + średni_czas_zapytania. Ta strona wyświetla:

  • Dokładny czas przechwycenia zapytania.
  • Sama zapytanie.
  • Czas wykonania zapytania SQL.
  • Średni czas wykonania zapytania SQL.
  • Czas wykonania odchylenia standardowego (mikrosekundy).
  • Maksymalny czas wykonania zapytania (mikrosekundy).
  • Czas blokady zapytania (mikrosekundy).

Karta monitora zapytań zawiera podsumowanie przetwarzania zapytań we wszystkich węzłach klaster.

Podsumowanie

Jeśli chodzi o monitorowanie wydajności baz danych MySQL, ClusterControl może zdziałać cuda. ClusterControl może ułatwić wdrażanie systemów równoważenia obciążenia, może pomóc w łatwym zarządzaniu zapytaniami i monitorowaniu ich wydajności, ClusterControl może również obliczać oczekiwaną wydajność zapytań na podstawie danych historycznych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyjątek w głównym wątku java.sql.SQLException:Odmowa dostępu dla użytkownika „@”localhost” (przy użyciu hasła:NIE)

  2. Logiczne kopie zapasowe baz danych przy użyciu powłoki MySQL

  3. Jak działa funkcja WEIGHT_STRING() w MySQL

  4. Jak korzystać z wielu baz danych w Laravel?

  5. Jak zoptymalizować wydajność MySQL za pomocą MySQLTuner