O Apache não processa novas solicitações sem atingir o valor max_client.Com muitas crianças inativas

2

estamos enfrentando um problema, que novas solicitações não são processadas, mesmo que o apache não tenha atingido a configuração max_client.

Max_client is set to 800
max_spare server is 36
min_spare server is 35
Timeout 300
keepalive on
keepalive timeout 10

Max_keep_alive_requests 100

Por que o apache não está processando novos pedidos e enviando tempos limite mesmo que ele não tenha atingido seu valor max_client?

Uma strace revelou que cerca de 80 crianças apache estão em estado inativo, o que significa 0.0000 segundos na saída do strace.

Por que muitos filhos estão em estado ocioso e ainda geram novos filhos, mas ainda não processam o pedido e o tempo limite de envio.

we are using Php5,Apache 2 with mpm-prefork,Mysql 5,Running on Ubuntu 11.04 with CSF firewall.

Todas as solicitações são feitas a partir de um único ip (nosso endereço IP).

Uma solicitação em excesso de um único resultado ip em qualquer TCP / IP ou Restrições do Apache para se conectar resultará na negação de novas solicitações?

    
por ananthan 13.07.2012 / 09:55

2 respostas

1

Why this many children is in idle state and still generating new children,but stillnot processing request and sending timeout.

"Ninguém sabe"

Antes de mais nada, você precisa entender que gerar novos processos é MUITO caro no prefork.

Para evitar isso sempre que possível, você configura os parâmetros corretos para a carga do seu servidor e os picos de tráfego esperados.

Para descobrir, você vai em server-status e verifique que tipo de carga isso realmente é - é um gargalo no número de conexões, keepalive, concorrência por IP, largura de banda, latências de proxy de backend, muito poucos processos livres - o que?

Volte para nós se você tiver habilitado o status do servidor (e ExtendedStatus!) e entender o que a saída significa.

    
por 13.07.2012 / 14:15
0

pode ser que você esteja enviando várias solicitações pela mesma conexão do seu testbed.

basicamente você configurou:

keepalive on
maxkeepaliverequests 100

Neste cenário, se você estiver gerando várias solicitações na mesma conexão, atingirá o ventilador em 100 solicitações.

tente com:

keepalive off

ou

maxkeepaliverequests 0

nota: sua configuração de ServerLimit também deve corresponder pelo menos a MaxClients

    
por 13.07.2012 / 10:26