PostgreSQL aktyvios sesijos istorija – naujas pgsentinel plėtinys

įmonė pgsentinel išleido to paties pavadinimo pgsentinel plėtinį (github saugykla), kuris prie PostgreSQL prideda pg_active_session_history rodinį – aktyvių seansų istoriją (panašiai kaip Oracle v$active_session_history).

Iš esmės tai yra tiesiog sekundė po sekundės momentinės nuotraukos iš pg_stat_activity, tačiau yra svarbių dalykų:

  1. Visa sukaupta informacija saugoma tik RAM, o sunaudojamos atminties kiekį reguliuoja paskutinių saugomų įrašų skaičius.
  2. Pridedamas užklausos ID laukas – tas pats užklausos ID iš plėtinio pg_stat_statements (reikia iš anksto įdiegti).
  3. 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 PASH-Viewer (surinktus dvejetainius failus galite atsisiųsti skyriuje Spaudai).

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ų.

PostgreSQL aktyvios sesijos istorija – naujas pgsentinel plėtinys

Šaltinis: www.habr.com

Добавить комментарий