Ajustando o tempo limite do Apache KeepAlive para HTTPS

2

Meu site força o HTTPS em todos os lugares e tem um tempo de carregamento médio de 3 a 5 segundos. Graças ao cache, o tempo de carregamento de repetição é de 0,8 segundo.

A negociação SSL leva de 150 a 300 ms em meu servidor, portanto, quero manter cada conexão ativa com a maior frequência possível para evitar a latência.

SSLSessionCache é definido como o padrão de 300 segundos.

O tempo limite do Apache KeepAlive foi reduzido recentemente de 5 segundos para 2 segundos.

Esta alteração resultou em uma diminuição notável na Média de Carga do Servidor (média de 5% em vez de média de 10%), mas estou querendo saber se isso também poderia estar causando tempos de carregamento mais lentos, se os primeiros tempos de carregamento forem de 3 a 5 segundos? Isso significa que ele deve realizar a negociação SSL novamente toda vez que passar do tempo limite de 2 segundos?

É melhor ter médias de carga um pouco maiores com menos negociações SSL (mas mais tarefas httpd suspensas) ou menores médias de carga com mais negociações SSL?

Definitivamente temos bastante CPU & recursos de memória para poupar. Então, em última análise, a questão é: o que resultará no melhor desempenho para nossos espectadores? Aumentando o tempo limite do KeepAlive para 3-5, ou mantendo-o em 2?

Obrigado!

    
por PF Billing 08.09.2014 / 19:39

1 resposta

0

Em relação à carga do servidor: você não diz qual sistema operacional é esse. Para a maioria dos sabores do Unix (incluindo o Linux), desde que a carga seja menor que o número de CPUs, você provavelmente não deve se preocupar com isso. Nesse cenário, cada processo fica na CPU enquanto pode fazer coisas úteis lá (mais ou menos). Mas quando há uma fila de proceses esperando para chegar à CPU, o sistema operacional interrompe as tarefas antes que elas estejam prontas para render - quando isso acontece, sua taxa de transferência começa a diminuir.

(Eu nunca vi carga expressa como% antes - de onde vem isso?)

Com relação aos tempos de carregamento da página: os logs do servidor não são o local a ser exibido. Se você quiser descobrir se isso está causando um impacto, será necessário consultar a cascata de carregamento da página em um navegador (ferramentas do desenvolvedor no Chrome, Firebug no Firefox ou usar um verificador on-line, como pingdom - lembre-se de usar um proxy para adicionar latência se estiver testando localmente. Você está procurando por lacunas entre os pedidos para o seu site maiores que o keepAliveTimeout.

É minha experiência que intervalos de mais de 1 segundo são muito raros, mesmo em redes muito lentas. E onde ocorrem, ou são resultado de um atraso explícito (por exemplo, carregamento lento de uma nova imagem em um slideshow) ou (ainda mais raro) uma falha patológica na página (por exemplo, recuperar um javascript muito grande e bloqueador de um local muito lento ).

(OK, então estamos realmente procurando lacunas entre os pedidos no mesmo soquete - mas isso é difícil de visualizar).

    
por 22.01.2015 / 14:22