MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Monitorowanie wydajności MariaDB w chmurze hybrydowej

Wydajność w naszej bazie danych MariaDB to jeden z obszarów, który chcemy ściśle monitorować i obserwować w środowisku produkcyjnym oraz jego terminowości działania. Jeśli konfiguracja architektoniczna wykorzystuje chmurę hybrydową, może to być niezwykle wymagające pod względem czasu, pracy i pieniędzy. Mało tego, istnieją takie pewne obszary, na które należy zwrócić uwagę, zwłaszcza pośrednik sieciowy, który obsługuje swoją łączność jako chmura lokalna lub prywatna, która komunikuje się z chmurą publiczną (GCP, AWS, Azure itp.) i odwrotnie .

Ten blog dotyczy monitorowania wydajności baz danych MariaDB w infrastrukturze chmury hybrydowej. Zapewnimy Ci podstawy i najważniejsze kluczowe wskaźniki podczas monitorowania wydajności bazy danych MariaDB w konfiguracji chmury hybrydowej.

Dlaczego potrzebujesz monitorowania wydajności?

W chmurze hybrydowej monitorowanie każdej usługi, z której korzystasz, może być skomplikowane. W przeciwieństwie do własnego centrum danych lub prywatnej chmury masz pełną kontrolę nad infrastrukturą sprzętową i programową. W przypadku chmury publicznej istnieją ograniczenia dotyczące usług, które zaoferowałeś, i może to wiązać się z dodatkowymi kosztami, jeśli potrzebujesz różnych usług, które zapewnią Ci metryki i dzienniki. Bezpieczeństwo jest również problemem w odniesieniu do Twoich poufnych danych, które są gromadzone.

Monitorowanie wydajności pomaga określić, jak wydajnie i jak szybko działają Twoje bazy danych w chmurze lokalnej, prywatnej lub publicznej. W praktyce zestaw przetestowanych i opartych na wynikach procesów i narzędzi, które zapewnią metryki w czasie rzeczywistym lub okresowe.

W chmurze hybrydowej nie wszystkie narzędzia do monitorowania oprogramowania są zbudowane w celu zarządzania kluczowymi wskaźnikami, które należy obserwować i monitorować. Powinieneś mieć pomysł i wiedzę, aby określić wymagane metryki i wymagania, które może zapewnić narzędzie. Oczekuje się, że w przypadku chmury hybrydowej sposób działania chmury hybrydowej może być złożony. Usługi są bardzo rozproszone i mieszane z innymi usługami, które nie są związane tylko z jednym dostawcą.

Pod tym względem oprogramowanie monitorujące ma te cechy, a także potrafi identyfikować i oddzielać chmurę, do której należy. Oprogramowanie lub narzędzia do monitorowania muszą mieć możliwość rozwiązywania wąskich gardeł, problemów z bezpieczeństwem, opóźnień, zapewniania skalowalności, powiadamiania o bieżących problemach i przewidywania. Przewidywanie pozwala uniknąć dalszych konsekwencji, które mogą prowadzić do awarii lub wpłynąć na wydajność baz danych MariaDB. Pomaga to całemu zespołowi, w tym inżynierom infrastruktury, inżynierom baz danych, administratorom serwerów i programistom, zapewnić, że serwery baz danych są sprawne i działają zgodnie z oczekiwaniami.

Rzeczy do rozważenia przy monitorowaniu baz danych

Podczas monitorowania klastra bazy danych MariaDB (replikacji lub Galera) lub węzła należy wziąć pod uwagę dwie główne rzeczy:system operacyjny i samą bazę danych. Musisz określić, które metryki będziesz monitorować z obu stron i jak to zrobisz. Musisz monitorować metrykę zawsze w kontekście swojego systemu i powinieneś szukać zmian we wzorcu zachowania.

W większości przypadków będziesz potrzebować kilku narzędzi (ponieważ znalezienie takiego, które pokryje wszystkie pożądane dane, jest prawie niemożliwe).

Pamiętaj, że gdy ma to wpływ na jeden z Twoich wskaźników, może to mieć również wpływ na inne, przez co rozwiązywanie problemu staje się bardziej złożone. Posiadanie dobrego systemu monitorowania i ostrzegania jest ważne, aby maksymalnie uprościć to zadanie.

Zawsze monitoruj aktywność serwera (sieć, dysk, obciążenie, pamięć i procesor)

Monitorowanie aktywności serwera może być również złożonym zadaniem, jeśli masz bardzo skomplikowany stos, który jest spleciony z architekturą bazy danych. Jednak w przypadku bazy danych MariaDB zawsze najlepiej jest mieć węzły zawsze skonfigurowane jako serwer dedykowany, aby uzyskać pełną introspekcję na podstawie węzła. Chociaż nie ogranicza to możliwości korzystania ze wszystkich zapasowych zasobów, poniżej znajdują się wspólne kluczowe obszary, którym należy się przyjrzeć.

Sieć

W przypadku infrastruktury chmury hybrydowej jest to jedna z najważniejszych kwestii do rozważenia, ponieważ należy wziąć pod uwagę rodzaj projektu i sposób, w jaki komunikuje się on z chmury lokalnej lub prywatnej do chmury publicznej i wzajemnie. Tak czy inaczej, jeden z klastrów lub węzłów specjalizuje się w swojej roli jako podstawowy do odbierania zapisów lub służy do odzyskiwania po awarii. W związku z tym nie chcesz, aby węzły odzyskiwania miały opóźnienia, co gorsza, mają duże opóźnienia replikacji. Za każdym razem, gdy wystąpią opóźnienia i gdy główny klaster z określonej chmury (powiedzmy, że lokalna) ulegnie awarii, chmura publiczna musi przejąć kontrolę, ale będzie w stanie obsługiwać najbardziej aktualne dane. Zawsze, gdy tak się stanie, konieczne może być dodanie mechanizmu wstępnego przełączania awaryjnego, który zajmie się przyrostowymi kopiami zapasowymi lub PITR w przypadku, gdy niektóre transakcje lub zapisy nie zostały jeszcze zastosowane w klastrze odzyskiwania (lub w tym przypadku klastrze chmury publicznej).

Jeśli korzystasz z Galera, ponieważ MariaDB uaktualniła Galera do wersji 4, replikacja strumieniowa jest dodawana jako jedna z kluczowych funkcji i zmian w stosunku do poprzedniej wersji. Ponieważ replikacja strumieniowa rozwiązuje wady, które miała w poprzednich wydaniach, ale umożliwia zarządzanie ponad 2 GB zestawów zapisu od czasu Galera Cluster 4. Pozwala to na fragmentację dużych transakcji i jest wysoce zalecane, aby włączyć to tylko na poziomie sesji. Oznacza to, że monitorowanie aktywności sieciowej jest bardzo ważne i kluczowe dla normalnej aktywności klastra MariaDB. Pomoże to określić, który węzeł miał największy lub najwyższy ruch w sieci w oparciu o okres czasu.

Dobrym przykładem renderowania monitorowania sieci jest użycie ClusterControl. Identyfikuje każdy z węzłów i zapewnia przegląd jego aktywności sieciowej na węzeł, niezależnie od tego, w której chmurze znajduje się węzeł. Zobacz zrzut ekranu poniżej:

Aktywność procesora, pamięci i obciążenia

Pozwólcie, że pokrótce przedstawię te trzy obszary, na które należy zwrócić uwagę podczas monitorowania. W tej sekcji zawsze najlepiej jest mieć lepszą obserwowalność następujących obszarów na raz. Jest szybki i łatwy do zrozumienia i pomaga wykluczyć wąskie gardło wydajności lub zidentyfikować błędy, które powodują, że węzły zawieszają się lub wpływają na inne węzły, a nawet możliwość awarii klastra.

W jaki sposób aktywność procesora, pamięci i obciążenia podczas monitorowania pomaga w MariaDB? Cóż, jak wspomniałem powyżej, są to jedne z niewielu rzeczy, które mają duży wpływ na codzienne rutynowe kontrole. Teraz pomaga to również określić, czy są to zdarzenia okresowe, czy losowe. Jeśli jest to okresowe, może to być związane z tworzeniem kopii zapasowych w jednym z węzłów bazy danych MariaDB lub jest to ogromne zapytanie, które wymaga optymalizacji. Na przykład złe zapytania bez odpowiednich indeksów lub niezrównoważone wykorzystanie pobierania danych, takie jak porównanie ciągów dla tak dużego ciągu. Może to być niezaprzeczalnie nieodpowiednie dla baz danych typu OLTP, zwłaszcza jeśli tak naprawdę jest to natura i wymagania Twojej aplikacji. Lepiej korzystaj z innych narzędzi analitycznych, takich jak MariaDB Columnstore lub innych narzędzi do przetwarzania analitycznego innych firm (Apache Spark, Kafka lub MongoDB itp.) do pobierania danych o dużych ciągach i/lub dopasowywania ciągów.

Więc przy monitorowaniu tych wszystkich kluczowych obszarów, pytanie brzmi, jak powinny być monitorowane? Musi być monitorowany co najmniej na minutę. Dzięki udoskonalonemu monitorowaniu, tj. na sekundę metryk zbiorczych, może być zasobożerny i bardzo chciwy pod względem zasobów. Chociaż pół minuty kolekcjonowania jest dopuszczalne, zwłaszcza jeśli Twoje dane i RPO (cel dotyczący punktu odzyskiwania) są bardzo niskie, potrzebujesz bardziej szczegółowych metryk danych w czasie rzeczywistym. Bardzo ważne jest, abyś był w stanie nadzorować cały obraz klastra bazy danych. Poza tym najlepiej i ważne jest, aby zawsze, gdy monitorujesz metryki, masz odpowiednie narzędzie do przyciągnięcia uwagi, gdy coś jest w niebezpieczeństwie, a nawet tylko ostrzeżenia. Korzystanie z odpowiedniego narzędzia, takiego jak ClusterControl, pomaga zarządzać tymi kluczowymi obszarami, które mają być monitorowane. Używam bezpłatnej wersji lub społecznościowej edycji ClusterControl, która pomaga mi monitorować moje węzły bez żadnych kłopotów od instalacji do monitorowania węzłów za pomocą zaledwie kilku kliknięć. Na przykład zobacz zrzuty ekranu poniżej:

Zapewnia również podstawę dla każdego węzła z prostym przeglądem wykresów,

lub z bardziej zaawansowanym i bogatszym modelem danych, który obsługuje również język zapytań przy użyciu Prometheusa, może zapewnić analizę wydajności bazy danych MariaDB na podstawie danych historycznych, porównując jej wydajność w odpowiednim czasie. Na przykład

To po prostu zapewnia bardziej widoczne dane. Widzisz więc, jak ważne jest posiadanie odpowiedniego narzędzia podczas monitorowania bazy danych MariaDB w chmurze hybrydowej.

Zbiorowe monitorowanie zmiennych statystycznych MariaDB

Od czasu do czasu nie może być nieuniknione, że wersje bazy danych MariaDB będą generować nowe statystyki do monitorowania lub poprawiać charakter monitorowania bazy danych, dostarczając więcej zmiennych stanu i udoskonalając wartości, na które należy patrzeć.

Bajty wysłane/odebrane

Bajty wysłane lub odebrane korelują z aktywnością sieciową i są jednym z kluczowych obszarów, w których należy patrzeć obok siebie, zwłaszcza w topologii chmury hybrydowej. Pozwala to określić, który węzeł jest najbardziej dotknięty lub przypisuje problemy z wydajnością w bazie danych MariaDB. Jest to bardzo ważne, ponieważ możesz sprawdzić, czy nie może nastąpić pogorszenie pod względem sprzętu, takiego jak urządzenie sieciowe lub podstawowe urządzenie pamięci masowej, dla którego synchronizacja brudnych stron może zająć zbyt dużo czasu.

Zobacz przykładowy zrzut ekranu,

Ładowanie klastra

Jest to bardziej aktywność bazy danych dotycząca tego, ile zmian lub pobranych danych zostało odpytywanych lub wykonanych do tej pory od czasu działania serwera. Pomaga wykluczyć, jakiego rodzaju zapytania mają największy wpływ na wydajność klastra bazy danych. Pozwala to zapewnić miejsce na ulepszenia, zwłaszcza w zakresie równoważenia obciążenia żądań bazy danych.

W związku z tym istnieje mnóstwo zmiennych, na które należy zwrócić uwagę na serwerze bazy danych MariaDB. Najważniejszą rzeczą, którą musisz wziąć pod uwagę, jest narzędzie, którego używasz do monitorowania klastra bazy danych. Dzięki ClusterControl (Community Edition) daje mi więcej możliwości elastycznego przeglądania bazy danych MariaDB. Zobacz przykład poniżej,

Możesz również wybrać z rozwijanego menu inne zmienne, na które chcesz spojrzeć,

Jest to bardzo przydatne i pomaga określić na przykład topologię replikacji w chmurze hybrydowej. Możesz uzyskać szybki przegląd stanu i wydajności związanej z siecią, ale także z innymi wskaźnikami zmiennych do rozważenia i sprawdzić, jakie są wąskie gardła, które mogłyby wpłynąć na wydajność MariaDB w topologii chmury hybrydowej. Możesz określić, czy Twoja aplikacja jest zachłanna na zapisy, czy ma to wpływ na replikację i transfer sieciowy, możesz uzyskać interaktywność klastra w dwóch lub więcej chmurach infra. Najlepiej określić, jak dobrze twoje węzły radzą sobie ze stresem. Szczególnie podczas testów warunków skrajnych przed wprowadzeniem określonych zmian w aplikacji zawsze najlepiej jest spróbować przetestować zarządzanie wydajnością produktu aplikacji i określić, czy obecne węzły bazy danych i projekt mogą obsłużyć obciążenie wymagań aplikacji.

Aby uzyskać bardziej szczegółowe i bogate metryki danych, możesz uzyskać więcej danych, korzystając z monitorowania opartego na agentach. Zobacz poniżej,

W ten sposób należy podejść do monitorowania klastra MariaDB. Perfekcyjna wizualizacja jest zawsze łatwiejsza i szybsza w zarządzaniu. Kiedy sprawy pójdą na marne, nie możesz sobie pozwolić na utratę produktywności, a przestoje mogą mieć wpływ na Twój biznes. Chociaż posiadanie darmowej wersji nie zapewnia luksusu i komfortu podczas zarządzania bazami danych o dużym natężeniu ruchu; posiadanie alarmów, powiadomień i zarządzania bazą danych w jednym obszarze to proste dodatki, które może zrobić ClusterControl.

Wnioski

Monitorowanie serwerów bazy danych MariaDB w środowisku chmury hybrydowej nie jest łatwe, a także skomplikowane, zwłaszcza gdy istnieje wiele usług i złożonych relacji, które tworzą cały stos technologii. Korzystanie z odpowiednich narzędzi do monitorowania pomaga skutecznie zarządzać aplikacją i jednocześnie poprawiać produktywność. Ponadto dzięki odpowiednim narzędziom do monitorowania będziesz mieć więcej czasu na skoncentrowanie się na ulepszaniu swoich aplikacji wraz z innymi procesami biznesowymi.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClusterControl CMON HA dla wysokiej dostępności rozproszonej bazy danych — część druga (konfiguracja dostępu GUI)

  2. 6 typowych scenariuszy awarii dla MySQL i MariaDB oraz jak je naprawić

  3. GODZINA() vs WYCIĄG(GODZINA…) w MariaDB:Jaka jest różnica?

  4. Serwer MariaDB 10.0.33 jest już dostępny

  5. Jak SYSDATE() działa w MariaDB