Ir para conteúdo
  • Cadastre-se

Apos Instalação Nginx Usando Muita Cpu


Posts Recomendados

Muito estranho o Nginx travar, seria necessário ver se realmente é ele o motivo, um problema bastante recorrente com o Nginx sobre cpanel é o seguinte:

 

Se você limitar o número de conexões tcp/ip no CSF e não por o  ip 127.0.0.1 e os demais IP´s na Whitelist, o firewall pode bloquear a comunicação do Nginx com o Apache, que gera um percepção de "travamento" do nginx, pois seu processamento sobe bastante devido a espera da resposta do apache, que é de 3 a 5 min.

 

Para receber bastante conexões o Nginx + Apache é fundamental. Se for um só site, ou poucos, melhor por Varnish e pronto, ser feliz.. O Varnish vai diminuir seu custo financeiro de hosting em até 90% (quando bem dimensionado e bem configurado).

Link para o comentário
Compartilhar em outros sites

é um dedicado ele tem 32GB de ram, más eu virtualizei no vmware esxi, só eu uso a maquina toda sozinho !

Sim, eu ativei ele e mudei o ServerLimit, más não tenho experiencia para ajustar os valores

 

Bom, o ServerLimit em meu servidor é 1536. 

Link para o comentário
Compartilhar em outros sites

Outra coisa importante no Apache é o MPM usado. Para servidores maiores que quad core, sempre usar MPM Worker, e se quiser arriscar, o MPM Event é excelente (de longe o melhor), embora seja experimental, não tenho tido problemas com ele.

Link para o comentário
Compartilhar em outros sites

Outra coisa importante no Apache é o MPM usado. Para servidores maiores que quad core, sempre usar MPM Worker, e se quiser arriscar, o MPM Event é excelente (de longe o melhor), embora seja experimental, não tenho tido problemas com ele.

Com relação a segurança teria algum problema com o MPM Worker?

Link para o comentário
Compartilhar em outros sites

então galera, se alguem puder me passar algo para trocar, o apache está com a configuração padrão que veio, no comeco da noite que da mais acesso nos sites fica super lento, dai até preguiça de esperar carregar, más o resto do dia fica normal, como eu falei antes eu não entendo muito então eu arrisquei mudar poucas coisas

 

Timeout 300
TraceEnable On
ServerSignature Off
ServerTokens Full
FileETag All
StartServers 5
MinSpareServers 5
MaxSpareServers 10
ServerLimit 1526
MaxClients 240
MaxRequestsPerChild 10000
KeepAlive on
KeepAliveTimeout 5
MaxKeepAliveRequests 100
 

Link para o comentário
Compartilhar em outros sites

Diminua isso: MaxRequestsPerChild 10000.

 

Coloque 1024 ou 768, assim vai forçar os subprocessos a morrerem mais cedo ao invés de ficarem aguardando a quantidade de requisições para daí sim morrerem.

 

Em outras palavras, se num pico momentâneo com duração de poucos minutos (10m no máximo) for necessário criar 250 childs, esses childs ficarão rodando até completarem 10.000 requisições cada um. Cada child é um subprocesso do Apache. E se isso foi um pico localizado, esses childs ficarão abertos por um longo tempo... gastando recursos desnecessários do servidor (cada child acrescenta uns 25mb de memória ao servidor quando estão ociosos).

 

O keepAlive também influencia nessa variável, se você deixa ela on, apenas a primeira requisição é contada  como requisição para o subprocesso, o que acaba estendendo esse tempo de vida do subprocesso para muito longe pois terá que haver 100 * 10.000 pageviews (MaxKeepAliveRequests *MaxRequestPerChild) para cada child morrer, e consequentemente, levantando pacas o load. Note que entendo que o seu MaxKeepAliveRequests corresponde a  um número suficiente para 1 pageview.

 

Uma vez que você diminuir o MaxRequestPerChild, aumente o KeepAliveTimeout  para 20 (segundos), é um tempo bom, visto que muitos usuários já clicam imediatamente em algo assim que a página abre, sem ficar lendo, assim a conexão pode ser reaproveitada, o que aumenta a velocidade da entrega da página seguinte,e poupa o uso de processador.

 

Att,

Link para o comentário
Compartilhar em outros sites

Diminua isso: MaxRequestsPerChild 10000.

 

Coloque 1024 ou 768, assim vai forçar os subprocessos a morrerem mais cedo ao invés de ficarem aguardando a quantidade de requisições para daí sim morrerem.

 

Em outras palavras, se num pico momentâneo com duração de poucos minutos (10m no máximo) for necessário criar 250 childs, esses childs ficarão rodando até completarem 10.000 requisições cada um. Cada child é um subprocesso do Apache. E se isso foi um pico localizado, esses childs ficarão abertos por um longo tempo... gastando recursos desnecessários do servidor (cada child acrescenta uns 25mb de memória ao servidor quando estão ociosos).

 

O keepAlive também influencia nessa variável, se você deixa ela on, apenas a primeira requisição é contada  como requisição para o subprocesso, o que acaba estendendo esse tempo de vida do subprocesso para muito longe pois terá que haver 100 * 10.000 pageviews (MaxKeepAliveRequests *MaxRequestPerChild) para cada child morrer, e consequentemente, levantando pacas o load. Note que entendo que o seu MaxKeepAliveRequests corresponde a  um número suficiente para 1 pageview.

 

Uma vez que você diminuir o MaxRequestPerChild, aumente o MaxKeepAliveRequests para 20 (segundos), é um tempo bom, visto que muitos usuários já clicam imediatamente em algo assim que a página abre, sem ficar lendo, assim a conexão pode ser reaproveitada, o que aumenta a velocidade da entrega da página seguinte,e poupa o uso de processador.

 

Att,

 

Obrigado pelo interesse em ajudar, "aumente o MaxKeepAliveRequests para 20 (segundos)" estáva no 100, ele é em milisegundos ou em segundos ? porque fiquei na dúvida que você mandou eu aumenta-lo e já estava no 100

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Concorda com os nossos termos?