httpd
( Apache/2.2.29
) 메모리 사용에 문제가 있습니다.
시간이 지남에 따라 httpd
프로세스의 메모리 사용량은 결국 100 %가 될 때까지 증가합니다.
마지막으로 다시 시작한 httpd
것은 약 24 시간 전이었습니다. 출력 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
그것이 확실하다는 것을 증명하기 위해 httpd
다시 시작 httpd
하고 free -m
다시 실행 했습니다.
[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
따라서 Apache를 다시 시작하면 사용 가능한 메모리가 239Mb에서 894Mb로 늘어납니다 . 이는 큰 도약 처럼 보입니다 .
나는 현재 활성화 된 Apache 모듈 (많은 것이 있음)과 비활성화 / 제거 mod_wsgi
및 mod_perl
PHP 기반 웹 응용 프로그램 인 Magento를 실행하는이 서버에 필요하지 않은 목록을 검토했습니다.
을 바탕으로 https://servercheck.in/blog/3-small-tweaks-make-apache-fly , 내가 실행 한 ps aux | grep 'httpd' | awk '{print $6/1024 " MB";}'
및 다음과 같은 출력을 얻을 :
[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
제안 된 다른 진단 도구를 실행하면 다음 MaxClients
이 ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
반환됩니다.
[root@www ~]# ps aux | grep 'httpd' | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
110.212 MB
이 서버 (Amazon AWS m1.small
인스턴스)에는 1.7 Gb
RAM이 있습니다. 그러므로:
httpd
설정 을 조정하는 가장 좋은 방법 또는 정확히 원인을 진단하는 방법 에 대한 추가 정보 / 제안 사항은 무엇입니까?
nginx
때 시도해 볼 때가되었지만 솔직히 몇 년 동안 Apache를 사용해 왔으며 큰 문제는 없었습니다. 마 젠토는 실제로 메모리를 씹습니다.
grep httpd
-process 의 메모리 사용량이 적습니다 (적어도 저에게는). 이 문제를 해결하려면 다음과 같이 계산에서 해당 줄을 제외하는 것이 좋습니다.ps aux | grep 'httpd' | grep -v grep | awk '{print $6/1024;}' | awk '{avg += ($1 - avg) / NR;} END {print avg " MB";}'
-/+ buffers/cache
라인 을 살펴 봐야 합니다. 그러나이 경우 변경은 비슷합니다. 아파치를 어떻게 조정했는지에 따라 요청을 처리 할 준비가 된 몇 가지 프로세스로 시작할 수 있습니다. 많은 동시 요청 기간이 지나면로드를 처리하기 위해 더 많은 프로세스가 분기 될 수 있습니다. 유휴 프로세스 수를 조정할 수도 있습니다. 따라서 아파치가 너무 많은 메모리를 사용하도록 성장하면 약간의 조정이 필요합니다.