O aumento de tráfego faz com que o VPS falhe devido à utilização de RAM

1

Eu tenho um VPS que executa vários sites Opencart e, na maior parte, executa a tarefa muito bem.

Spec:

CPU
GenuineIntel, CPU Intel (R) Xeon (R) E5-2665 0 @ 2.40GHz
Versão
Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 6
OS
CentOS 6.2 (Final)
RAM: 4 GB

No entanto, tenho um cliente que costuma executar promoções populares que geram tráfego no site, o que pode rondar de 3000 a 4000 visitantes em 1 a 2 horas, muitos dos quais estão tentando concluir o processo de pedido.

Quando essas promoções são executadas, posso assistir à redução da RAM a um ponto em que ela alcança 100% de utilização e faz com que todos os sites e até mesmo o acesso SSH ao VPS sejam perdidos com o log de erros:

[error] (12)Cannot allocate memory: mod_fcgid: can't run /var/www/cgi-bin/cgi_wrapper/cgi_wrapper [warn] (12)Cannot allocate memory: mod_fcgid: spawn process /var/www/cgi-bin/cgi_wrapper/cgi_wrapper error

Reiniciar o Apache ou o VPS não ajuda e a utilização da RAM só volta ao normal quando as pessoas desistem e param de acessar o site continuamente. Mesmo aumentando a memória RAM para 6GB não resolveu o problema, mas eu suponho que isso será o mesmo com qualquer quantidade razoável de RAM.

Eu relatei isso ao meu anfitrião que tem sido bastante inútil. Eles disseram que eles otimizaram a maneira como o Apache funciona, mas ainda estou vendo o mesmo problema em todas as promoções, causando uma interrupção completa.

Após a otimização, minha configuração do Apache é assim:

IfModule prefork.c
StartServers 2
MinSpareServers 2
MaxSpareServers 5
ServerLimit 80
MaxClients 200
MaxRequestsPerChild 400

IfModule worker.c
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 4
ThreadsPerChild 25
MaxRequestsPerChild 0

Eu também notei que eles definiram o KeepAlive Off.

Esse mesmo cliente tem uma promo em execução no futuro próximo e eu adoraria chegar ao fundo disso para garantir que o site permaneça ativo durante todo o processo.

Todas as sugestões serão muito bem-vindas e, por favor, pergunte se mais informações são necessárias.

Obrigado antecipadamente.

    
por muran 14.08.2014 / 13:46

2 respostas

0

Sugiro um ou mais dos seguintes procedimentos:

  • Mova esse cliente para um VPS separado.
  • Diminua drasticamente o MaxClients, por exemplo, 10
  • Use o nginx em vez do Apache ou o verniz na frente do Apache
  • Use o cloudflare
por 14.08.2014 / 14:19
0

Você está executando o apc? Se não, eu instalaria isso e verificaria se a situação melhora. Eu também olharia as configurações do php fcgi. Como o php é executado separadamente do apache no fcgi, não acredito que seus problemas estejam com o apache.

    
por 15.08.2014 / 05:17