PostgreSQL aktiv sessionshistorik - ny pgsentinel-udvidelse

selskab pgsentinel frigivet pgsentinel-udvidelse af samme navn (github repository), som tilføjer visningen pg_active_session_history til PostgreSQL - historikken for aktive sessioner (svarende til Oracles v$active_session_history).

Faktisk er disse blot hvert andet øjebliksbilleder fra pg_stat_activity, men der er vigtige punkter:

  1. Al akkumuleret information gemmes kun i RAM, og mængden af ​​forbrugt hukommelse reguleres af antallet af de sidst gemte poster.
  2. Forespørgsels-id-feltet tilføjes - det samme forespørgsels-id fra udvidelsen pg_stat_statements (forudinstallation påkrævet).
  3. Top_level_query-feltet tilføjes - teksten i forespørgslen, hvorfra den aktuelle forespørgsel blev kaldt (i tilfælde af brug af pl/pgsql)


Fuld liste over pg_active_session_history-felter:

      kolonne | Indtast ------------------+--------------------------- ash_time | tidsstempel med tidszone dateret | oid datanavn | tekst pid | heltal usesysid | oid brugernavn | tekst applikationsnavn | tekst client_addr | tekst klient_værtsnavn | tekst klient_port | heltal backend_start | tidsstempel med tidszone xact_start | tidsstempel med tidszone query_start | tidsstempel med tidszone state_change | tidsstempel med tidszone wait_event_type | tekst wait_event | teksttilstand | tekst backend_xid | xid backend_xmin | xid top_level_query | tekstforespørgsel | tekst queryid | bigint backend_type | tekst                     

Der er endnu ingen klar pakke til installation. Det foreslås at downloade kildekoden og selv bygge biblioteket. Først skal du installere "devel"-pakken til din server og sætte stien til pg_config i PATH-variablen. Vi indsamler:

cd pgsentinel/src
lave
make install

Tilføj parametre til postgres.conf:

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

# antal seneste rekorder i hukommelsen
pgsentinel_ash.max_entries = 10000

Genindlæs PostgreSQL og opret en udvidelse:

oprette udvidelse pgsentinel;

Den akkumulerede information giver os mulighed for at besvare spørgsmål som:

  • Hvilke forventninger brugte sessionerne mest tid på?
  • Hvilke sessioner var de mest aktive?
  • Hvilke anmodninger var de mest aktive?

Du kan selvfølgelig få svar på disse spørgsmål ved hjælp af SQL-forespørgsler, men det er mere bekvemt at se dette tydeligt på diagrammet og fremhæve tidsintervallerne af interesse med musen. Du kan gøre det med et gratis program PASH Viewer (du kan downloade de indsamlede binære filer i sektionen Udgivelser).

Ved opstart tjekker PASH-Viewer (startende fra version 0.4.0) for tilstedeværelsen af ​​visningen pg_active_session_history, og hvis den eksisterer, indlæser den hele den akkumulerede historie fra den og fortsætter med at læse nye indkommende data, idet den opdaterer grafen hvert 15. sekund.

PostgreSQL aktiv sessionshistorik - ny pgsentinel-udvidelse

Kilde: www.habr.com

Tilføj en kommentar