Ssl HTTP2,NginX,但仍为高TTFB
无论我们做了什么改变,TTFB都很高! 令人惊讶的是,服务器端的家伙坚持认为一切都设置正确,服务器运行速度足够快,但报告根本没有改变! 经过这么多的优化,我不敢相信它没有改变,我开始怀疑TLS、gZIP和重定向。。。Ssl HTTP2,NginX,但仍为高TTFB,ssl,nginx,http2,Ssl,Nginx,Http2,无论我们做了什么改变,TTFB都很高! 令人惊讶的是,服务器端的家伙坚持认为一切都设置正确,服务器运行速度足够快,但报告根本没有改变! 经过这么多的优化,我不敢相信它没有改变,我开始怀疑TLS、gZIP和重定向。。。 我遗漏了什么吗?页面本身似乎需要大约一秒钟的时间才能生成。这里是一个curl输出(),请注意time\u appconnect $ curl -w "@curl_format.txt" -so /dev/null https://jimmydance.com/ time_n
我遗漏了什么吗?页面本身似乎需要大约一秒钟的时间才能生成。这里是一个curl输出(),请注意
time\u appconnect
$ curl -w "@curl_format.txt" -so /dev/null https://jimmydance.com/
time_namelookup: 0.004
time_connect: 0.217
time_appconnect: 0.921
time_pretransfer: 0.921
time_redirect: 0.000
time_starttransfer: 1.348
----------
time_total: 1.352
这表明瓶颈是生成页面的应用程序。查看页面本身,不会花费太长时间,我会查看您正在使用的框架或分配给服务器的资源。使用@frederik deweerdt的答案和
- 您的服务器在进行TLS握手时花费了将近1秒的时间(
)time\u appconnect:0.921
- TTFB是
time\u startttransfer-time\u appconnect(1.348-0.921=0.427)
- 服务器生成html所花费的时间
TTFB-(time\u connect-time\u namelookup)(0.427-(0.217-0.004))=0.214
- 时间\u namelookup在本例中需要很长时间。要从图中排除DNS解析器性能,可以解析cURL的IP:--resolve www.zasag.mn:443:218.100.84.167。也值得寻找一个更快的解析器:)
- time\u connect是从客户端的角度来看的TCP三方握手。它在客户端发送ACK后结束-它不包括ACK到达服务器所需的时间。它应该接近到服务器的往返时间(RTT)。在本例中,RTT看起来约为200 ms
- 时间\u appconnect这里是TLS设置。然后,客户机准备发送其HTTP GET请求
- 时间\u startttransfer就在cURL从网络读取第一个字节之前(它还没有真正读取它)
实际上与来自该客户端的第一个字节的时间(TTFB)相同,在本例中为250毫秒。这包括网络上的往返,因此您可以通过计算TTFB-(time\u startttransfer-time\u appconnect
)更好地猜测服务器在请求上花费了多长时间,因此在这种情况下,服务器只花了几毫秒响应,其余时间是网络。 总时间是客户端发送FIN连接断开后的时间time\u connect-time\u namelookup