VestaCP Depois que o serviço WEB seleciona o modelo "phpfcgid", um grande número de processos PHP-CGI faz com que a memória se esgote rapidamente:
- Eu estava basicamente ficando sem memória por algumas horas depois de reiniciar o servidor.
- O processo PHP-CGI anteriormente ocioso não é eliminado e um processo executa cerca de 1 subprocessos, consumindo pelo menos 20 M de memória.
Usado em SSH htop
comando (instalação necessária), você pode visualizar este status ▼
Se você receber uma mensagem de erro "-bash: htop: command not found" ao usar o comando htop, consulte este tutorial para obter a solução ▼
Um grande número de processos PHP-CGI faz com que a memória se esgote rapidamente. O problema está no VestaCPCentOSNo modelo phpfcgid, uma configuração não otimizada é usada.
- VestaCP no modelo phpfcgid, defina 1 processo PHP-CGI para executar até 20 processos filhos.
Solicitação /usr/local/vesta/data/templates/web/httpd/phpfcgid.sh
Linha 13 do arquivo:
export PHP_FCGI_CHILDREN=20
No entanto, tal configuração viola o aviso do Apache na documentação de gerenciamento de subprocessos PHP:
PHP gerenciamento de processos filho (PHP_FCGI_CHILDREN) deve sempre ser desabilitado com mod_fcgid, que roteará apenas uma requisição por vez para os processos de aplicação que ele gerou; assim, quaisquer processos filhos criados pelo PHP não serão usados efetivamente. (Além disso, os processos filhos do PHP podem não ser finalizados corretamente .) Por padrão, e com a configuração da variável de ambiente PHP_FCGI_CHILDREN=0, o gerenciamento do processo filho do PHP está desabilitado.
Como no módulo mod_fcgid do Apache, o processo PHP-CGI só pode responder a uma solicitação e ser executado por vez, o processo filho PHP-CGI é muito ineficiente.
Portanto, as configurações para gerenciamento de subprocessos PHP devem ser desabilitadas diretamente ▼
PHP_FCGI_CHILDREN=0
Ao mesmo tempo, se você já possui um host virtual gerado, precisa modificar os arquivos de configuração de todos os sites ▼
/home/用户名/web/域名/cgi-bin/fcgi-starter
Depois de abrir o arquivo de configuração fcgi-starter, insira o seguinte ▼
export PHP_FCGI_CHILDREN=20
Modificado para ▼
export PHP_FCGI_CHILDREN=0
- Após a modificação, o gerenciamento de subprocessos PHP será desativado no modo mod_fcgid.
- O processo PHP-CGI não irá mais gerar processos filhos, o que pode economizar muita memória.
Além disso, o VestaCP não define um mecanismo de encerramento para processos ociosos:
- Todos os processos PHP-CGI recém-executados continuarão a usar memória até que o sistema seja reinicializado.
Para corrigir isso, basta adicionar o arquivo de configuração mod_fcgid /etc/httpd/conf.d/fcgid.conf
Adicione as seguintes configurações em ▼
FcgidIdleTimeout 120
- Configure o Apache para matar automaticamente os processos PHP-CGI que estão ociosos por 2 minutos (120 segundos).
Após a conclusão da configuração, reinicie o serviço Apache ▼
service httpd restart
Depois que o serviço for reiniciado, as centenas de processos PHP-CGI que foram exibidos anteriormente no HTOP não serão mais exibidos.
Normalmente, um único processo PHP-CGI para um único usuário Vesta CP consome de 30 a 40M de memória, satisfazendo plenamenteLinuxrequisitos do hospedeiro.
Portanto,Marketing na Internetas pessoas querem fazer bemSEO, é muito importante otimizar a configuração do Vesta CP e templates ^_^
Você pode dar uma olhada nos seguintes tutoriais no painel VestaCP ▼
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) compartilhou "Otimizando o Processo de Configuração do Modelo VestaCP phpfcgid Erros Múltiplos de Exaustão de Memória 500", o que é útil para você.
Bem-vindo a compartilhar o link deste artigo:https://www.chenweiliang.com/cwl-735.html
Bem-vindo ao canal Telegram do blog de Chen Weiliang para receber as últimas atualizações!
📚 Este guia contém um valor enorme, 🌟Esta é uma oportunidade rara, não perca! ⏰⌛💨
Compartilhe e curta se gostar!
Seus compartilhamentos e curtidas são nossa motivação contínua!