Inteligentne dostrajanie w usłudze Azure Database for PostgreSQL — elastyczny serwer

Azure Database for PostgreSQL serwer elastyczny zawiera funkcję inteligentnego dostrajania, która automatycznie poprawia wydajność i pomaga zapobiegać problemom. Inteligentne dostrajanie stale monitoruje stan Azure Database for PostgreSQL elastycznej bazy danych serwera i dynamicznie dostosowuje bazę danych do obciążenia.

Ta funkcja obejmuje dwie funkcje automatycznego dostrajania:

  • Dostrajanie autovacuum: ta funkcja jest przestarzała i została zastąpiona nowszą funkcją adaptive autovacuum.
  • Dostrajanie zapisu: ta funkcja monitoruje wolumin i wzorce operacji zapisu. Modyfikuje parametry wpływające na wydajność zapisu. Te korekty zwiększają wydajność i niezawodność systemu oraz proaktywnie zapobiegają potencjalnym komplikacjom.

Dowiedz się, jak skonfigurować inteligentne dostrajanie.

Dlaczego warto używać inteligentnego dostrajania?

Dostrajanie operacji zapisu w bazie danych jest krytyczną częścią utrzymania kondycji i wydajności serwera elastycznego Azure Database for PostgreSQL. Administratorzy baz danych zazwyczaj wykonują to zadanie. 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.

Inteligentne dostrajanie upraszcza ten proces. Zamiast ręcznie nadzorować i dostrajać bazę danych, użyj inteligentnego dostrajania, aby automatycznie monitorować i dostrajać bazę danych. Następnie możesz skupić się na innych ważnych zadaniach.

Funkcja dostrajania operacji zapisu monitoruje liczbę i wzorce transakcyjne operacji zapisu. Inteligentnie dostosowuje parametry, takie jak bgwriter_delay, checkpoint_completion_target, max_wal_sizei min_wal_size. Dzięki temu zwiększa wydajność i niezawodność systemu, nawet w przypadku dużych obciążeń zapisu.

W przypadku korzystania z inteligentnego dostrajania oszczędzasz cenny czas i zasoby, korzystając z Azure Database for PostgreSQL serwera elastycznego, aby zachować optymalną wydajność baz danych.

Jak działa inteligentne dostrajanie?

Inteligentne dostrajanie to ciągły proces monitorowania i analizy, który zawiera informacje o cechach obciążenia. Monitoruje również bieżące obciążenie i wykorzystanie zasobów, takie jak użycie procesora lub IOPS. Nie zakłóca to normalnych operacji obciążenia aplikacji.

Proces umożliwia dynamiczne dostosowanie bazy danych do obciążenia przez rozróżnianie bieżącej wydajności zapisu i wydajności punktu kontrolnego na serwerze. Korzystając z tych wniosków, inteligentne dostrajanie wdraża działania optymalizacyjne, które poprawiają wydajność obciążenia roboczego i pomagają uniknąć potencjalnych problemów.

Dostrajanie zapisów

Inteligentne dostrajanie dostosowuje cztery parametry związane z optymalizacją zapisu: bgwriter_delay, checkpoint_completion_target, max_wal_size i min_wal_size.

Parametr bgwriter_delay określa, jak często proces zapisywania w tle budzi się w celu czyszczenia buforów "brudnych" (buforów, które są nowe lub zmodyfikowane). Proces background writer jest jednym z trzech procesów w usłudze Azure Database for PostgreSQL flexible server, które obsługują operacje zapisu. Pozostałe procesy to proces checkpointera oraz zapisy wykonywane przez procesy back-endowe (standardowe procesy klienckie, takie jak połączenia aplikacji).

Podstawową rolą procesu background writer jest odciążenie głównego procesu checkpointera oraz zmniejszenie obciążenia związanego z zapisami wykonywanymi przez procesy zaplecza. Parametr bgwriter_delay określa częstotliwość cykli procesu zapisu 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 danych obsługiwanego przez serwer elastyczny usługi Azure Database for PostgreSQL, a konkretnie procesu checkpointera. Punkty kontrolne są tworzone w stałych odstępach określonych przez checkpoint_timeout (chyba że zostanie to wymuszone przez przekroczenie skonfigurowanego limitu 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 sprawdza się najlepiej, ponieważ rozkłada obciążenie we/wy na możliwie najdłuższy przedział czasu. W rzadkich sytuacjach punkty kontrolne mogą nie zakończyć się na czas z powodu nieoczekiwanych wahań liczby wymaganych segmentów dziennika wyprzedzającego zapisu (WAL). Potencjalny wpływ na wydajność sprawia, że checkpoint_completion_target jest metryką docelową inteligentnego dostrajania.

Ograniczenia i znane problemy

  • Inteligentne dostrajanie sprawia, że optymalizacje są wykonywane tylko w określonych zakresach. Istnieje możliwość, że funkcja nie wprowadza żadnych zmian.
  • Inteligentne dostrajanie nie dostosowuje ustawień ANALYZE.