2013-02-25 29 views
6

'un toplam bellek kullanımını sınırladığını biliyorum postgresql.conf ile PostgreSQL'in paylaşılan bellek veya çalışan belleği gibi belirli bölümlerinin bellek kullanımını sınırlayabiliyorum, ancak PostgreSQL sunucusunun toplam bellek kullanımını sınırlamanın bir yolu var mı? Bunu yapan bir yapılandırma özelliği bulamadı ...PostgreSQL

BTW, bir Windows Server 2008 makinesinde çalıştırmam gerekecek.

cevap

6

Ne demek "toplam" bellek? Çeşitli havuzlara ayırdığınız şeylerin toplamı.

Yani, kısacası ... çeşitli havuzları/arabellekleri çok büyük ayarlamayın ve bu toplam bellek sınırınız.

+1

Anlıyorum ... PostgreSQL'in asla geçmeyeceğinden emin olabileceğime dair bir sınır olduğunu umuyorum, ama bunun yapılması gerekecek. Bu hafıza limitlerini ayarlarken dikkat etmem gereken herhangi bir tuzak var mı? –

+1

work_mem, bireysel bir sıralama veya başka bir bellek yoğun işlem (hash ops vb.) Tarafından kullanılabilir. Her sorgu, bu opların 1, veya daha fazlasına sahip olabilir. Ortalama sorgunuzun 2 ya da daha az sayıda çeşidi olduğu varsayılırsa, çok kullanılan bir makinenin azami bir fikir edinebileceğini görürsünüz. Max_connections * work_mem * 2, ver ya da al. Bireysel postgresql backends sadece 6MB kullanır, bu yüzden çok yüksek bir max_connections bireysel arka uçlarınız olmadığı sürece, vb., Çok fazla eklemeyin. –

+0

Daha azının bazen daha fazla olduğunun farkında olun, bu yüzden tüm bu sayıları körü körüne arttırmayın, çünkü aşırı düzeylere ayarlanırsa performans cezaları aslında çoktur. –