Parece que você precisa de mais memória RAM. Você também pode reduzir a quantidade máxima de processos HTTPd ou max param de memória para PHP.
Eu tenho um servidor centos 6 rodando apache2, php e MySQL. A configuração do apache tem alguns sites virtuais, pois o servidor executa seis sites, três dos seis sites usam o MySQL e os outros três não.
Recentemente, descobri que os sites que usam o MySQL travam - relatam o erro "não é possível conectar-se ao banco de dados sql ..."
Depois de procurar nos logs, parece que há várias instâncias do apache em execução que consomem toda a minha memória - isso faz com que o servidor mate o processo do MySQL para impedir que o servidor morra, e momentos depois ele irá restaurar (às vezes tenho que consertar algumas mesas)
Para tentar controlar a situação, reduzi minhas max_connections para 100 - no entanto, isso não ajudou
Neste momento, não tenho certeza se preciso de mais memória (1GB instalado) ou se estou sendo atacado pelo DoS. Com toda a honestidade, esperamos altos volumes de tráfego para o servidor, mas como posso saber se um único IP está continuamente atingindo a caixa?
Eu colei alguma saída durante a "operação normal" abaixo se isso ajuda
free -m
total used free shared buffers cached
Mem: 992 771 221 0 15 87
-/+ buffers/cache: 668 323
Swap: 976 39 937
ps aux | grep apache
apache 17148 0.1 3.4 430836 35036 ? S 06:34 0:10 /usr/sbin/httpd
apache 17150 0.1 3.3 430592 34560 ? S 06:34 0:12 /usr/sbin/httpd
apache 17157 0.1 3.3 333192 33896 ? S 06:34 0:13 /usr/sbin/httpd
apache 17164 0.1 3.3 333712 33984 ? S 06:34 0:09 /usr/sbin/httpd
apache 17167 0.1 3.4 430576 34584 ? S 06:34 0:12 /usr/sbin/httpd
apache 17168 0.1 3.3 430064 34312 ? S 06:34 0:11 /usr/sbin/httpd
apache 17176 0.1 3.3 430564 34560 ? S 06:34 0:11 /usr/sbin/httpd
apache 17184 0.1 3.4 432124 35500 ? S 06:34 0:08 /usr/sbin/httpd
apache 17186 0.1 3.3 430088 34384 ? S 06:34 0:14 /usr/sbin/httpd
apache 17188 0.1 3.3 333464 34028 ? S 06:34 0:13 /usr/sbin/httpd
apache 17190 0.1 3.4 430548 34616 ? S 06:34 0:08 /usr/sbin/httpd
apache 17193 0.1 3.3 333372 33548 ? S 06:34 0:12 /usr/sbin/httpd
apache 17195 0.1 3.4 333716 34672 ? S 06:34 0:11 /usr/sbin/httpd
apache 17225 0.1 3.3 430044 33584 ? S 06:35 0:10 /usr/sbin/httpd
apache 17239 0.1 3.4 430568 34796 ? S 06:35 0:11 /usr/sbin/httpd
apache 17241 0.1 3.3 430480 34284 ? S 06:35 0:11 /usr/sbin/httpd
apache 17290 0.1 3.4 430948 34824 ? S 06:35 0:10 /usr/sbin/httpd
apache 21095 0.1 3.1 331300 32344 ? S 08:15 0:01 /usr/sbin/httpd
apache 30858 0.1 3.2 430148 33304 ? S Aug04 0:49 /usr/sbin/httpd
apache 31996 0.1 3.2 430168 33480 ? S Aug04 0:48 /usr/sbin/httpd
Parece que você precisa de mais memória RAM. Você também pode reduzir a quantidade máxima de processos HTTPd ou max param de memória para PHP.
Concordo com @PauRudnitskiy, mas apenas algumas coisas que você deve analisar antes de simplesmente lançar mais memória no problema.
Como o Paul afirmou, dê uma olhada na configuração do seu apache e veja o número máximo de filhos e conexões que você pode ter. Se o número máximo de filhos também for o número de processos em execução, pode ser que você tenha um problema.
Verifique também qual é a carga do seu sistema usando o seguinte comando
uptime
Será algo parecido com isto
02:22:35 up 4:07, 4 users, load average: 0.10, 0.08, 0.06
se os números depois de " média de carregamento " parecerem grandes, então mostre que você está sob ataque. Simplesmente divde o maior número lá pelo número de núcleos de cpu que você tem, se o resultado for maior que 1 então significa que seu cpu está cheio.
Por último, só para adicionar o que estou mostrando é realmente para ver se o seu sob um pico de tráfego ou sob carga extra. Você precisará examinar seus logs do apache para tentar ver se o seu, sob algum tipo de ataque, normalmente é visto pelo mesmo endereço IP fazendo muitas solicitações à página e outras coisas que os usuários normais não fariam.Tags mysql memory apache-2.2 httpd