Atualizando para o PHP > = 5.3.4 deve ajudar, pois parece que você foi mordido por esse bug: link
Eu tenho um VPS de núcleo de 4 cpu com ram de 4 GB. Ele está executando o Ubuntu 10.04 com nginx / 0.7.65, PHP 5.3.2 e MySQL. Eu uso o php5-fpm para a comunicação com o nginx. Eu também tenho php5-apc elogiando o cache do PHP.
Este sistema executa quatro sites e mostra aproximadamente 2,5 milhões de visualizações de páginas por dia.
Introdução ao problema - Os sites mostrarão de forma intermitente o erro 404 ao carregar uma página. Isso acontece potencialmente em todas as páginas, e eu posso me sentar lá e atualizar mais e mais e isso acontece em média uma vez a cada sete a dez vezes.
O que eu tentei - Atualizando o Ubuntu e o nginx, jogando com configurações de php e nginx. esse problema foi replicado no Ubuntu 11.10 e no nginx / 1.0.5.
Logs notáveis - Nginx error.log e access.log não mostram nada fora do comum, mas informam quando um 404 é emitido. php5-fpm.log exibe:
Nov 20 21:47:45.640003 [ERROR] [pool www] unable to retrieve process activity of one or more child(ren). Will try again later.
mas não estou convencido de que isso esteja relacionado a esse problema, como eu já vi nas configurações anteriores.
Configurações (links para imagens para economizar espaço) - * Configurações de APC, observe Fragmentação: 0% e a contagem total do cache é 0. link * nginx.conf
user www-data;
worker_processes 4;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
use epoll;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
server_names_hash_bucket_size 64;
access_log off; #/var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
keepalive_timeout 0;
#keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
O que ajuda - O único alívio que tive com isso é mover um dos dois sites mais ocupados para o seu próprio VPS. Obviamente eu adoraria ter todos os sites em um vps, já que o sistema tem recursos mais do que suficientes. Estou atingindo o limite de arquivos abertos em algum lugar? Eu sou suspeito que pode ter algo a ver com algo relacionado ao php.
Bastante confiante de que este é um problema de configuração em algum lugar. Não confia no que poderia ser, e passou 48 horas tentando pesquisar antes de postar essa pergunta.
Atualizando para o PHP > = 5.3.4 deve ajudar, pois parece que você foi mordido por esse bug: link