O servidor para de responder a cada 10 minutos após a configuração do php5-fcgid.conf, por quê?

1

Eu tenho o PHP5-CGI instalado, o Apache e o MYSQL instalado. Antes de adicionar essas configurações, o PHP5-CGI teria infinitamente > 15 processos, cada um consumindo 5 mb de ram. Então eu adicionei essas configurações ao /etc/apache2/conf.d/php5-fcgid.conf e os processos PHP5-cgi foram limitados. No entanto, agora, toda vez que eu abro digamos 20 threads / páginas em 4 ou 5 minutos, o servidor para de funcionar corretamente, coisas congelam e páginas param de carregar, até que 2 ou 3 minutos passem, então ele está reluzindo rapidamente.

  AddHandler fcgid-script .fcgi .php                                        
  # Where to look for the php.ini file?                                     
  DefaultInitEnv PHPRC  "/etc/php5/cgi"                                     
  # Where is the PHP executable                                             
  FCGIWrapper /usr/bin/php-cgi .php                                         
  # Maximum requests a process handles before it is terminated              
  MaxRequestsPerProcess 1500                                                
  # Maximum number of PHP processes.                                        
  MaxProcessCount       15                                                  
  # Number of seconds of idle time before a process is terminated           
  IPCCommTimeout        240                                                 
  IdleTimeout           240                                                 


# Large site                                                                

  ServerLimit          2048                                                 
  ThreadLimit           100                                                 
  StartServers           10                                                 
  MinSpareThreads        30                                                 
  MaxSpareThreads       100                                                 
  ThreadsPerChild        64                                                 
  MaxClients           2048                                                 
  MaxRequestsPerChild  5000  

Estou executando um site (fórum smf) que tem em média 450 usuários por 20 minutos, então fica um pouco agitado. Então, o que está acontecendo?

    
por Pete 29.11.2012 / 00:49

1 resposta

0

A primeira coisa que vejo logo de cara é que o seu FCGIWrapper se parece com o executável php-cgi em vez de um script wrapper que configura as variáveis de ambiente que o PHP espera com valores que funcionarão com fcgid . Por padrão, o PHP fecha após 500 solicitações, mas você espera que elas durem 1500. Você pode encontrar exemplos e uma explicação em documentação do Apache mas basicamente você precisa definir a variável de ambiente PHP_FCGI_MAX_REQUESTS para que php-cgi seja maior que a configuração MaxRequestsPerProcess que o fcgid está usando.

Provavelmente você pode pular o script wrapper e usar apenas DefaultInitEnv PHP_FCGI_MAX_REQUESTS 1501 em sua configuração do Apache

Além disso, sua configuração é antiga, todos os nomes de diretivas mudaram , mas o antigo os que são utilizáveis por agora .

    
por 29.11.2012 / 01:17