Consequências de limitar o número máximo de processos httpd

1

Estou pensando em limitar o número máximo de processos httpd em um servidor web centos / apache. Tenho visto vários posts que discutem essa ação para ajudar a reduzir a carga de memória (e é por isso que estou pensando nisso), mas nenhum deles discute as consequências para os usuários finais. Se alguém pudesse esclarecer esse ponto, seria muito apreciado.

    
por MarcF 18.04.2013 / 12:22

3 respostas

3

A conseqüência para o usuário final é simplesmente que, uma vez que o servidor atinja o limite de processos / threads / conexões simultâneos, ele não aceitará mais conexões até que outro usuário pare.

EDITAR: como o syccbean apontou nos comentários, eles irão inicialmente receber uma resposta atrasada, já que o servidor tem uma fila de espera de lista de pendências. Não é até que a fila esteja cheia que eles terão a conexão recusada. Em qualquer caso, o resultado é que eles receberão uma resposta mais lenta ou nenhuma resposta.

Como regra geral, você deve descobrir quantos usuários simultâneos você costuma ter nos períodos de pico e certificar-se de que seu servidor possa lidar com pelo menos o dobro disso. E você precisa revisitar essas estatísticas regularmente e alterar suas configurações se os padrões de seus visitantes tiverem mudado.

Sugiro a leitura de Como você realiza testes de carga e planejamento de capacidade para sites da Web? para obter mais informações sobre isso.

    
por 18.04.2013 / 12:29
1

O efeito exato depende do sistema operacional / versão do apache.

No seu CentOS você tem dois valores a serem considerados: - processos (criança) - threads por processo

Se você tiver 100 tópicos por criança e permitir 100 filhos, poderá ter acesso a 10.000 pessoas ao mesmo tempo.

Se você reduzir isso para 5 filhos (a mesma ThreadsPerChild), apenas 500 pessoas poderão acessar ao mesmo tempo.

efeito positivo para você: economia de memória mas possível efeito negativo: pessoas (qualquer pessoa > 500) não podem acessar seu site

Ele ajuda a saber quantas pessoas acessam seu site em um determinado período de tempo, para ter uma ideia de quantas acessarão ao mesmo tempo.

    
por 18.04.2013 / 12:32
1

O custo é que as pessoas são efetivamente informadas "ocupadas, tente novamente mais tarde", em vez de passarem períodos muito longos esperando por um resultado.

Se, por exemplo, um tempo de serviço normal de uma página for 1/10 de segundo, um servidor pequeno fornecerá até 10 muito rapidamente, mas depois esse limite diminuirá drasticamente: 50 usuários verão respostas individuais em 4 segundos, 40 vezes mais lento, enquanto 100 usuários conectados verão suas respostas demoradas 9 segundos, 90 vezes mais lentas. Esta é uma consequência horrível do que poderia ser uma "sobrecarga normal" (; -))

A sugestão de usar "controles de admissão" para evitar que você fique sem memória se a memória for boa. Se você fizer um teste de carga trivial e descobrir que ficou sem memória e começar a debater com 500 usuários, defina o limite para ficar um pouco abaixo disso.

- dave

    
por 18.04.2013 / 15:32