Normal kullanımdan sonra, 30 adet boşta kalma postgres işleminin neden bu kadar çok işlem belleğe sahip olduğunu anlamaya çalışıyorum. Postgres 9.3.1 ve CentOS sürüm 6.3 (Final) kullanıyorum. top
kullanma , ben paylaşımsız (RES - SHR) arasında (ortalama ~ 200MB) 300 MB'ye kadar kullandığınız postgres bağlantıların birçok görebilirsiniz belleğe:Idle postgres işlemleri çok fazla bellek kapıyor
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3534 postgres 20 0 2330m 1.4g 1.1g S 0.0 20.4 1:06.99 postgres: deploy mtalcott 10.222.154.172(53495) idle
9143 postgres 20 0 2221m 1.1g 983m S 0.0 16.9 0:14.75 postgres: deploy mtalcott 10.222.154.167(35811) idle
6026 postgres 20 0 2341m 1.1g 864m S 0.0 16.4 0:46.56 postgres: deploy mtalcott 10.222.154.167(37110) idle
18538 postgres 20 0 2327m 1.1g 865m S 0.0 16.1 2:06.59 postgres: deploy mtalcott 10.222.154.172(47796) idle
1575 postgres 20 0 2358m 1.1g 858m S 0.0 15.9 1:41.76 postgres: deploy mtalcott 10.222.154.172(52560) idle
yaklaşık 29 toplam boşta bağlantıları vardır. Bu boşta bağlantı, makine takas kullanmaya başlayana kadar bellekte büyümeye devam eder, daha sonra performans durur. Beklendiği gibi, bağlantıyı sıfırlamak, işleme özgü belleği temizler. Aynı makinedeki aynı sayıda bağlantı, periyodik olarak yeniden bağlandığımda sadece% 20 oranında bellek kullanır (0 değişim ile). Bu süreçler ne tür bilgi tutuyor? Uzun süren, boşta kalan postgres işlemlerinin yeni, boşta olanlar için benzer bellek kullanımına sahip olmasını beklerim.
Dikkat Edilmesi Gerekenler: Şiddetle şemaları kullanıyorum. Uygulamamın her isteğinde, search_path ayarını ve sıfırını yapıyorum.