Historia aktywnych sesji PostgreSQL - nowe rozszerzenie pgsentinel

spółka pgsentinel udostępnił rozszerzenie pgsentinel o tej samej nazwie (repozytorium github), który dodaje do PostgreSQL widok pg_active_session_history — historię aktywnych sesji (podobnie jak v$active_session_history w Oracle).

Zasadniczo są to po prostu migawki sekunda po sekundzie z pg_stat_activity, ale są ważne punkty:

  1. Wszystkie zgromadzone informacje przechowywane są wyłącznie w pamięci RAM, a zużywana ilość pamięci jest regulowana liczbą ostatnio zapisanych rekordów.
  2. Dodano pole queryid - ten sam queryid z rozszerzenia pg_stat_statements (wymagana preinstalacja).
  3. Dodano pole top_level_query - tekst zapytania, z którego wywołano bieżące zapytanie (w przypadku użycia pl/pgsql)


Pełna lista pól pg_active_session_history:

      Kolumna | Wpisz ------------------+----------------------------- ash_time | znacznik czasu z danymi strefy czasowej | oid nazwa_daty | pid tekstowy | liczba całkowita używasysid | oid nazwa użytkownika | tekst nazwa_aplikacji | tekst adres_klienta | tekst nazwa_hosta_klienta | tekst port_klienta | liczba całkowita początek_zaplecza | znacznik czasu ze strefą czasową xact_start | znacznik czasu ze strefą czasową query_start | znacznik czasu ze strefą czasową zmiana_stanu | znacznik czasu ze strefą czasową typ_zdarzenia_oczekiwania | tekst oczekiwanie_event | stan tekstu | tekstowy backend_xid | xid backend_xmin | xid zapytanie_najwyższego poziomu | zapytanie tekstowe | identyfikator zapytania tekstowego | typ_zaplecza bigint | tekst                     

Nie ma jeszcze gotowego pakietu do instalacji. Sugeruje się pobranie źródeł i samodzielne złożenie biblioteki. Najpierw musisz zainstalować pakiet „devel” dla swojego serwera i ustawić ścieżkę na pg_config w zmiennej PATH. Zbieramy:

cd pgsentinel/src
robić
make install

Dodaj parametry do postgres.conf:

wspólne_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = wszystkie

# liczba ostatnich rekordów przechowywanych w pamięci
pgsentinel_ash.max_entries = 10000

Uruchom ponownie PostgreSQL i utwórz rozszerzenie:

utwórz rozszerzenie pgsentinel;

Zgromadzone informacje pozwalają nam odpowiedzieć na pytania takie jak:

  • Na jakich sesjach oczekiwania spędziłeś najwięcej czasu?
  • Które sesje były najbardziej aktywne?
  • Jakie żądania były najbardziej aktywne?

Możesz oczywiście uzyskać odpowiedzi na te pytania za pomocą zapytań SQL, ale wygodniej jest zobaczyć to wizualnie na wykresie, podświetlając myszką interesujące Cię przedziały czasowe. Można to zrobić za pomocą darmowego programu Przeglądarka PASH (możesz pobrać zebrane pliki binarne w sekcji prasowe).

Podczas uruchamiania PASH-Viewer (począwszy od wersji 0.4.0) sprawdza obecność widoku pg_active_session_history i jeśli istnieje, ładuje z niego całą zgromadzoną historię i kontynuuje odczytywanie nowych przychodzących danych, aktualizując wykres co 15 sekund.

Historia aktywnych sesji PostgreSQL - nowe rozszerzenie pgsentinel

Źródło: www.habr.com

Dodaj komentarz