Monitorowanie i konfigurowanie serwera bazy danych
Po przeprowadzeniu migracji lokalnych baz danych firmy do usługi Azure Database for MySQL/PostgreSQL nadal potrzebują sposobu monitorowania wydajności.
Jako deweloper bazy danych używany do korzystania z narzędzi specyficznych dla baz danych i lokalnego monitorowania maszyn wirtualnych. Teraz, gdy bazy danych działają na platformie Azure, możesz skorzystać z portalu, aby użyć jednego narzędzia do monitorowania wszystkich różnych baz danych.
W tej lekcji dowiesz się, jak usługa Azure Monitor może obsługiwać Cię w monitorowaniu kondycji baz danych, za które odpowiadasz. Po odkryciu problemów zobaczysz, jak zmienić konfigurację baz danych, aby rozwiązać problemy.
Jak używać usługi Azure Monitor do wyświetlania kondycji baz danych
Użyj usługi Azure Monitor do śledzenia użycia zasobów w usłudze Azure Database for MySQL/PostgreSQL. Strona Metryki serwera w witrynie Azure Portal umożliwia tworzenie wykresów, które pomagają wykrywać trendy wydajności i wykrywać anomalie.
Metryki dla usługi Azure Database for MySQL/PostgreSQL
Metryki dostępne do monitorowania serwera należą do czterech szerokich kategorii:
- Metryki magazynu
- Metryki Połączenie ion
- Metryki wykorzystania zasobów przetwarzania danych
- Metryki replikacji
Metryki magazynu
Metryki magazynu śledzą całkowity rozmiar baz danych na serwerze (używany magazyn) oraz bieżącą ilość miejsca do magazynowania na serwerze (limit magazynu). W aktywnym systemie prawdopodobnie zauważysz, że używana metryka Magazynu rośnie wraz z upływem czasu. Jeśli dla serwera jest wybrana opcja automatycznego zwiększania, metryka Limit magazynu czasami wzrasta wraz ze zmniejszeniem ilości wolnego miejsca. Dodatkowy magazyn jest dodawany za każdym razem, gdy ilość wolnego miejsca spadnie poniżej 5 procent bieżącego użycia. Użyj metryki procentu magazynu, aby wyświetlić proporcję używanego miejsca do zwolnienia miejsca na serwerze.
Jeśli serwer regularnie spędza czas na zwiększaniu magazynu, rozważ ręczne przypisanie większej ilości miejsca. W tym celu w witrynie Azure Portal wybierz stronę Warstwa cenowa serwera i użyj suwaka Storage . Pamiętaj, że opłaty są naliczane za magazyn, więc nie ustawiaj magazynu dostępnego na wysoki poziom.
Użyta metryka Magazyn kopii zapasowych pokazuje, ile miejsca zajmuje twoje kopie zapasowe. Ta metryka jest ważna z perspektywy kosztów. Opłaty za magazyn kopii zapasowych nie są naliczane, ponieważ pozostaje poniżej rozmiaru miejsca do magazynowania przydzielonego do serwera (zgodnie z warstwą cenową). Po przekroczeniu tego limitu naliczane są opłaty za magazyn kopii zapasowych.
Metryki Połączenie ion
Metryka Aktywne połączenia pokazuje, ile połączeń współbieżnych aktualnie obsługuje serwer. Może to nie być takie samo, jak liczba równoczesnych użytkowników, w zależności od tego, czy skonfigurowano dowolny typ buforowania połączeń. Usługa Azure Database for MySQL/PostgreSQL nie zapewnia obecnie żadnych funkcji buforowania połączeń, ale do zaimplementowania tej funkcji można użyć usługi serwera proxy, takiej jak PgBouncer* (dla bazy danych PostgreSQL). Aby uzyskać więcej informacji, zobacz Performance best practices for using Azure Database for PostgreSQL – Połączenie ion Pooling (Najlepsze rozwiązania dotyczące wydajności dotyczące korzystania z usługi Azure Database for PostgreSQL — tworzenie puli Połączenie ion)
Metryka Nieudane połączenia pokazuje, jak często użytkownicy prezentowali nieprawidłowe poświadczenia. Duża liczba tych zdarzeń w krótkim czasie może wskazywać na atak siłowy.
Metryki wykorzystania zasobów przetwarzania danych
Te metryki ułatwiają monitorowanie sposobu obsługi obciążenia przez serwer.
Metryka procent użycia procesora CPU pokazuje, jak zajęty jest procesor CPU. Wysokie użycie procesora CPU nie jest problemem, chyba że rośnie wraz z upływem czasu. Wykorzystanie procesora CPU, które jest ponad 90% i nadal rośnie, wskazuje, że system zbliża się do wydajności przetwarzania. Należy rozważyć skalowanie w górę do warstwy cenowej z większą ilością zasobów.
Metryka Procent pamięci wskazuje zajętość pamięci. Usługa Azure Database for MySQL/PostgreSQL używa pamięci do buforowania danych i uruchamiania procesów inicjowanych przez każde żądanie klienta. Wysokie użycie pamięci nie jest problemem, dopóki nie stanie się nadmierne, zwykle ponad 95%, w zależności od rzeczywistej ilości dostępnej pamięci. Bardzo niska dostępność pamięci może spowodować awarie połączenia i spowolnić wydajność z powodu fragmentacji pamięci. Należy monitorować tę metryę, aby określić, czy zajętość pamięci rośnie wraz z upływem czasu, i odpowiednio skalować serwer.
Metryka Procent operacji we/wy śledzi ilość aktywności dysku wykonywanej przez serwer. W idealnym przypadku ta wartość powinna być tak niska, jak to możliwe. Operacje we/wy dysku są powolne. Wysoka wartość tej metryki, w połączeniu z wysoką wartością procentu pamięci, może wskazywać, że serwer ma niewystarczające zasoby do efektywnego buforowania danych i zamiast tego musi odczytywać i zapisywać dane w magazynie dyskowym. Stopień aktywności we/wy jest nieunikniony, ponieważ dane muszą być utrwalane na dysku w pewnym momencie, a dzienniki transakcji muszą być przechowywane. W większości serwerów baz danych ten zapis jest wykonywany przez oddzielny proces lub wątek, który jest uruchamiany asynchronicznie.
Metryki Sieć w i Wyjście sieci pokazują ilość ruchu przychodzącego i wychodzącego z serwera między aktywnymi połączeniami. Limity tych wartości są określane przez przepustowość ścieżki między aplikacjami klienckimi a serwerem.
Metryki replikacji
Usługa Azure Database for PostgreSQL udostępnia metryki Maksymalne opóźnienie w replikach i Opóźnienie repliki , aby ułatwić określenie aktualności replik. Te metryki są istotne tylko wtedy, gdy skonfigurowano repliki tylko do odczytu.
Metryka Max Lag Across Replicas pokazuje, ile bajtów najwolniejszej repliki znajduje się za wzorcem. Tę metryę można monitorować tylko z poziomu wzorca.
Metryka Opóźnienie repliki pokazuje czas (w sekundach), ponieważ najnowsza transakcja została odebrana z serwera głównego i zastosowana do repliki. Ta metryka ma sens tylko w przypadku wyświetlania w repliki.
Usługa Azure Database for MySQL ma metrykę Opóźnienie replikacji w sekundach . Ta metryka, którą można monitorować tylko z repliki, pokazuje liczbę sekund, przez które replika opóźnia się za wzorcem.
Tworzenie wykresów i alertów w celu monitorowania wydajności
Strona Metryki serwera w witrynie Azure Portal umożliwia tworzenie wykresów śledzących wartości metryk. Metryki są zbierane w odstępach jednej minuty. Dla każdej metryki należy określić agregację, która określa sposób raportowania tej metryki.
- Średnia generuje średnią wartość metryki w każdej minucie
- Wartość maksymalna pokazuje maksymalną wartość osiągniętą w ciągu każdej minuty
- Minimalna wartość przedstawia najmniejszą wartość
- Sumuje sumę metryki
- Licznik pokazuje, ile razy wystąpiło zdarzenie generujące metryki
Nie wszystkie agregacje muszą mieć znaczenie dla każdej metryki.
Na poniższym przykładowym wykresie przedstawiono średnie wartości minut po minucie dla procentu procesora CPU, procentu pamięci, procentu operacji we/wy i metryki aktywnych połączeń. Zobaczysz, że istnieje 101 aktywnych połączeń, które działają jednocześnie. Użycie procesora CPU i pamięci jest stabilne, a procent operacji we/wy wynosi 0. W tym przykładzie aplikacje klienckie wykonują obciążenia intensywnie korzystające z odczytu, a niezbędne dane są buforowane w pamięci.
Należy pamiętać, że między przechwyconym metrykami a wynikami wyświetlanymi na wykresie występuje opóźnienie do pięciu minut.
Jeśli metryka wskazuje, że zasób osiąga punkt krytyczny, możesz ustawić alert, aby powiadomić administratora. Poniższy przykład wysyła wiadomość e-mail do administratora, jeśli użycie pamięci przekroczy 90 procent.
Konfigurowanie parametrów serwera
Natywne serwery MySQL i PostgreSQL są wysoce konfigurowalne, ponieważ oba używają ustawień konfiguracji przechowywanych w plikach parametrów. W przypadku bazy danych PostgreSQL te informacje są przechowywane w pliku postgresql.conf . W przypadku programu MySQL dane konfiguracji są przechowywane w różnych plikach my.cnf . W usłudze Azure Database for MySQL/PostgreSQL nie masz bezpośredniego dostępu do tych plików. Zamiast tego można wyświetlać i modyfikować parametry serwera przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Wyświetlanie i ustawianie parametrów przy użyciu witryny Azure Portal
Parametry konfiguracji serwera są dostępne na stronie Parametry serwera dla serwera w witrynie Azure Portal. Możesz zmodyfikować wartości parametrów odpowiednio dla serwera. Na poniższej ilustracji przedstawiono stronę parametrów serwera dla usługi Azure Database for PostgreSQL. Odpowiednia strona dla usługi Azure Database for MySQL jest podobna.
Nie wszystkie parametry konfiguracji serwera są dostępne, ponieważ duża część konfiguracji serwera jest kontrolowana przez platformę Azure. Na przykład brakuje parametrów skojarzonych z alokacją pamięci. Ponadto usługa Azure Database for MySQL nie obsługuje magazynu ISAM, więc parametry myisam nie są dostępne.
Zmiany parametrów, które są oznaczone jako Dynamiczne , zaczynają obowiązywać natychmiast. Parametry oznaczone jako Statyczne wymagają ponownego uruchomienia serwera. Można to zrobić na stronie Przegląd serwera.
Wyświetlanie i ustawianie parametrów przy użyciu interfejsu wiersza polecenia platformy Azure
Parametry można wyświetlać i modyfikować programowo za az mysql/postgres server configuration
pomocą poleceń. Wyświetl ustawienia każdego parametru konfiguracji z elementem az mysql/postgres server configuration list
i elementem głównym w jednym parametrze przy użyciu polecenia az mysql/postgres server configuration show [parameter-name]
. Poniższy fragment kodu przedstawia przykład dla usługi Azure Database for PostgreSQL:
az postgres server configuration show \
--resource-group northwindrg \
--server-name northwind101 \
--name vacuum_defer_cleanup_age
Wynik powinien wyglądać podobnie do następującego:
{
"allowedValues": "0-1000000",
"dataType": "Integer",
"defaultValue": "0",
"description": "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.",
"id": "**********************",
"name": "vacuum_defer_cleanup_age",
"resourceGroup": "northwindrg",
"source": "system-default",
"type": "Microsoft.DBforPostgreSQL/servers/configurations",
"value": "0"
}
Ważnym elementem w danych wyjściowych jest pole wartości , które pokazuje bieżące ustawienie parametru.
az mysql/postgres server configuration set
Użyj polecenia , aby zmienić wartość parametru konfiguracji w następujący sposób:
az postgres server configuration set \
--resource-group northwindrg \
--server-name northwind101 \
--name vacuum_defer_cleanup_age \
--value 5
Jeśli musisz ponownie uruchomić serwer po zmianie parametru statycznego, uruchom az mysql/postgres server restart
polecenie:
az postgres server restart \
--resource-group northwindrg \
--name northwind101