Sejarah sesi aktif PostgreSQL - sambungan pgsentinel baharu

syarikat pgsentinel mengeluarkan sambungan pgsentinel dengan nama yang sama (repositori github), yang menambahkan paparan pg_active_session_history ke PostgreSQL - sejarah sesi aktif (serupa dengan v$active_session_history Oracle).

Pada asasnya, ini hanyalah syot kilat detik demi saat daripada pg_stat_activity, tetapi terdapat perkara penting:

  1. Semua maklumat terkumpul disimpan hanya dalam RAM, dan jumlah memori yang digunakan dikawal oleh bilangan rekod terakhir yang disimpan.
  2. Medan queryid ditambahkan - queryid yang sama daripada sambungan pg_stat_statements (prapemasangan diperlukan).
  3. Medan top_level_query ditambah - teks pertanyaan dari mana pertanyaan semasa dipanggil (jika menggunakan pl/pgsql)


Senarai penuh medan pg_active_session_history:

      Lajur | Taip ---------------------------------masa_abu | cap masa dengan zon masa datid | nama tarikh oid | teks pid | integer usesysid | oid usename | teks nama_aplikasi | teks client_addr | teks client_hostname | teks client_port | integer backend_start | cap waktu dengan zon masa xact_start | cap waktu dengan zon masa query_start | cap masa dengan zon masa state_change | cap masa dengan zon waktu wait_event_type | teks tunggu_acara | keadaan teks | teks backend_xid | xid backend_xmin | xid top_level_query | pertanyaan teks | id pertanyaan teks | bigint backend_type | teks                     

Belum ada pakej siap untuk pemasangan. Adalah dicadangkan untuk memuat turun sumber dan memasang perpustakaan sendiri. Mula-mula anda perlu memasang pakej "devel" untuk pelayan anda dan tetapkan laluan ke pg_config dalam pembolehubah PATH. Kami mengumpul:

cd pgsentinel/src
membuat
membuat memasang

Tambahkan parameter pada postgres.conf:

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

# bilangan rekod terkini yang disimpan dalam ingatan
pgsentinel_ash.max_enries = 10000

Mulakan semula PostgreSQL dan buat sambungan:

buat sambungan pgsentinel;

Maklumat terkumpul membolehkan kami menjawab soalan seperti:

  • Apakah sesi menunggu yang paling banyak anda habiskan?
  • Sesi manakah yang paling aktif?
  • Apakah permintaan yang paling aktif?

Anda boleh, sudah tentu, mendapatkan jawapan kepada soalan ini menggunakan pertanyaan SQL, tetapi lebih mudah untuk melihat ini secara visual pada graf dengan menyerlahkan selang masa yang diminati dengan tetikus. Anda boleh melakukan ini dengan program percuma PASH-Viewer (anda boleh memuat turun binari yang dikumpul di bahagian Akhbar).

Apabila bermula, PASH-Viewer (bermula dari versi 0.4.0) menyemak kehadiran paparan pg_active_session_history dan jika ia wujud, ia memuatkan keseluruhan sejarah terkumpul daripadanya dan terus membaca data masuk baharu, mengemas kini graf setiap 15 saat.

Sejarah sesi aktif PostgreSQL - sambungan pgsentinel baharu

Sumber: www.habr.com

Tambah komen