Como matar esses processos PHP com segurança?

2

Instalei o php5 no Ubuntu e no WordPress. Pode executar depois de instalado. Mas depois de alguns dias, descobri que há muito processo e ocupei muitas lembranças. Eu tento usar

ps -aux | grep www-data

e encontrou cerca de 30 processos como este.

www-data  5066  0.0  0.0 131664   780 ?        S    16:20   0:00 /usr/sbin/php5-fpm --fpm-config /etc/php5/fpm/main.conf

Eu tentei

kill -9 pid

e não funcionou, mais processos aparecem novamente. Então você poderia me dizer como matá-los com segurança e eu não quero que a minha memória de vps seja ocupada por isso.

    
por JakeGould 02.11.2011 / 09:35

3 respostas

1

and it didn't work, more process appears again

Realmente? Enquanto eu esperaria mais processos para aparecer o que você matou deve ir embora.

Se você quiser parar tudo isso, então desligue o daemon, eu não sei como ele está configurado na sua máquina, mas aqui eu faria ....

/etc/init.d/php-fpm stop

Mas não é assim que se resolve o problema de "descobri que há muito processo e ocupei muitas memórias". Você deve começar fazendo uma análise de tráfego adequada e criando o perfil do código.

    
por 25.03.2013 / 00:48
0

Tente aqui, acho que é o mesmo problema:)

Como parar os processos Apache do www-data?

"O Apache rodando como www-data é o padrão no Debian Lenny. Você pode estar confundindo um único processo apache 'pai' (rodando como root) com 'filhos' do apache fazendo processamento de requisições HTTP (rodando como www-data). Os processos 'pai' e 'filhos' devem parecer que foram iniciados com / usr / sbin / apache2 -k start (quando você usa ps aux | grep apache), e a única diferença é o proprietário do processo.

Para controlar os scripts de inicialização do init você pode usar o sudo sysv-rc-conf (sudo aptitude instala o sysv-rc-conf se você não o tiver - é apenas um wrapper Perl para scripts init). " -Chronos

Assim, cada processo é um processo filho lidando com solicitações http, se você realmente quiser matá-los, mate o processo com sudo kill PID ou talvez / usr / sbin / apache2 -k stop.

Tom

    
por 02.11.2011 / 09:48
-1

Não há nada de errado com o que você está vendo. PHP é um módulo sendo executado pelo Apache, que é controlado pelo usuário www-data . O que você está vendo é um comportamento normal. E a maioria dos ajustes feitos para melhorar o desempenho estão conectados às configurações do Apache & não tanto as configurações do PHP.

Se você quiser controlar melhor esse comportamento, há dois lugares para fazer ajustes.

1. Ajuste o limite de memória do PHP: Abra o arquivo php.ini que deve estar localizado em /etc/php5/apache2/php.ini e edite a opção     chamado memory_limit . Deve ser definido para 64M ou 32M. Mas isso é     basicamente o limite máximo de memória para qualquer processo PHP - que está ligado a     cada processo do Apache2 (veja abaixo) - pode ser usado. Então, se você executar o WordPress &     quer rodar qualquer processo com 32M de RAM, não tem problema. Se precisar     mais o script falhará & seu log de erros do Apache2 localizado em      /var/log/apache2/error.log preencherá com erros.

2. Ajuste seu Apache Config para atender às suas necessidades: Como o PHP é um módulo em execução no Apache, quanto mais processos do Apache você executar, mais memória será consumida. Se você tiver uma instalação padrão do Apache2, abra este arquivo & olhe em volta: /etc/apache2/apache2.conf . Especificamente, aqui estão as configurações que eu sempre ajustei em uma instalação padrão.

  • Tempo limite: Esse é o tempo limite entre uma solicitação feita pelo cliente para o servidor & o servidor atendendo a essa solicitação. Na minha experiência, a configuração de 300 segundos (5 minutos) é muito alta. Eu ajustei isso para 120.
  • KeepAlive: Eu sempre mantenho isso, já que ajuda o Apache a usar a memória & melhores recursos. Isso basicamente significa que um processo filho do Apache não se matar se um cliente ainda estiver solicitando conteúdo. Dessa forma, um processo pode fluir dados & então morra com segurança depois de ter feito o seu trabalho.
  • MaxKeepAliveRequests: Isso está diretamente conectado a KeepAlive . E eu ajustei isso com base nas necessidades do servidor. Para desenvolvimento ambientes eu mantenho isso baixo. Vamos dizer 3 ou 4. Para produção ambientes que tendem a sentir KeepAlive só é útil por cerca de 1/3 de conexões. Então eu defini isso para cerca de 24 ou 32. Mas a memória é um preocupação, eu ficaria assim tão baixo quanto mais KeepAlive processa você ter mais clientes em execução e & mais RAM você usado por processo.
  • KeepAliveTimeout: Essa é basicamente uma medida da rapidez com que uma pessoa pode carregar uma página em seu site. Pense nisso: por que manter uma conexão vivo após o tempo que leva para um cliente obter o conteúdo para um página? Na minha experiência, uma configuração de 2 segundos a 5 segundos é boa. Mas quando se desloca até 5 segundos para renderizar uma página, isso significa que algo está realmente sufocando o sistema subjacente. Então para mim isso é um sinal para reavaliar o código & limpe a codificação intensiva de recursos.

    Em seguida, vá para a área mpm_prefork_module . É assim que eu configuro meu ambiente de desenvolvimento; isso é para um site de baixo tráfego.

<IfModule mpm_prefork_module>
  StartServers           8
  MinSpareServers        8
  MaxSpareServers        8
  ServerLimit           16
  MaxClients            16
  MaxRequestsPerChild 2000
</IfModule>

Basicamente, isso define todos os limites & parâmetros para uma instalação básica do Apache. Eu acredito que cada parâmetro deve ser auto-explicativo, mas aqui está o meu colapso.

  • StartServers: Quantos servidores filhos são iniciados imediatamente sob o Apache.
  • MinSpareServers: a quantidade mínima de servidores filhos a serem mantidos em reserva.
  • MaxSpareServers: a quantidade máxima de servidores filhos a serem mantidos em reserva.
  • ServerLimit: O limite máximo do número de servidores secundários existentes.
  • MaxClients: o valor máximo de clientes que podem existir a qualquer momento.
  • MaxRequestsPerChild: Essa configuração ajuda a eliminar processos filhos após um determinado número de solicitações. Isso ajuda a evitar vazamentos de memória porque os processos tecnicamente filhos podem ser executados permanentemente até a próxima reinicialização do Apache2. Uma proteção que eu gosto de ter no lugar para que eu possa dormir à noite, mesmo quando um desenvolvedor implanta código desleixado.

Espero que isso ajude!

    
por 25.03.2013 / 00:26