Zgodovina aktivnih sej PostgreSQL - nova razširitev pgsentinel

podjetje pgsentinel izdal istoimensko razširitev pgsentinel (repozitorij github), ki PostgreSQL doda pogled pg_active_session_history — zgodovino aktivnih sej (podobno Oraclovemu v$active_session_history).

V bistvu so to preprosto sekundni posnetki iz pg_stat_activity, vendar obstajajo pomembne točke:

  1. Vse zbrane informacije so shranjene samo v RAM-u, porabljena količina pomnilnika pa se uravnava s številom zadnjih shranjenih zapisov.
  2. Dodano je polje queryid – isti queryid iz razširitve pg_stat_statements (potrebna je predhodna namestitev).
  3. Dodano je polje top_level_query - besedilo poizvedbe, iz katere je bila klicana trenutna poizvedba (če uporabljate pl/pgsql)


Celoten seznam polj pg_active_session_history:

      Stolpec | Vnesite ------------------+----------------------------- ash_time | časovni žig z datumom časovnega pasu | oid ime datuma | besedilo pid | celo število usesysid | oid uporabniško ime | besedilo ime_aplikacije | besedilo client_addr | besedilo ime_gostitelja odjemalca | besedilo client_port | celo število backend_start | časovni žig s časovnim pasom xact_start | časovni žig s časovnim pasom query_start | časovni žig s časovnim pasom state_change | časovni žig s časovnim pasom wait_event_type | besedilo wait_event | stanje besedila | besedilo backend_xid | xid backend_xmin | xid najvišja_nivo_poizvedba | besedilna poizvedba | besedilo queryid | bigint backend_type | besedilo                     

Za namestitev še ni pripravljenega paketa. Predlagamo, da si prenesete vire in sami sestavite knjižnico. Najprej morate namestiti paket »devel« za vaš strežnik in nastaviti pot do pg_config v spremenljivki PATH. Zbiramo:

cd pgsentinel/src
Znamka
make install

Dodajte parametre v postgres.conf:

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

# število zadnjih zapisov v pomnilniku
pgsentinel_ash.max_entries = 10000

Znova zaženite PostgreSQL in ustvarite razširitev:

ustvari razširitev pgsentinel;

Zbrane informacije nam omogočajo, da odgovorimo na vprašanja, kot so:

  • Za katere čakalne dobe ste porabili največ časa?
  • Katere seje so bile najbolj aktivne?
  • Katere zahteve so bile najbolj aktivne?

Seveda lahko dobite odgovore na ta vprašanja s poizvedbami SQL, vendar je bolj priročno videti to vizualno na grafu, tako da z miško označite časovne intervale, ki vas zanimajo. To lahko storite z brezplačnim programom Pregledovalnik PASH (zbrane binarne datoteke lahko prenesete v razdelku Izpusti).

Ob zagonu PASH-Viewer (začenši z različico 0.4.0) preveri prisotnost pogleda pg_active_session_history in, če obstaja, naloži celotno zbrano zgodovino iz njega in nadaljuje z branjem novih dohodnih podatkov, tako da graf posodobi vsakih 15 sekund.

Zgodovina aktivnih sej PostgreSQL - nova razširitev pgsentinel

Vir: www.habr.com

Dodaj komentar