WordPress용 Apache/MySQL/PHP 조정

WordPress용 Apache/MySQL/PHP 조정

내 아파치 프로세스가 왜 그렇게 많은 메모리를 먹고 있는지 알아내려고 노력 중입니다.

내 슬라이스 사양(1.5GB RAM, CentOS 5, Apache2, PHP 5.2, MySQL)

보시다시피 내 상위 프로세스는 내 전체 메모리의 거의 절반을 소비하고 있으며 더 많은 프로세스가 생성되면 서버가 거의 정지되어 자주 스왑 및 충돌이 발생합니다.

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND   
6817 apache    40   0  296m 103m 3920 S  0.0  6.7   0:03.52 httpd                         
6789 apache    40   0  295m 101m 3932 S  0.0  6.6   0:07.04 httpd                         
6765 apache    40   0  284m  91m 3948 S 55.1  5.9   0:12.45 httpd                         
6798 apache    40   0  284m  90m 3944 S  0.0  5.9   0:05.49 httpd                         
6542 apache    40   0  283m  90m 3956 S  0.0  5.8   0:43.25 httpd                         
6827 apache    40   0  283m  88m 3796 S  0.0  5.7   0:01.83 httpd    

아파치(및 PHP)가 너무 많은 메모리를 소비하게 만드는 원인이 무엇인지 아는 사람이 있습니까?

              total       used       free     shared    buffers     cached
Mem:          1545        827        718          0          3        111
-/+ buffers/cache:        713        832
Swap:         3071        103       2968

답변1

당신은 거의 확실하게 mod_php를 실행하고 있습니다. 이는 mpm_prefork에서 거의 확실히 아파치를 실행하고 있음을 의미합니다.

로드로 인해 교체가 시작될 때까지 성능이 일반적으로 양호하다면 빠른 수정 방법은 Apache의 MaxClients 제한을 시작하는 것입니다. Apache가 원할 때마다 작업자 프로세스를 분기할 수 있도록 허용되면 로드 시 스왑이 시작됩니다. 요청은 작업자가 사용 가능해질 때까지 대기열에 보관되므로 작업이 느려질 수 있지만 교체로 인한 사망만큼 느리지는 않습니다.

정말 더 세밀하게 조정해야 한다면 prefork apache mpm에서 벗어나는 것을 고려해보세요. 이는 PHP를 FastCGI로 실행한다는 의미입니다. FastCGI에서 PHP를 사용하려면 훨씬 더 나은 FastCGI 프로세스 관리자(--enable-fpm 구성 옵션)가 있는 PHP 5.3.3으로 업그레이드하는 것을 고려해야 합니다.

php-fpm/worker는 구식 mod_php보다 훨씬 더 메모리 효율적입니다. 그런 다음 PHP 프로세스 수와 관계없이 Apache 프로세스/스레드 수를 조정할 수 있습니다. 그리고 메모리를 많이 사용하는 PHP 프로세스는 PHP 기반 콘텐츠를 제공하는 데에만 사용되며 정적 파일을 제공하는 데 낭비되지 않습니다.

답변2

PID  USER   PR NI VIRT RES  SHR  S %CPU %MEM TIME+   COMMAND
6817 apache 40 0  296m 103m 3920 S 0.0  6.7  0:03.52 httpd
6789 apache 40 0  295m 101m 3932 S 0.0  6.6  0:07.04 httpd
6765 apache 40 0  284m 91m  3948 S 55.1 5.9  0:12.45 httpd
6798 apache 40 0  284m 90m  3944 S 0.0  5.9  0:05.49 httpd
6542 apache 40 0  283m 90m  3956 S 0.0  5.8  0:43.25 httpd
6827 apache 40 0  283m 88m  3796 S 0.0  5.7  0:01.83 httpd

아파치에서 워드프레스만 실행되나요? 나는 PID 6765의 매우 높은 CPU 사용량에 대해 주로 궁금합니다. 그것이 무엇을 하고 있는지 궁금합니다. mem%s에 관한 한, 각 스레드가 실제로 둘 이상의 작업자를 실행하고 있기 때문에 웹앱 설정에서는 꽤 정상적으로 보입니다.

Apache에 어떤 MPM을 사용하고 있으며 어떻게 구성합니까?

또한 터미널 덤프를 게시하는 경우 각 줄을 4개의 공백으로 시작하십시오. 서식을 보존할 수 있습니다.

답변3

내 수정구슬에 먼지가 좀 쌓였는데, 당신이 사용하고 있는 것 같아요멤캐시드그리고 PHP 확장입니다. 그렇다면 꼭 필요한 경우가 아니면 비활성화해 보세요.

또 다른 가능성은 다음과 같은 일종의 연산 코드 캐시가 있다는 것입니다.X캐시, 설치하고 많은 메모리를 사용하도록 구성했습니다.

시도해 볼 수도 있습니다

pmap -x `pidof apache`

메모리를 소비하는 것이 무엇인지 확인합니다.

답변4

사용하지 않는 아파치 모듈(예: Python, Perl 등)을 로드하지 마세요.

eAccelerator PHP 모듈을 사용하십시오. PHP 컴파일러입니다. 더 빠른 실행과 더 적은 메모리 사용량을 얻을 수 있습니다.

다른 사용자도 맞을 수도 있습니다.

관련 정보