PostgreSQL aktív munkamenet-előzmények – új pgsentinel kiterjesztés

társaság pgsentinel kiadta az azonos nevű pgsentinel kiterjesztést (github adattár), amely hozzáadja a pg_active_session_history nézetet a PostgreSQL-hez – az aktív munkamenetek előzményeihez (hasonlóan az Oracle v$active_session_historyjához).

Lényegében ezek egyszerűen másodpercenkénti pillanatképek a pg_stat_activity webhelyről, de vannak fontos pontok:

  1. Az összes felhalmozott információ csak a RAM-ban tárolódik, és a felhasznált memória mennyiségét az utoljára tárolt rekordok száma szabályozza.
  2. A queryid mező hozzáadásra kerül – ugyanaz a lekérdezési azonosító a pg_stat_statements bővítményből (előzetes telepítés szükséges).
  3. A top_level_query mező hozzáadásra kerül - annak a lekérdezésnek a szövege, amelyből az aktuális lekérdezést hívták (ha pl/pgsql-t használ)


A pg_active_session_history mezők teljes listája:

      oszlop | Típus ------------------+------------------------- ash_time | időbélyeg az időzóna dátumával | oid dátumnév | szöveg pid | integer usesysid | oid felhasználói név | szöveges alkalmazás_neve | szöveges ügyfél_címe | szöveges ügyfél_állomásnév | szöveges ügyfél_port | integer backend_start | időbélyeg xact_start | időzónával időbélyeg időzónával query_start | időbélyeg az időzóna állapotának változásával | időbélyeg az időzónával, várakozás_esemény_típusa | szöveg vár_esemény | szöveg állapota | text backend_xid | xid backend_xmin | xid felső_szintű_lekérdezés | szöveges lekérdezés | szöveges lekérdezésazonosító | bigint backend_type | szöveg                     

Még nincs kész csomag a telepítéshez. Javasoljuk, hogy saját maga töltse le a forrásokat és állítsa össze a könyvtárat. Először telepítenie kell a "devel" csomagot a kiszolgálóhoz, és be kell állítania a pg_config elérési utat a PATH változóban. Gyűjtjük:

cd pgsentinel/src
csinál
make install

Paraméterek hozzáadása a postgres.conf fájlhoz:

shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = minden

# a memóriában tárolt legutóbbi rekordok száma
pgsentinel_ash.max_entries = 10000

Indítsa újra a PostgreSQL-t, és hozzon létre egy kiterjesztést:

pgsentinel kiterjesztés létrehozása;

A felhalmozott információk lehetővé teszik számunkra, hogy válaszoljunk olyan kérdésekre, mint például:

  • Mely várakozási ülésekkel töltötte a legtöbb időt?
  • Mely foglalkozások voltak a legaktívabbak?
  • Mely kérések voltak a legaktívabbak?

Természetesen ezekre a kérdésekre választ kaphatunk SQL lekérdezések segítségével, de kényelmesebb ezt vizuálisan egy grafikonon látni, ha egérrel kiemeljük a számunkra érdekes időintervallumokat. Ezt egy ingyenes programmal megteheti PASH-Viewer (az összegyűjtött binárisokat a részben töltheti le Releases).

Indításkor a PASH-Viewer (a 0.4.0-s verziótól kezdődően) ellenőrzi a pg_active_session_history nézet meglétét, és ha létezik, betölti belőle a teljes felhalmozott előzményeket, és folytatja az új bejövő adatok beolvasását, 15 másodpercenként frissítve a grafikont.

PostgreSQL aktív munkamenet-előzmények – új pgsentinel kiterjesztés

Forrás: will.com

Hozzászólás