PostgreSQL aktivna historija sesije - nova ekstenzija pgsentinel

Firma pgsentinel izdao pgsentinel ekstenziju istog imena (github repozitorij), koji dodaje pg_active_session_history prikaz u PostgreSQL - historiju aktivnih sesija (slično Oracleovoj v$active_session_history).

Zapravo, ovo su samo svake sekunde snimke iz pg_stat_activity, ali postoje važne točke:

  1. Sve akumulirane informacije pohranjuju se samo u RAM memoriji, a količina utrošene memorije regulirana je brojem zadnjih pohranjenih zapisa.
  2. Dodato je polje queryid - isti queryid iz ekstenzije pg_stat_statements (potrebna je prethodna instalacija).
  3. Dodato je polje top_level_query - tekst upita iz kojeg je pozvan trenutni upit (u slučaju korištenja pl/pgsql)


Kompletna lista pg_active_session_history polja:

      stupac | Upišite ------------------+---------------------------------- ash_time | vremenska oznaka sa datumom vremenske zone | oid ime podataka | tekst pid | cijeli broj usesysid | oid usename | tekst naziv_aplikacije | tekst client_addr | tekst klijent_hostname | tekst client_port | cijeli broj backend_start | vremenska oznaka sa vremenskom zonom xact_start | vremenska oznaka sa vremenskom zonom query_start | vremenska oznaka sa vremenskom zonom state_change | vremenska oznaka sa vremenskom zonom wait_event_type | tekst čekaj_događaj | stanje teksta | tekst backend_xid | xid backend_xmin | xid top_level_query | tekstualni upit | text queryid | bigint backend_type | tekst                     

Još nema spreman paket za instalaciju. Predlaže se da preuzmete izvorni kod i sami napravite biblioteku. Prvo morate instalirati “devel” paket za vaš server i postaviti putanju do pg_config u varijablu PATH. prikupljamo:

cd pgsentinel/src
napraviti
napravi instalaciju

Dodajte parametre u postgres.conf:

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

# broj nedavnih zapisa koji se čuvaju u memoriji
pgsentinel_ash.max_entries = 10000

Ponovo učitajte PostgreSQL i kreirajte ekstenziju:

kreirajte ekstenziju pgsentinel;

Akumulirane informacije nam omogućavaju da odgovorimo na pitanja kao što su:

  • Na koja su očekivanja sesije potrošile najviše vremena?
  • Koje su sesije bile najaktivnije?
  • Koji su zahtjevi bili najaktivniji?

Možete, naravno, dobiti odgovore na ova pitanja koristeći SQL upite, ali je zgodnije to jasno vidjeti na grafikonu, naglašavajući vremenske intervale od interesa pomoću miša. To možete učiniti besplatnim programom PASH Viewer (sakupljene binarne datoteke možete preuzeti u odjeljku javnost).

Prilikom pokretanja PASH-Viewer (počevši od verzije 0.4.0) provjerava prisutnost pg_active_session_history pogleda, i ako postoji, učitava cjelokupnu akumuliranu historiju iz njega i nastavlja čitati nove dolazne podatke, ažurirajući grafikon svakih 15 sekundi.

PostgreSQL aktivna historija sesije - nova ekstenzija pgsentinel

izvor: www.habr.com

Dodajte komentar