Problem neden önemlidir?
Yanlış boyutlandırılmış bir bağlantı havuzu, veritabanını korumak yerine aşırı eşzamanlılık veya istemci kuyruğu yaratabilir. Oturum durumuna bağımlı uygulamalar, havuz moduyla uyumsuz davranışlar da gösterebilir.
Nasıl teşhis edilir?
Havuzun kendi kuyruk ölçümlerini PostgreSQL içindeki application_name, kullanıcı ve durum dağılımıyla karşılaştırın. Yalnızca veritabanındaki bağlantı sayısı, bekleyen istemcileri göstermez.
Sorgu istemci arka uçlarını uygulama, kullanıcı ve duruma göre gruplar. Havuz kuyruğu ve istemci bekleme süresi için havuzun kendi ölçümleri ayrıca gerekir.
SELECT application_name, usename, state, count(*) AS connections
FROM pg_stat_activity
WHERE backend_type = 'client backend'
GROUP BY application_name, usename, state
ORDER BY connections DESC;Güvenli çözüm yaklaşımı
Havuz boyutunu veritabanının güvenli etkin sorgu kapasitesine göre belirleyin. Havuz modunu işlem, hazırlıklı ifade ve oturum durumu gereksinimleriyle birlikte test edin.
Sürekli monitoring neden gerekir?
moon, PostgreSQL arka uçlarının havuz değişikliklerine verdiği tepkiyi düşük ek yükle izlemeye yardımcı olur. Kalıcı doygunluk Slack, PagerDuty veya webhook ile bildirilebilir.
Sık sorulan sorular
Havuzdaki istemci sayısı PostgreSQL bağlantı sayısına eşit midir?
Hayır, havuz çok sayıda istemciyi daha az veritabanı bağlantısıyla çoklayabilir. Bu nedenle hem havuz hem PostgreSQL tarafı birlikte izlenmelidir.
moon bu konuda nasıl yardımcı olur?
moon, SQL Server, PostgreSQL ve MongoDB sinyallerini sürekli izleyerek problemi anlık bir kontrolden ziyade zaman içindeki davranışıyla değerlendirmeye yardımcı olur.