įmonė
Iš esmės tai yra tiesiog sekundė po sekundės momentinės nuotraukos iš pg_stat_activity, tačiau yra svarbių dalykų:
- Visa sukaupta informacija saugoma tik RAM, o sunaudojamos atminties kiekį reguliuoja paskutinių saugomų įrašų skaičius.
- Pridedamas užklausos ID laukas – tas pats užklausos ID iš plėtinio pg_stat_statements (reikia iš anksto įdiegti).
- Pridedamas aukščiausio_lygio_užklausos laukas - užklausos, iš kurios buvo iškviesta dabartinė užklausa, tekstas (jei naudojamas pl/pgsql)
Visas pg_active_session_history laukų sąrašas:
Stulpelis | Tipas -------------------+------------------------- ash_time | laiko žyma su laiko juosta data | oid datname | tekstą pid | sveikasis skaičius usesysid | oid vartotojo vardas | tekstą programos_pavadinimas | tekstą kliento_adresas | tekstą kliento_hostname | tekstą kliento_portas | sveikasis skaičius backend_start | laiko žyma su laiko juosta xact_start | laiko žyma su laiko juosta query_start | laiko žyma su laiko juosta būsenos_pakeitimas | laiko žyma su laiko juosta laukti_įvykio_tipas | tekstą laukti_įvykio | tekstą valstybė | tekstą backend_xid | xid backend_xmin | xid aukščiausio lygio_užklausa | tekstą užklausa | tekstą queryid | bigint backend_type | tekstą
Dar nėra paruošto paketo diegimui. Siūloma šaltinius parsisiųsti ir biblioteką surinkti patiems. Pirmiausia turite įdiegti serverio paketą „devel“ ir kintamajame PATH nustatyti kelią į pg_config. Mes renkame:
cd pgsentinel/src
padaryti
make install
Pridėkite parametrus prie postgres.conf:
shared_preload_libraries = 'pg_stat_statements,pgsentinel'
track_activity_query_size = 2048
pg_stat_statements.track = viskas# atmintyje saugomų naujausių įrašų skaičius
pgsentinel_ash.max_entries = 10000 XNUMX
Iš naujo paleiskite PostgreSQL ir sukurkite plėtinį:
sukurti plėtinį pgsentinel;
Sukaupta informacija leidžia atsakyti į tokius klausimus kaip:
- Kuriuose laukimo užsiėmimuose praleidote daugiausiai laiko?
- Kurie užsiėmimai buvo aktyviausi?
- Kokie prašymai buvo aktyviausi?
Žinoma, atsakymus į šiuos klausimus galite gauti naudodami SQL užklausas, tačiau patogiau tai vizualiai pamatyti grafike, pele paryškinus dominančius laiko intervalus. Tai galite padaryti su nemokama programa
Paleidus PASH-Viewer (pradedant nuo 0.4.0 versijos) patikrina, ar nėra pg_active_session_history rodinio ir jei jis yra, iš jo įkelia visą sukauptą istoriją ir toliau skaito naujus gaunamus duomenis, grafiką atnaujindama kas 15 sekundžių.
Šaltinis: www.habr.com