httpd
( Apache/2.2.29
) Bellek kullanımı ile ilgili bazı problemler .
Zamanla, httpd
işlemlerde bellek kullanımı sonunda% 100'e kadar sürünür.
En son yeniden başlatmam httpd
yaklaşık 24 saat önceydi. Çıktı kaynağı free -m
:
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 1415 239 0 202 424
-/+ buffers/cache: 788 866
Swap: 1023 4 1019
Kesinlikle kanıtlamak için httpd
yeniden başladım httpd
ve free -m
tekrar koştum :
[ec2-user@www ~]$ sudo service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
[ec2-user@www ~]$ free -m
total used free shared buffers cached
Mem: 1655 760 894 0 202 360
-/+ buffers/cache: 197 1457
Swap: 1023 4 1019
Yani, Apache'yi yeniden başlatmak 239 Mb'dan 894 Mb'a boş hafıza alıyor - bu büyük bir sıçrama gibi görünüyor .
Şu anda etkin Apache modülleri (çok var) listesi üzerinden geçiyor ve devre dışı / kaldırıldı mod_wsgi
ve mod_perl
(ikisi de PHP tabanlı bir web uygulaması - özellikle Magento çalıştıran bu sunucu için gerekli).
Https://servercheck.in/blog/3-small-tweaks-make-apache-fly dayanarak ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
, aşağıdaki çıktıyı alıp aldım :
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
15.1328 MB
118.09 MB
127.449 MB
129.059 MB
117.734 MB
113.824 MB
125.062 MB
123.922 MB
119.855 MB
108.066 MB
136.23 MB
114.031 MB
113.27 MB
110.695 MB
102.113 MB
113.234 MB
186.816 MB
118.602 MB
0.835938 MB
Diğer önerilen tanı aracı Çalıştırmak için MaxClients
hangi ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
döndürür şu:
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
110.212 MB
Bu sunucuda (Amazon AWS m1.small
örneği) 1.7 Gb
RAM vardır. Yani bu nedenle:
httpd
Ayarların en iyi nasıl ayarlanacağı veya tam olarak neye neden olabileceğini teşhis etmek için başka işaretçiler / öneriler ?
nginx
duymuş olabiliriz, belki de denemenin zamanı geldi, ama dürüst olmak gerekirse, Apache'yi yıllardır kullanıyorum ve hiçbir zaman büyük problemler yaşamadım. Magento gerçekten hafızayı çiğniyor.
grep httpd
-process'in düşük bellek kullanımını içerdiğini unutmayın (en azından benim için). Bunu düzeltmek için bu satırı aşağıdaki gibi hesaplama dışında tutmanızı tavsiye ederim:ps aux | grep 'httpd' | grep -v grep | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
-/+ buffers/cache
hatta bakmanız gerektiğini unutmayın ; ancak bu durumda değişiklik karşılaştırılabilir. Apache'nin nasıl ayarlandığına bağlı olarak, istekleri işlemeye hazır birkaç işlemle başlayabilir; birçok eşzamanlı istek süresinden sonra, muhtemelen yükün üstesinden gelmek için çatallanmış daha fazla işlem olacaktır. Boşta kalan işlemlerin sayısı da ayarlanabilir. Bu yüzden apache çok fazla bellek kullanmak için büyürse, biraz ayar yapmanız gerekir.