Fui solicitado a configurar um servidor de bloco otimizado mais novo que fornecesse blocos sobre HTTPS (o Google desativou algumas APIs de mapas quando a página não é HTTPS) e parecia ser a coisa certa a se fazer para usar HTTP2.
O servidor existente era o Apache 2.4.7 com o mod_python rodando o TileStache (um aplicativo Python) para servir os tiles. O novo servidor é o Nginx 1.11.3 configurado com SSL e HTTP2, e usando o uwsgi 2.0.12 para executar o TileStache com a mesma configuração do TileStache.
No entanto, o cliente relatou que o desempenho do novo servidor na Austrália é mais lento do que o do servidor existente.
Ao testar um desempenho de carregamento de bloco localmente usando o Apache ab, o servidor existente e o novo estão localizados nos EUA e de um servidor separado na mesma infraestrutura, o servidor Apache existente fornece blocos individuais em uma média de 131 ms em três solicitações. O novo servidor Nginx fornece blocos individuais a uma média de 115 ms em três solicitações.
De uma máquina Ubuntu 14.04 conectada à rede NBN de alta velocidade australiana a 100 Mbit / s, a mesma solicitação ab -n 3 para o servidor existente produz uma média <867 ms . Mas o novo servidor retorna os blocos em uma média de 1562ms .
O cliente relatou respostas semelhantes de 1-2 segundos em uma conexão ADSL na Austrália, mas números das ferramentas de desenvolvimento do Chrome, em vez de um teste ab.
O que faria com que o HTTPS sobre HTTP2 se degradasse em comparação com o HTTP?
Atualizar
Eu configurei o nginx para registrar o protocolo de solicitação e o ab parece realmente fazer solicitações com o HTTP / 1.0. Então repensando qual cliente de teste usar.
Eu configurei o h2load para usar o http2 para executar 70 solicitações simultâneas com:
h2load -t2 -c 70 -n 70 -i urls
.
Em um servidor na mesma infraestrutura, vejo:
min max mean sd +/- sd time for request: 2.62ms 15.40ms 7.11ms 3.12ms 72.86% time for connect: 14.94ms 68.85ms 44.32ms 17.95ms 52.86% time to 1st byte: 20.90ms 71.60ms 51.43ms 16.79ms 50.00% req/s : 13.95 47.65 22.20 8.99 85.71%
Em uma máquina Ubuntu conectada por NBN, vejo:
min max mean sd +/- sd time for request: 556.58ms 599.88ms 578.16ms 8.85ms 68.57% time for connect: 840.90ms 926.45ms 886.62ms 21.09ms 61.43% time to 1st byte: 1.40s 1.53s 1.46s 29.87ms 61.43% req/s : 0.66 0.72 0.68 0.01 61.43%
Então, 1,5 segundo, em média, antes de ver o primeiro byte.