云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

服务器_域名批量注册工具_免费6个月

小七 141 0

时机问题

阿伦/乌斯帕什摄当考虑网站性能时,术语TTFB-time-to-first-byte-会定期出现。我们经常从cURL和Chrome中看到度量,本文将展示这些工具可以产生什么样的计时,包括到第一个字节的时间,并讨论这是否是您真正想要的度量为了。时间对于调试web请求来说,cURLcURL是一个非常好的工具,它还包含了进行定时测量的能力。让我们以一个网站为例(蒙古政府),并衡量一个请求到其主页多长时间takes:首次配置cURL在~/.curlrc:$cat.curlrc中的输出格式-w"dnslookw"的"dnslookup:%%{time{u-namelokup}{连接:%%{time{u connect}{appconnect:%%{time{u pretransfer};starttransfer:%{time UStartTransfer};总金额:%%{时间u总总}{大小{大小下载下载}\n"现在连接到网站的网站,下降输出的输出(-o/dev/null)因为我们只对时间感兴趣:$curl-所以我们只对时间感兴趣:$curl-所以我们只对时间感兴趣:$curl-所以$curl-所以我们只对时间感兴趣:$curl-所以我们只对时间:$cur/dev/空https://www.zasag.mndnslookup:1.510 |连接:1.757 | appconnect:2.256 |预传输:2.259|开始传输:2.506 |总计:3.001 |大小:53107这些计时以秒为单位。根据cURL的版本,可能会得到比这个例子更多的小数位数。3秒是很长的一段时间,记住这只适用于来自主页的HTML-它不包括任何JavaScript、图像,等等下面的图表显示了针对典型的httpovertls1.2连接(tls1.3安装程序需要少一次往返)的时间是指什么:本例中的时间查找需要很长时间。要从图中排除DNS解析程序性能,可以解析cURL:--resolve的IP:443:218.100.84.167。可能还需要寻找一个更快的解析程序:)。从客户端的角度来看,time_connect是TCP的三方握手。它在客户机发送ACK之后结束-它不包括ACK到达服务器所花费的时间。它应该接近到服务器的往返时间(RTT)。在这个例子中,RTT看起来大约是200time_appconnect女士这是TLS设置。然后,客户机准备发送它的httpget请求时间启动传输就在cURL从网络读取第一个字节之前(它还没有真正读取它)。time_starttransfer-time_appconnect实际上与这个客户机的第一个字节时间(TTFB)相同,在本例中为250毫秒。这包括通过网络进行的往返,因此您可以通过计算TTFB-(time_connect-time_namelookup)更好地猜测服务器在请求上花费了多长时间,因此在本例中,服务器只花了几毫秒响应,其余时间是network.time_总计就在客户端发送FIN连接之后撕裂下来。时机使用ChromeChrome和其他一些测试工具,使用W3C资源计时标准进行测量。在Chrome开发工具中,这看起来像这个:又来了,下面是如何将其映射到典型的httpovertls1.2连接上,还显示了Resource Timing属性名称:暂停(fetchStart到domainLookupStart)是等待启动连接的浏览器,例如,如果有更高优先级的请求,则在磁盘上分配缓存,或者已经有6个连接打开主机。首字母Chrome显示的连接是connectStart到connectEnd。与cURL计时不同,这包括SSL连接设置,因此如果您希望对RTT有一个公平的估计,这将是初始连接SSL。如果一个现有的连接被重用,那么DNS查找、初始连接和SSL将不会被重用显示。请求发送的是connectEnd-requestStart,它应该是可以忽略不计。类似的对于cURL,如果我们从TTFB中减去TCP握手时间,我们就可以猜测服务器真正花费在处理上的时间(同样,我们没有确切的RTT计时,所以这是一个近似值),我们又在寻找什么?这些测量,包括TTFB,可以帮助您诊断问题,并可能帮助您深入研究一个特定的问题,但它们是否真的告诉您一个网站的性能如何?最终,如果您希望度量用户的体验,那么返回某个HTML的第一个字节所需的时间是无效的。一个网页可能包含数百个图像,它可能有JavaScript和样式,需要在交互之前加载。为了反映真实的用户体验,您需要计算多长时间才能使web页面变得有用,并从用户访问站点的代表性示例中获取这些度量。这是另一天的主题:)