selskap
I hovedsak er dette ganske enkelt øyeblikksbilder fra pg_stat_activity sekund for sekund, men det er viktige poeng:
- All akkumulert informasjon lagres kun i RAM, og den forbrukte mengden minne reguleres av antall sist lagrede poster.
- Queryid-feltet legges til - den samme queryid fra utvidelsen pg_stat_statements (pre-installasjon kreves).
- Top_level_query-feltet legges til - teksten til spørringen som gjeldende spørring ble kalt fra (hvis du bruker pl/pgsql)
Full liste over pg_active_session_history-felt:
Kolonne | Skriv ------------------+------------------------- ash_time | tidsstempel med tidssone datid | oid datonavn | tekst pid | heltall usesysid | oid brukernavn | tekst applikasjonsnavn | tekst client_addr | tekst klient_vertsnavn | tekst klientport | heltall backend_start | tidsstempel med tidssone xact_start | tidsstempel med tidssone query_start | tidsstempel med tidssone state_change | tidsstempel med tidssone wait_event_type | tekst wait_event | teksttilstand | tekst backend_xid | xid backend_xmin | xid top_level_query | tekstspørring | tekst queryid | bigint backend_type | tekst
Det er ingen ferdig pakke for installasjon ennå. Det anbefales å laste ned kildene og sette sammen biblioteket selv. Du må først installere "devel"-pakken for serveren din og sette banen til pg_config i PATH-variabelen. Vi samler inn:
cd pgsentinel/src
gjøre
make install
Legg til parametere til postgres.conf:
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = alle# antall nylige poster i minnet
pgsentinel_ash.max_entries = 10000
Start PostgreSQL på nytt og lag en utvidelse:
opprette utvidelse pgsentinel;
Den akkumulerte informasjonen lar oss svare på spørsmål som:
- Hvilke venteøkter brukte du mest tid på?
- Hvilke økter var mest aktive?
- Hvilke forespørsler var de mest aktive?
Du kan selvfølgelig få svar på disse spørsmålene ved å bruke SQL-spørringer, men det er mer praktisk å se dette visuelt på en graf ved å fremheve tidsintervallene av interesse med musen. Du kan gjøre dette med et gratis program
Ved oppstart sjekker PASH-Viewer (fra og med versjon 0.4.0) for tilstedeværelsen av pg_active_session_history-visningen, og hvis den eksisterer, laster den hele akkumulerte historikk fra den og fortsetter å lese nye innkommende data, og oppdaterer grafen hvert 15. sekund.
Kilde: www.habr.com