Problem neden önemlidir?
Hatalı yeniden deneme, havuzlama sorunu veya toplu yeniden başlatma kısa sürede çok sayıda bağlantı oluşturabilir. Bu artış oturum açma maliyeti, worker baskısı ve uygulama zaman aşımına dönüşebilir.
Nasıl teşhis edilir?
Kullanıcı oturumlarını program_name, host_name, login_name ve durum bazında gruplayın. Tek anlık toplam yerine yeni bağlantı hızını, yeniden kullanım oranını ve uygulama hata günlüklerini aynı dönemde inceleyin.
Sorgu yalnızca çalıştırıldığı andaki kullanıcı oturumlarını gruplar. Bağlantı hızını veya kısa süreli açılıp kapanan oturumları görmek için düzenli örnekleme gerekir.
SELECT s.login_name,
s.host_name,
s.program_name,
s.status,
COUNT(*) AS session_count,
SUM(CASE WHEN r.session_id IS NOT NULL THEN 1 ELSE 0 END) AS active_request_count
FROM sys.dm_exec_sessions AS s
LEFT JOIN sys.dm_exec_requests AS r ON r.session_id = s.session_id
WHERE s.is_user_process = 1
GROUP BY s.login_name, s.host_name, s.program_name, s.status
ORDER BY session_count DESC;Güvenli çözüm yaklaşımı
Uygulama bağlantı havuzunu, üst sınırları ve üstel geri çekilmeli yeniden deneme politikasını düzeltmek temel yaklaşımdır. SQL Server bağlantı sınırını değiştirmek, istemci davranışı anlaşılmadan kök çözüm sayılmamalıdır.
Sürekli monitoring neden gerekir?
Bağlantı fırtınaları kısa sürdüğü için manuel inceleme başladığında sona ermiş olabilir. moon oturum ve kaynak eğilimlerini sürekli izleyip Slack, PagerDuty veya webhook üzerinden uyarı yönlendirebilir.
Sık sorulan sorular
Yüksek oturum sayısı tek başına bağlantı fırtınası mıdır? Daha büyük connection pool sorunu çözer mi?
Hayır, kararlı ve çoğu uyuyan havuz bağlantısı normal olabilir. Daha büyük havuz kök nedeni çözmeyebilir ve eşzamanlı kaynak baskısını artırabilir.
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.