Apache2: o servidor atingiu a configuração MaxClients, considere elevar a configuração MaxClients

2

Estou encontrando problemas em um Ubuntu 12.04 LTS dedicado (Apache / 2.2.22), PHP 5.3 com APC.

A cada poucas horas, vejo isso acontecer:

[Fri Aug 17 15:36:51 2012] [error] server reached MaxClients setting, consider raising the MaxClients setting

Isso faz com que o servidor elimine / recuse todas as conexões.

Quando vou reiniciar o apache:

[Fri Aug 17 15:38:14 2012] [warn] child process 8946 still did not exit, sending a SIGTERM
[Fri Aug 17 15:38:14 2012] [warn] child process 7496 still did not exit, sending a SIGTERM
[Fri Aug 17 15:38:16 2012] [warn] child process 8946 still did not exit, sending a SIGTERM
[Fri Aug 17 15:38:16 2012] [warn] child process 7496 still did not exit, sending a SIGTERM
[Fri Aug 17 15:38:18 2012] [warn] child process 8946 still did not exit, sending a SIGTERM
[Fri Aug 17 15:38:18 2012] [warn] child process 7496 still did not exit, sending a SIGTERM
[Fri Aug 17 15:38:20 2012] [error] child process 8946 still did not exit, sending a SIGKILL
[Fri Aug 17 15:38:20 2012] [error] child process 7496 still did not exit, sending a SIGKILL
[Fri Aug 17 15:38:21 2012] [notice] caught SIGTERM, shutting down
[Fri Aug 17 15:38:21 2012] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Fri Aug 17 15:38:22 2012] [notice] Apache/2.2.22 (Ubuntu) PHP/5.3.10-1ubuntu3.2 with Suhosin-Patch mod_ssl/2.2.22 OpenSSL/1.0.1 configured -- resuming normal operations

Desde que isso começou, eu levantei as configurações para o apache (é uma máquina de 6 núcleos com 16GB de memória RAM, então imaginei que faria muito isso).

<IfModule mpm_prefork_module>
    StartServers          8
    MinSpareServers       5
    MaxSpareServers      10
    ServerLimit         500
    MaxClients          500
    MaxRequestsPerChild 1000
</IfModule>

O servidor não serve nada além de PHP (sem arquivos estáticos), e as cargas de página nunca são mais do que alguns segundos ...

Eu tenho assistido mod_status (apenas ativado), mas não vejo nada estranho ...

Server uptime: 20 minutes 46 seconds
Total accesses: 9206 - Total Traffic: 641 kB
CPU Usage: u147.52 s17.21 cu0 cs0 - 13.2% CPU load
7.39 requests/sec - 526 B/second - 71 B/request
2 requests currently being processed, 8 idle workers

___...W__..._W.....__...........................................
................................................................
................................................................
................................................................
................................................................
................................................................
................................................................
....................................................

Eu até tentei executar alguns testes de estresse com o apache ab para ver se eu poderia reproduzi-lo ... sem sorte. : (

EDIT: Acabei de fazer uma grande descoberta:

DEBUG: WARNING - require(): GC cache entry '/var/www/common/revisions/1061/library/core/bootstrap.php' (dev=64513 ino=1577080) was on gc-list for 3601 seconds /var/www/common/revisions/1061/library/core/cache/disk/dao.php (16)

Esse erro é o que está causando o problema, acredito que esteja relacionado à APC.

    
por Ian 17.08.2012 / 22:15

2 respostas

2

Parece que o problema era que o APC estava ficando sem memória ou algo assim (para armazenar arquivos no opcode) que estava reduzindo o apache. Quando eu aumentei o limite de memória para 256M ( apc.shm_size=256M ) o problema foi embora.

    
por 18.08.2012 / 16:53
1

Traga o Apache por trás do proxy reverso (como nginx, ...) Antes de compilar o apache a partir do código-fonte, você precisa de "código rígido" na origem do apache para aumentar o limite de 256 para cerca de 2048

    
por 18.08.2012 / 12:32