Wykonywanie inteligentnego dostrajania w usłudze Azure Database for PostgreSQL — serwer elastyczny
DOTYCZY: Azure Database for PostgreSQL — serwer elastyczny
Serwer elastyczny usługi Azure Database for PostgreSQL ma inteligentną funkcję dostrajania, która została zaprojektowana w celu automatycznego zwiększenia wydajności i zapobiegania problemom. Inteligentne dostrajanie stale monitoruje stan elastycznej bazy danych serwera usługi Azure Database for PostgreSQL i dynamicznie dostosowuje bazę danych do obciążenia.
Ta funkcja obejmuje dwie funkcje automatycznego dostrajania:
- Dostrajanie automatycznego czyszczenia: ta funkcja śledzi współczynnik wzdęć i odpowiednio dostosowuje ustawienia automatycznego czyszczenia. Czynnikiem jest zarówno bieżące, jak i przewidywane użycie zasobów, aby zapobiec zakłóceniom obciążeń.
- Dostrajanie zapisu: ta funkcja monitoruje wolumin i wzorce operacji zapisu oraz modyfikuje parametry wpływające na wydajność zapisu. Te korekty zwiększają wydajność i niezawodność systemu, aby proaktywnie zapobiec potencjalnym komplikacjom.
Inteligentne dostrajanie można włączyć przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
Dlaczego inteligentne dostrajanie?
Proces automatycznego czyszczenia jest kluczową częścią utrzymania kondycji i wydajności elastycznej bazy danych serwera usługi Azure Database for PostgreSQL. Pomaga odzyskać magazyn zajmowany przez "martwe" wiersze, zwalniając miejsce i zapewniając bezproblemowe działanie bazy danych.
Równie ważne jest dostrajanie operacji zapisu w bazie danych. To zadanie zazwyczaj należy do administratorów bazy danych. Ciągłe monitorowanie bazy danych i dostrajanie operacji zapisu może być trudne i czasochłonne. To zadanie staje się coraz bardziej złożone, gdy masz do czynienia z wieloma bazami danych.
W tym miejscu są wykonywane inteligentne kroki dostrajania. Zamiast ręcznie nadzorować i dostrajać bazę danych, możesz użyć inteligentnego dostrajania, aby automatycznie monitorować i dostrajać bazę danych. Następnie możesz skupić się na innych ważnych zadaniach.
Funkcja dostrajania automatycznego czyszczenia w inteligentnym dostrajaniu monitoruje współczynnik wzdęć i dostosowuje ustawienia zgodnie z potrzebami w celu uzyskania optymalnego wykorzystania zasobów. Aktywnie zarządza procesem "czyszczenia" bazy danych i ogranicza problemy z wydajnością, które mogą powodować nieaktualne dane.
Funkcja dostrajania zapisów obserwuje ilość i transakcyjne wzorce operacji zapisu. Inteligentnie dostosowuje parametry, takie jak bgwriter_delay
, checkpoint_completion_target
, max_wal_size
i min_wal_size
. Dzięki temu zwiększa wydajność i niezawodność systemu, nawet w przypadku dużych obciążeń zapisu.
Korzystając z inteligentnego dostrajania, możesz zaoszczędzić cenny czas i zasoby, korzystając z elastycznego serwera usługi Azure Database for PostgreSQL, aby zachować optymalną wydajność baz danych.
Jak działa inteligentne dostrajanie?
Inteligentne dostrajanie to ciągły proces monitorowania i analizy, który nie tylko uczy się o cechach obciążenia, ale także śledzi bieżące obciążenie i użycie zasobów, takie jak procesor CPU lub liczba operacji we/wy na sekundę. Nie zakłóca to normalnych operacji obciążenia aplikacji.
Dzięki procesowi baza danych może dynamicznie dostosowywać się do obciążenia, rozpoznając bieżący współczynnik wzłożenia, wydajność zapisu i wydajność punktu kontrolnego w wystąpieniu. Dzięki tym szczegółowym informacjom inteligentne dostrajanie wdraża akcje dostrajania, które zwiększają wydajność obciążenia i unikają potencjalnych pułapek.
Dostrajanie automatycznego czyszczenia
Inteligentne dostrajanie dostosowuje pięć parametrów związanych z automatycznym czyszczeniem: autovacuum_vacuum_scale_factor
, , autovacuum_cost_limit
autovacuum_naptime
, autovacuum_vacuum_threshold
i autovacuum_vacuum_cost_delay
. Te parametry regulują składniki, takie jak:
- Ułamek tabeli, która wyrusza w
VACUUM
proces. - Limit opóźnienia próżni opartego na kosztach.
- Interwał wstrzymania między przebiegami automatycznego czyszczenia.
- Minimalna liczba zaktualizowanych lub utraconych krotki potrzebnych do rozpoczęcia
VACUUM
procesu. - Czas trwania wstrzymania między rundami oczyszczania.
Ważne
Inteligentne dostrajanie modyfikuje parametry związane z automatycznym czyszczeniem na poziomie serwera, a nie na poszczególnych poziomach tabeli. Ponadto jeśli funkcja automatycznego czyszczenia jest wyłączona, inteligentne dostrajanie nie może działać poprawnie. W celu inteligentnego dostrajania w celu zoptymalizowania procesu należy włączyć funkcję automatycznego czyszczenia.
Chociaż demon autovacuum wyzwala dwie operacje (VACUUM
i ANALYZE
), inteligentne dostrajanie dostrajania tylko VACUUM
proces. Ta funkcja obecnie nie dostosowuje ANALYZE
procesu, który zbiera statystyki dotyczące spisu treści, aby pomóc planistce zapytań serwera elastycznego usługi Azure Database for PostgreSQL wybrać najbardziej odpowiedni plan wykonywania zapytań.
Inteligentne dostrajanie obejmuje zabezpieczenia w celu mierzenia wykorzystania zasobów, takiego jak procesor CPU i IOPS. Nie zwiększy to aktywności automatycznego czyszczenia, gdy wystąpienie jest obciążone dużym obciążeniem. Dzięki temu inteligentne dostrajanie zapewnia równowagę między skutecznymi operacjami oczyszczania a ogólną wydajnością systemu.
Gdy inteligentne dostrajanie optymalizuje autovacuum, uwzględnia średnie wzdęcie serwera przy użyciu statystyk dotyczących żywych i martwych krotek. Aby zmniejszyć wzdęcie, inteligentne dostrajanie może zmniejszyć parametry, takie jak współczynnik skalowania lub drzemka. Proces może zostać wyzwolony VACUUM
wcześniej i, w razie potrzeby, zmniejszyć opóźnienie między rundami.
Z drugiej strony, jeśli wzdęcie jest minimalne, a proces automatycznego czyszczenia jest zbyt agresywny, inteligentne dostrajanie może zwiększyć parametry, takie jak opóźnienie, współczynnik skalowania i drzemka. Ta równowaga minimalizuje wzdęcie i pomaga zapewnić, że proces automatycznego czyszczenia korzysta z zasobów wydajnie.
Dostrajanie zapisów
Inteligentne dostrajanie dostosowuje cztery parametry związane z dostrajaniem zapisów: bgwriter_delay
, , checkpoint_completion_target
max_wal_size
i min_wal_size
.
Parametr bgwriter_delay
określa częstotliwość, z jaką proces zapisywania w tle jest wybudzony w celu czyszczenia "brudnych" (, które są nowe lub zmodyfikowane). Proces zapisywania w tle jest jednym z trzech procesów na serwerze elastycznym usługi Azure Database for PostgreSQL obsługującym operacje zapisu. Drugi to proces punktu kontrolnego i zapisy zaplecza (standardowe procesy klienta, takie jak połączenia aplikacji).
Podstawową rolą procesu zapisywania w tle jest złagodzenie obciążenia z głównego procesu modułu kontrolnego i zmniejszenie obciążenia zapisów zaplecza. Parametr bgwriter_delay
określa częstotliwość rund składników zapisywania w tle. Dostosowując ten parametr, można również zoptymalizować wydajność zapytań języka manipulowania danymi (DML).
Parametr checkpoint_completion_target
jest częścią drugiego mechanizmu zapisu obsługiwanego przez serwer elastyczny usługi Azure Database for PostgreSQL, w szczególności procesu punktu kontrolnego. Punkty kontrolne występują w stałych odstępach czasu, które checkpoint_timeout
definiują (chyba że wymuszone przez przekroczenie skonfigurowanego miejsca). Aby uniknąć przeciążenia systemu we/wy z gwałtownym wzrostem zapisów stron, zapisywanie zanieczyszczonych w punkcie kontrolnym jest rozłożone na pewien czas. Parametr checkpoint_completion_target
steruje tym czasem trwania za pomocą polecenia checkpoint_timeout
, aby określić czas trwania jako ułamek interwału punktu kontrolnego.
Wartość domyślna to checkpoint_completion_target
0,9 (od wersji PostgreSQL 14). Ta wartość zazwyczaj działa najlepiej, ponieważ rozkłada obciążenie we/wy w maksymalnym okresie. W rzadkich przypadkach punkty kontrolne mogą nie zostać zakończone w czasie z powodu nieoczekiwanych wahań liczby potrzebnych segmentów rejestrowania zapisu i zapisu (WAL). Potencjalny wpływ na wydajność jest powodem checkpoint_completion_target
, dla którego jest metryka docelowa do inteligentnego dostrajania.
Ograniczenia i znane problemy
- Inteligentne dostrajanie sprawia, że optymalizacje są wykonywane tylko w określonych zakresach. Istnieje możliwość, że funkcja nie wprowadzi żadnych zmian.
- Inteligentne dostrajanie nie dostosowuje
ANALYZE
ustawień. - Dostrajanie automatycznego czyszczenia jest obecnie obsługiwane w warstwach obliczeniowych serwera Ogólnego przeznaczenia i Zoptymalizowane pod kątem pamięci, które mają co najmniej cztery rdzenie wirtualne. Warstwa obliczeniowa serwera z możliwością rozszerzenia nie jest obsługiwana.
Następne kroki
- Konfigurowanie inteligentnego dostrajania dla usługi Azure Database for PostgreSQL — serwer elastyczny przy użyciu witryny Azure Portal
- Konfigurowanie inteligentnego dostrajania dla usługi Azure Database for PostgreSQL — serwer elastyczny przy użyciu interfejsu wiersza polecenia platformy Azure
- Przewodniki rozwiązywania problemów dotyczące Azure Database for PostgreSQL — serwer elastyczny
- Dostrajanie automatycznego czyszczenia w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Rozwiązywanie problemów z wysokim użyciem operacji we/wy na sekundę dla usługi Azure Database for PostgreSQL — serwer elastyczny
- Najlepsze rozwiązania dotyczące zbiorczego przekazywania danych w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Rozwiązywanie problemów z wysokim użyciem procesora CPU w usłudze Azure Database for PostgreSQL — serwer elastyczny
- Szczegółowe informacje o wydajności zapytań dla usługi Azure Database for PostgreSQL — serwer elastyczny