dataiotech Labs
Script #1
postgresql
Performanceread-onlyMin Version: 9.6

PostgreSQL'de Uzun Süren Sorguları ve Idle in Transaction Oturumlarını Bulma

Bir dakikadan uzun süredir çalışan sorguları, bekleme olaylarını ve vacuum'u engelleyen idle in transaction oturumlarını listeler. Performans olaylarında ilk bakılacak script'tir.

#pg_stat_activity#long-running#sessions#incident
postgresql · sql
SELECT pid, usename, datname, state,
       now() - query_start AS query_age,
       now() - xact_start  AS xact_age,
       wait_event_type, wait_event,
       left(query, 200) AS query
FROM pg_stat_activity
WHERE pid <> pg_backend_pid()
  AND state <> 'idle'
  AND now() - query_start > interval '1 minute'
ORDER BY query_start;
Operasyonel Notlar & İyileştirme Aksiyonu

`idle in transaction` oturumları vacuum'u engeller. Sonlandırmak için (yazma etkisi) `SELECT pg_cancel_backend(pid);`, olmazsa `pg_terminate_backend(pid)`.

Üretim Güvenliği & Çalıştırma Standartları
  • Bu script salt okunur (read-only) teşhis için tasarlanmıştır; doğrudan veri veya şema değişikliği yapmaz.
  • Ağır yük altındaki üretim sunucularında çalıştırmadan önce hedef veritabanı sürümünü (Min. Sürüm: 9.6) doğrulayın.
  • İlişkili oturumu sonlandırma veya indeks silme gibi yazma etkili aksiyonlar için notlar bölümündeki komutları temkinli uygulayın.

Mühendislik Triadı: İlgili Runbook ve Kriz Müdahaleleri

Bu script hangi üretim alarmlarında ve acil durum tatbikatlarında teşhis adımı olarak çalıştırılır?

Runbook Kütüphanesi (63)
İlişkili Alarmlar ve Metrikler
M1PostgreSQL Bağlantı Doluluk OranıPostgreSQL
M7PostgreSQL En Uzun Transaction YaşıPostgreSQL
M8PostgreSQL Kilit Bekleyen Oturum SayısıPostgreSQL