Ułatwianie pracy z PostgreSQL

Monitor połączeń do bazy danych – ułatwianie pracy z PostgreSQL cz. III

W tej odsłonie serii o przydatnych narzędziach do pracy z PostgreSQL omówimy narzędzie, które z pewnością przypadanie do gustu administratorom baz danych – mowa o interaktywnym monitorze aktywności serwera pg_activity.

W tej odsłonie serii o przydatnych narzędziach do pracy z PostgreSQL omówimy narzędzie, które z pewnością przypadanie do gustu administratorom baz danych – mowa o interaktywnym monitorze aktywności serwera pg_activity.

Administracja bazą danych wymaga sprawdzenia od czasu do czasu tego, co dzieje się w danym momencie w systemie. Oczywiście, w przypadku sytuacji kryzysowych nic nie zastąpi dobrze zaprojektowanego mechanizmu wczesnego reagowania informującego o wystąpieniu potencjalnie niepożądanego stanu w systemie bazodanowym. Niemniej, w celu zorientowania się w tym, jak wygląda sytuacja, często trzeba sięgnąć do wcześniej przygotowanych skryptów administracyjnych lub napisać odpowiednie polecenia ad hoc po połączeniu się z serwerem.

Do monitoringu parametrów systemu EuroLinux można wykorzystać wielu narzędzi (od graficznych po terminalowe), takich jak top, ps, czy htop. Pozwalają one na szybkie rozeznanie w stanie systemu bez potrzeby pisania własnych skryptów parsujących informacje znajdujące się w katalogu /proc. Podobnym udogodnieniem jest program pg_activity, który wyraźnie czerpie garściami z programu htop i stara się dostarczyć najprzydatniejsze informacje dla administratora w podobny sposób.

Instalacja pg_activity

Kod programu został napisany w języku Python i jest udostępniany przy pomocy GitHub na licencji Open Source zbliżonej do MIT (o której można przeczytać na naszym blogu).

Instalację można przeprowadzić w prosty sposób przy użyciu polecenia pip3.

$ pip3 install pg_activity

W celu izolacji instalacji dobrym pomysłem może być skorzystanie ze środowiska wirtualnego, które można utworzyć i aktywować w następujący sposób:

$ python3 -m venv pgactivityenv
$ . pgactivityenv/bin/activate

Dzięki temu będziemy mieli pewność, że aplikacja na czas testów nie zmieni stanu, ani bibliotek w ścieżkach systemowych.

Korzystanie z pg_activity

pg activity

Jak widać na powyższym zrzucie ekranu, po uruchomieniu aplikacji zostajemy powitani czytelnym ekranem z krótkim podsumowaniem u góry oraz listą wyszczególnionych połączeń na dole.

Poszczególne kolumny odpowiadają następującym informacjom:

  • PID – numer procesu, który odpowiada za tę sesję;
  • DATABASE – nazwa bazy danych, do której nastąpiło połączenie;
  • APP – wyświetla nazwę aplikacji łączącej się do bazy (SET application_name). Warto tu wspomnieć, że wykorzystanie tego mechanizmu w
    znaczącym stopniu ułatwia utrzymanie aplikacji wykorzystującej PostgreSQL;
  • USER – użytkownik bazy danych, który dokonał połączenia;
  • CLIENT – kolumna podpowiada, w jaki sposób zostało dokonane połączenie. W
    tym wypadku local odpowiada za połączenie wykonane przez socket;
  • TIME – czas działania procesu;
  • W – informacja o tym, czy dana sesja czeka na jakimś locku;
  • state – informacja o stanie, w jakim znajduje się transakcja;
  • Query – zapytanie, które aktualnie jest wykonywane.

Ponadto dostępne są również widoki pozwalające przyjrzeć się zapytaniom, które aktualnie czekają na zwolnienie jakiegoś zasobu. W tym celu wystarczy nacisnąć klawisz F2 lub 2.

Tak samo możemy przejrzeć blokujące zapytania, przechodząc do dedykowanego im widoku, który aktywujemy przez wciśnięcie klawisza F3 lub 3.

Informacje na temat interaktywnego korzystania z aplikacji można uzyskać przez wciśnięcie klawisza h, który prezentuje ekran pomocy.

pg activity help

Korzystanie z tego narzędzia podczas codziennej pracy zdecydowanie ułatwia monitorowanie stanu bazy danych. Pozwala na wyrobienie sobie nawyku przeglądania podłączonych procesów, ze szczególnym uwzględnieniem tych, które zakładają blokady. W przypadku tabel, które stanowią tzw. hot path, monitoring blokad jest wręcz niezbędny, ponieważ ich zakładanie w znaczący sposób będzie rzutować na szybkość działania aplikacji korzystających z bazy danych.

Podsumowanie

Mam nadzieję, że prezentowany w tym tekście program wzbogaci Waszą listę użytecznych narzędzi do pracy z PostgreSQL i przede wszystkim, że będzie przydatny w codziennej pracy. Zachęcam do zapoznania się z poprzednimi poradnikami z tej serii, do których linki można znaleźć poniżej. Zachęcam również do subskrypcji naszego newslettera.

Autorzy

Artykuły na blogu są pisane przez osoby z zespołu EuroLinux. 80% treści zawdzięczamy naszym developerom, pozostałą część przygotowuje dział sprzedaży lub marketingu. Dokładamy starań, żeby treści były jak najlepsze merytorycznie i językowo, ale nie jesteśmy nieomylni. Jeśli zauważysz coś wartego poprawienia lub wyjaśnienia, będziemy wdzięczni za wiadomość.