Como posso saber se o apache está sendo executado (ou configurado para ser executado) como pré-fork ou trabalhador?
40
Como posso saber se o apache está sendo executado (ou configurado para ser executado) como pré-fork ou trabalhador?
Respostas:
O MPM é configurado em tempo de compilação. Uma maneira de descobrir isso depois é listar os compilados nos módulos. Essa lista incluirá o MPM escolhido. A listagem pode ser realizada com o binário apache, com o sinalizador -l.
Aqui encontramos o módulo worker.c, portanto, estou executando o MPM do trabalhador.
fonte
apache2ctl -M
para listar os módulos ativos.As respostas dadas por Series8217 e Andol estão incorretas.
A questão era: como saber se o Apache está executando o prefork ou o worker. O conselho dado pelas outras respostas apenas informa qual é o MPM padrão (com base nos módulos compilados), não se esse padrão ou outra opção estiver sendo usada no momento.
Se
httpd -V
mostra prefork, isso significa que o prefork é o MPM padrão compilado. Isso pode ser substituído alterando uma configuração do arquivo de configuração do Apache, conforme mostrado neste processo:/etc/sysconfig/httpd
no CentOS / RedHat)HTTPD=/usr/sbin/httpd.worker
Qual MPM está realmente em execução pode ser mostrado usando este processo:
curl localhost/server-info
httpd -V
novamente - ainda mostrará prefork, não workerBottom line:
httpd -V
mostra a opção padrão, não qual opção está realmente em usoExistem respostas em muitos sites dizendo: use
httpd -V
para saber se o Apache está executando o prefork ou o worker. Eles estão todos errados. Experimente o procedimento acima para ver por si mesmo.fonte
No Ubuntu 14.04
Diz
event
,prefork
,worker
Você pode alterá-lo adicionando links simbólicos de
mpm_<chosen>
demods-available
paramods-enabled
em/etc/apache2
.Somente um é permitido por vez.
fonte
event
MPM é, de acordo com o site da Apache, "uma variante do MPM de trabalho com o objetivo de consumir threads apenas para conexões com processamento ativo".No RedHat e derivados, basta iniciar
top
oups aux
ver o nome do processo httpd:httpd
significa que o Apache está sendo executado como preforkhttpd.worker
significa que está sendo executado como trabalhadorfonte
No RHEL / Fedora / etc, execute
httpd -V
. Você obterá alguma saída que inclui o seguinte:Aqui 'Server MPM' é 'Prefork', então meu servidor está executando o MPM pré-fork.
fonte
Chris Johnson está correto. Vá para httpd.conf => adicione esta linha:
Reinicie o apache: /etc/init.d/httpd restart. Em seguida, acesse localhost / server-info pelo seu navegador e consulte a seção Nome do MPM .
fonte
Aqui está outro método que eu espero que seja confiável para determinar qual MPM está em uso. Adicione o seguinte ao seu
httpd.conf
:Em seguida, verifique os cabeçalhos usando
curl -I localhost | grep X-MPM
.fonte
no centos (ou rhel) você pode executar este comando:
se você vê
/usr/sbin/httpd.worker
executando, está usando o MPM de trabalho. se você vir/usr/sbin/httpd
executando, está usando o preforkfonte
A resposta de Chris Johnson está certa.
Depois de ativar o módulo info, conforme documentado na documentação do Apache ( http://httpd.apache.org/docs/2.2/mod/mod_info.html ), esse liner fornecerá o MPM que você está usando:
fonte
Uma maneira de descobrir isso no Debian como distribuições, é executando:
fonte