Prós e contras do Keep-Alive do lado do servidor da Web

2

O recurso de conexão Keep-Alive no protocolo HTTP destina-se a reduzir as ocorrências de conexão TCP ao servidor da web. Deve ser capaz de melhorar o desempenho do servidor da web. No entanto, descobri que alguns servidores da Web desativam deliberadamente o recurso KeepAlive do lado do servidor.

No meu entender, algum proxy reverso, ou seja, HAProxy, desativa o keep-alive de HTTP para reduzir o uso de memória, que é mais crítico do que o uso da CPU em algumas situações.

Existe algum outro motivo pelo qual o servidor Web desativa o Keep-Alive?

    
por Morgan Cheng 14.08.2010 / 12:10

1 resposta

2

Manter ativo é feito para reduzir o número de configurações tcp, que são tagarelas e são strongmente influenciadas pela latência. Seu principal objetivo é melhorar o desempenho do cliente - assim como para um servidor moderno, há um baixo custo na configuração de conexões tcp.

Alguns proxies / balanceadores de carga desabilitam o keep-alive para os servidores web, porque eles assumem os servidores reais e estão em uma LAN com latência insignificante e, portanto, a penalidade de instalação tcp é insustentável. Também diminui a complexidade do software de balanceamento, já que não há necessariamente uma relação de um-para-um entre as conexões de entrada e saída (da perspectiva do LB).

Existem algumas razões pelas quais um servidor desativaria o keep-alive, então eu suspeito que ele seja provavelmente um erro. Uma exceção são os servidores a-filho por conexão (apache), em que a liberação desse filho / segmento o mais rápido possível oferece vantagens, mesmo se a experiência total do navegador (e o uso de largura de banda) ficarem menores.

Observe que o afaik keep-alive é um recurso opcional e nenhum serviço é necessário para implementá-lo.

    
por 14.08.2010 / 14:33