DBAtlas · Veritabanı operasyon atlası

53300: too_many_connections

PostgreSQL

Ne demek?

Sunucu, max_connections ile izin verilen en fazla eşzamanlı bağlantı sayısına ulaştı; yeni bağlantı kabul edilemiyor.

Neden olur?

Bağlantı havuzu kullanılmaması ya da yanlış boyutlandırılması, bağlantı sızıntıları, çok sayıda kısa ömürlü bağlantı açan uygulamalar veya max_connections değerinin iş yükünün altında olması.

Nasıl çözülür?

Bağlantı kaynağını görün: SELECT usename, state, COUNT(*) FROM pg_stat_activity GROUP BY 1,2. Uzun süredir boşta kalan istemci bağlantılarını hedefli olarak sonlandırın (filtresiz toplu sonlandırma tüm uygulamaları ve havuzları etkiler): SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE state = 'idle' AND backend_type = 'client backend' AND usename = 'uygulama_kullanici' AND state_change < now() - interval '10 minutes' AND pid <> pg_backend_pid(). Asıl çözüm PgBouncer gibi bir bağlantı havuzu kullanmaktır. max_connections'ı artırmak bellek maliyetlidir; havuzlamayı tercih edin. superuser için ayrılan bağlantılar sayesinde yönetim erişimi kalır.

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar