Download de arquivo inesperado Lentidão após ativado SPDY no Nginx

2

Um site estático WordPress simples é executado inteiramente em https.

Nginx conf aqui: link

Apenas a diferença antes / depois é:

listen       443 ssl;
listen       443 ssl spdy;

Nginx 1.8.0 com SSL, sem SPDY:

Respostadoarquivotransitions.js:

HTTP/1.1200OKServer:nginx/1.8.0Date:Sun,28Jun201518:13:30GMTContent-Type:application/javascriptLast-Modified:Wed,03Dec201414:19:08GMTTransfer-Encoding:chunkedConnection:keep-aliveVary:Accept-EncodingETag:W/"547f1bdc-5267"
Expires: Sun, 12 Jul 2015 18:13:30 GMT
Cache-Control: max-age=1209600
Content-Encoding: gzip

Mesma configuração do servidor, com SPDY:

Respostadomesmoarquivojs:

HTTP/1.1200cache-control:max-age=1209600content-encoding:gzipcontent-type:application/javascriptdate:Sun,28Jun201518:24:49GMTetag:W/"547f1bdc-5267"
expires: Sun, 12 Jul 2015 18:24:49 GMT
last-modified: Wed, 03 Dec 2014 14:19:08 GMT
server: nginx/1.8.0

Observe como a resposta do servidor para esses arquivos difere muito quando o SPDY é ativado.

O tempo total para carregar tudo é praticamente o mesmo.

O fato de ir de uma cachoeira bastante diagonal a uma queda vertical reta é esperado, multiplexando com força total.

Mas todas as barras verdes TTFB nesses recursos js, css e de imagem aumentam para cerca de 280 ms e as barras azuis para o tempo de download de conteúdo vão do seguinte para nada, para mais de 1s cada.

Olhar detalhado aqui:

Étudomuitouniformeparasercoincidente.

iptablesnãosugerenenhumestrangulamento.Nadamudounoconfdonginx,alémdeativaroSPDY.Comoéonginx1.8.0,tambémnãoéobugtcp_nodelay.Nãotenhoconfiguraçõeslimitadorasespeciaisemmeusarquivosconfoufirewall.keepalive_timeouté75eooutropadrãodeopçõesdekeepalive.

Ondedevoprocurar?Oqueeupossotentar?Qualpodeseroproblema?

Comoalarguradebandapodeserumproblemaagora,até28ativosestãosendobaixadossimultaneamente;aquiestáográficodautilizaçãodalarguradebanda.OdownloaddeJSocupadoaconteceentre0.7se2s.Barumestranhonariz-mergulho,larguradebandafazomáximo(1,5Mbps),entãotalvezoambientedehospedagemtemalgumainfluênciaaquitambém.

    
por JayMcTee 29.06.2015 / 00:04

1 resposta

2

Eu acredito que o que você está experimentando é consistente com o funcionamento do SPDY.

No HTTPS "antigo", o navegador enviará solicitações ao servidor de maneira serial, que é o que você está vendo na primeira captura de tela.

Com o SPDY, no entanto, todos os pedidos são enviados simultaneamente, após o qual o servidor responde com os arquivos na ordem que julgar ideal. Isso é o que você está vendo na segunda captura de tela - observe que o início de todas as solicitações está no mesmo ponto no tempo.

A ordem em que o servidor entrega os arquivos solicitados depende da configuração do servidor, mas, mais importante, da priorização de recursos. A ideia é enviar arquivos JS e CSS cedo, para que o site possa ser pintado. Depois disso, o SPDY deve enviar as imagens e outros recursos.

Como você indica que o tempo para DOMContentLoaded e load não é significativamente diferente entre SPDY e HTTPS, acho que seu servidor está se comportando corretamente. Se você deseja obter tempos de pintura mais rápidos, observe a priorização.

Fontes e leituras adicionais muito interessantes:

Como afirmado nos comentários abaixo, JayMcTee descobriu que sua situação específica era causada pela largura de banda - como o SPDY executa todas as solicitações simultaneamente, a largura de banda será preenchida mais facilmente, resultando em solicitações individuais mais lentas quando executadas em série.

    
por 29.06.2015 / 15:18