Sadece artırmak max_connectionskötü bir fikir. Sen artırmak gerekir shared_buffersve kernel.shmmaxde.
Düşünceler
max_connectionsveritabanı sunucusuna maksimum eşzamanlı bağlantı sayısını belirler. Varsayılan, tipik olarak 100 bağlantıdır.
Bağlantı sayınızı artırmadan önce dağıtımınızı büyütmeniz gerekebilir. Ancak bundan önce, gerçekten artırılmış bir bağlantı sınırına ihtiyacınız olup olmadığını düşünmelisiniz.
Her PostgreSQL bağlantısı, bağlantıyı veya onu kullanan istemciyi yönetmek için RAM kullanır. Ne kadar çok bağlantınız olursa, o kadar çok RAM kullanırsınız, bu da veritabanını çalıştırmak için kullanılabilir.
İyi yazılmış bir uygulama genellikle çok sayıda bağlantıya ihtiyaç duymaz. Çok sayıda bağlantıya ihtiyaç duyan bir uygulamanız varsa, pg_bouncer gibi sizin için bağlantıları bir araya toplayabilen bir araç kullanmayı düşünün . Her bağlantı RAM tükettiğinden, kullanımlarını en aza indirmeye çalışmalısınız.
Maksimum bağlantı nasıl artırılır
1. Artırın max_connectionveshared_buffers
içinde /var/lib/pgsql/{version_number}/data/postgresql.conf
değişiklik
max_connections = 100
shared_buffers = 24MB
-e
max_connections = 300
shared_buffers = 80MB
shared_buffersKonfigürasyon parametresi ne kadar belirler hafıza olduğu adanmış kullanım için PostgreSQL verileri önbelleğe .
- 1GB veya daha fazla RAM'e sahip bir sisteminiz varsa, paylaşılan_buffers için makul bir başlangıç değeri, sisteminizdeki belleğin 1 / 4'üdür.
- Daha küçük bir miktardan (% 25 gibi) daha iyi çalışmak için RAM'in% 40'ından fazlasını kullanmayı bulmanız pek olası değildir
- Sisteminiz veya PostgreSQL derlemeniz 32-bit ise, shared_buffers'ı 2 ~ 2.5GB'nin üzerine ayarlamanın pratik olmayabileceğini unutmayın.
- Windows'ta, paylaşılan_buffers için büyük değerlerin o kadar etkili olmadığını ve nispeten düşük tutarak ve bunun yerine işletim sistemi önbelleğini daha fazla kullanarak daha iyi sonuçlar bulabileceğinizi unutmayın. Windows'ta kullanışlı aralık 64MB ile 512MB arasındadır .
2. kernel.shmmax'ı değiştirin
Sen olmak çekirdek maksimum segmenti boyutunu artırmak gerekir biraz daha büyük
daha shared_buffers.
Dosyada /etc/sysctl.confparametreyi aşağıda gösterildiği gibi ayarlayın. postgresqlYeniden başlatıldığında etkili olacaktır (Aşağıdaki satır, çekirdeği maksimize eder 96Mb)
kernel.shmmax=100663296
Referanslar
Postgres Max Bağlantıları ve Paylaşılan Tamponlar
PostgreSQL Sunucunuzu Ayarlama