pg_stat_activity ile PostgreSQL Oturumları

0 ردود 3 مشاهدات
المقيّمون
المشاركون
صاحب الموضوع #1
[b]
Bir veritabanı yöneticisi olarak, oturumları anlamak ve yönetmek için pg_stat_activity görünümünü nasıl etkili kullanabileceğimi paylaşmak isterim. Bu tabloya bakarken hangi sütunlar beni doğrudan sorun tespitine götürür, hangi durumlar normal sayılır ve hangi örnekler beni hızla aksiyona geçirir?


PostgreSQL üzerinde çalışan oturumları gözlemlemek, performans sorunlarını tespit etmek ve kilitlenme senaryolarını anlamak için temel bir adımdır. pg_stat_activity görünümü, şu anahtar bilgilerle birlikte her oturum hakkında canlı bir resim sunar: datid, pid, usesysid, usename, application_name, client_addr, client_hostname, client_port, backend_start, xact_start, query_start, state_change, state, backend_type, query gibi sütunlar. Bazen en çok işimize yarayanlar: state (idle, active, idle in transaction, etc.), query (sistemde hangi SQL çalışıyor veya hangi sonlandırılan sorgu bekliyor), ve age benzeri zaman göstergeleri. Özellikle kilitlenme ve uzun süren sorgular için query_start ile hangi sorgunun uzun süredir çalıştığını ölçmek faydalı olur.

Birkaç pratik kullanım örneği:
  • Uzun süren aktif sorgular: SELECT pid, now() - query_start AS duration, query FROM pg_stat_activity WHERE state = 'active' ORDER BY duration DESC;
  • Transaction içinde açık kalmış oturumlar: SELECT pid, usename, backend_start, xact_start, state, query FROM pg_stat_activity WHERE state IN ('idle in transaction', 'active') ORDER BY xact_start;
  • Belirli bir veritabanı veya kullanıcıya göre filtreleme: SELECT pid, usename, query FROM pg_stat_activity WHERE datname = 'mydb' AND usename = 'app_user';
  • Kilitlenme analizleri: pg_locks ile eşleşen oturumları görmek için birleştirme; SELECT a.pid, a.query, l.mode, l.page, l.tuple FROM pg_stat_activity a LEFT JOIN pg_locks l ON a.pid = l.pid WHERE l.pid IS NOT NULL;


İyi bir pratik: otomatik temizleme veya uçuşa geçiş için uygulama katmanı ve çalışma zamanını ayrı tutun. Ayrıca pg_stat_activity, gerçek zamanlı bir görünüm olduğundan, normal çalışma yükü altında sık aralıklarla izlemek treninize bağlı olarak anlık anomalileri tespit etmeyi kolaylaştırır.

Kapanış: pg_stat_activity, oturumlar arasındaki eşleşmeleri ve davranışları anlamak için sağlam bir temel sağlar. Sistem genelindeki akışı ve darboğazları betimlerken, hangi durumda normal olduğunu bilmek ve hangi durumda müdahale gerektiğini net ölçütlerle görmek kritik. Bu konudaki deneyimlerinizle, hangi tür sorgu zaman aşımı veya kilitlenme senaryolarını daha hızlı çözdünüz?

يجب تسجيل الدخول للرد.

المستخدمون الذين يشاهدون هذا الموضوع (الإجمالي: 2, الأعضاء: 2, الضيوف: 0)
الإجمالي: 2 (الأعضاء: 2, الضيوف: 0)
0 اقتباسات محددة