Ajustando Apache/MySQL/PHP para Wordpress

Ajustando Apache/MySQL/PHP para Wordpress

Estou tentando descobrir por que meus processos Apache estão consumindo tanta memória

Minhas especificações de fatia (1,5 GB de RAM, CentOS 5, Apache2, PHP 5.2, MySQL)

Como você pode ver, meus principais processos estão consumindo quase metade de toda a minha memória e, quando mais processos são gerados, o servidor quase para, frequentemente entrando em troca e travando.

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    

Alguém tem alguma idéia do que poderia estar fazendo com que o Apache (e o PHP) consumissem tanta memória?

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

Responder1

É quase certo que você está executando o mod_php, o que significa que é quase certo que você está executando o Apache no mpm_prefork.

Se o desempenho geralmente estiver bom até que a carga faça com que você comece a trocar, uma solução rápida é começar a reduzir os MaxClients do Apache. Se o Apache tiver permissão para bifurcar os processos de trabalho sempre que quiser, ele começará a trocar sob carga. As solicitações ficarão na fila até que um trabalhador esteja disponível, então as coisas podem ficar lentas, mas não tão lentas quanto a morte por troca.

Se você realmente precisa ajustar as coisas com mais precisão, considere fugir do prefork apache mpm. Isso significa executar PHP como FastCGI. Se você optar pelo PHP no FastCGI, considere atualizar para o PHP 5.3.3, que possui um gerenciador de processos FastCGI muito mais agradável (opção de configuração --enable-fpm).

php-fpm/worker é muito mais eficiente em termos de memória do que o antigo mod_php. Você pode então ajustar o número de processos/threads do Apache independentemente do número de processos PHP. E seus processos PHP com uso intenso de memória são usados ​​apenas para fornecer conteúdo baseado em php, e não são desperdiçados no fornecimento de arquivos estáticos.

Responder2

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

O wordpress é a única coisa rodando no apache? Estou curioso principalmente sobre o uso muito alto da CPU do PID 6765. Me pergunto o que isso está fazendo. No que diz respeito aos mem%s, isso parece bastante normal para uma configuração de webapp, já que cada thread está, na verdade, executando mais de um trabalhador.

Qual MPM você está usando para o Apache e como você o configurou?

Além disso, se você estiver postando dumps de terminal, comece cada linha com quatro espaços. Permite que a formatação seja preservada.

Responder3

Minha bola de cristal está um pouco empoeirada, mas acho que você está usandomemcachede sua extensão PHP. Se for esse o caso, tente desativá-lo, a menos que você realmente precise dele.

Outra possibilidade é que você tenha algum tipo de cache de código operacional, comoXCache, instalado e configurado para usar muita memória.

Você pode tentar

pmap -x `pidof apache`

para ver o que está consumindo a memória.

Responder4

Não carregue módulos Apache não utilizados (como python, perl, etc).

Use o módulo php eAccelerator. É um compilador php. Você pode obter uma execução mais rápida e menor uso de memória.

Outros usuários talvez também estejam certos.

informação relacionada