Other problem is memory usage. When a process is created, 80M is allocated for apache2. I think is too much.
Isso é memória real ou virtual? Honestamente, não é muito; mais ao ponto, você deve se concentrar em consertar as coisas que estão causando problemas, não apenas as coisas que você "acha" deveriam ser diferentes.
Se você quiser que os processos do Apache ocupem menos memória, desabilite os módulos (já que cada um deles é mais código que precisa estar na memória). Mas se você precisar de todos os módulos que você ativou, então, bem, é isso.
Uma abordagem que usei ao administrar uma máquina com restrição de memória foi mover certas tarefas do Apache para outros servidores, para que eu pudesse ajustá-las separadamente.
Mas uma abordagem muito mais simples é mudar
MaxClients 120
para algo mais razoável para sua carga de trabalho:
If we consider the rewrite accesses and the main site traffic, we have about 70 requests per minute. Right now, we have 33 incoming connections.
Voltarei a isso momentaneamente, mas se você estiver lidando apenas com 33 solicitações simultâneas, não precisará de 120 trabalhadores!
MaxClients 40
E você provavelmente deve reduzir MinSpareServers
e MaxSpareServer
para algo como 5 e 10, respectivamente. Não há necessidade de ter 30 trabalhadores sentados sem fazer nada.
Agora, voltando para
If we consider the rewrite accesses and the main site traffic, we have about 70 requests per minute. Right now, we have 33 incoming connections.
Se você tiver 33 solicitações simultâneas, mas só fizer 70 por minuto, há algumas possibilidades:
- Suas solicitações estão demorando cerca de 30 segundos para serem veiculadas!
- Sua taxa de solicitações não é muito estável e, na maior parte do tempo, você não está fazendo nada.
Se o # 1 for o caso, eu realmente não sei como ajudar - algo está incrivelmente errado, tão errado que nem sei onde dizer para começar a procurar.
Se for o segundo lugar, acho que você está atendendo todos os seus recursos estáticos (imagens, js, css, fontes) do seu servidor. É melhor colocá-los em um CDN, mas se você realmente não puder fazer isso, poderá definir tempos de cache super longos e ativar o verniz novamente. Se você estiver usando processos do Apache com PHP e toda uma série de outras coisas apenas para servir arquivos estáticos, você está desperdiçando recursos - faça isso com algo mais simples!
My problem is that CPU (all cores) have a high load. Most of time, hitting between 90% and 100% load! The offending process is the apache2.
Este é um número constante ou apenas quando você atende a solicitações?
Como a aparência de E / S de disco ( iostat -mhx 2
)? O que o MySQL está fazendo ( show processlist;
)?
Seu servidor é muito dominado pelo que você descreveu. Esta é uma boa notícia, porque significa que você deve corrigir esse problema.