首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[译] 首字节时间 (TTFB) 如何影响了网站性能

[译] 首字节时间 (TTFB) 如何影响了网站性能

作者头像
江米小枣
发布2020-06-15 17:50:22
2.5K0
发布2020-06-15 17:50:22
举报
文章被收录于专栏:云前端云前端云前端

原文:https://www.medianova.com/en-blog/2019/08/06/how-time-to-first-byte-ttfb-impacts-your-sites-performance

众所周知网站速度受许多因素的支配。虽然纷乱如麻,但理清它们并非不可能。这样说来,其中一个你可以尝试去解读和改善的指标就是首字节时间(TTFB,Time To First Byte)。

本文将帮助你彻底理解 TTFB 这一指标对 web 性能造成影响的基础信息。

所以,首字节时间 (TTFB) 到底是什么?

首字节时间 (TTFB) 是对终端用户首次请求 web 服务器和 web 服务器响应到终端用户之间这段时间的称呼。

使用 DNS 解析站点地址以及取回对发送到站点的首次请求的响应是导致这个时间发生的主要因素。

换言之,这主要发生在以下 3 个步骤中,并且这些阶段中的性能将在 TTFB 期间扮演活跃的角色,分别列出的是各个步骤中可能的重要因素:

步骤1:向站点地址提交首次请求

  • DNS 响应时间(终端用户侧解析 DNS 请求有多块)
  • 网站服务器到终端用户的距离,越短越好
  • 网络稳定性

步骤2:由 web 服务器解析本次请求

  • 物理硬件响应时间 (web 服务器解析请求有多快)
  • 既有的服务器操作负载
  • 数据中心任何网络相关的延迟

步骤3:向终端用户发送首个响应

  • 终端用户的网速
  • 连接稳定性

好的 TTFB,不好的 TTFB

实际上,这个问题因你站点的内容而异。取决于站点内容中动态数据和静态数据的占比,对好坏的判断会不同。通常来说,许多速度测试工具会给出以下的范围:

  • 0 – 75ms 完美
  • 75 – 200ms 理想
  • 200 – 500ms 虽不足亦不远矣
  • > 500ms 有问题

但是完全由动态数据组成的站点实际上会超出这些范围,基于站点内容判断 TTFB 总是会更合理一些。

是什么拖慢了 TTFB?

上面提到过的步骤 1 和步骤 3 中存在的 网络问题 会延长 TTFB。

类似的是,步骤 2 中,在处理请求期间,老旧的硬件和磁盘或内存中的问题会造成速度减慢。

磁盘的低 I/O 值将妨碍快速处理,也将累积许多排队的请求。

同样的,如果服务器硬件不足以应对操作或瞬间的请求峰值,也将导致一个延长的 TTFB。

另外,不优化的代码、数据库,以及 web 服务器配置,也会延宕接收到的请求。

最后,服务器上处理请求的软件也会减慢速度。

如何加快 TTFB 速度

了解到痛点之后,可以通过下列手段减少初始化响应时间:

  • 首次启动时呈现静态数据
  • 使用 CDN,也就是让站点内容离终端用户更近
  • 代码优化:软件设置、编码性能的改善都能加快首次页面渲染
  • 数据库查询优化:必须对数据库规范化和数据库操作进行全面检查
  • 将数据缓存到内存中
  • 尽可能使用最新的硬件,如新的 CPU、SSD 或 NVME 的固态硬盘

CDN 对 TTFB 的影响

基本上,这也是使用了一个健壮的 CDN 后你将获得的:

  • 使用了 Anycast DNS 的 CDN 将会使用最近的 DNS 服务器并加速网站访问
  • 请求会被路由到最近的服务器上
  • 源服务器只用来处理新内容,CDN 缓存静态数据
  • 更多的可用硬件资源

TTFB 对 web 性能的影响

实际上,因为首字节开启了数据返回的阶段,所以 TTFB 和后续事务的性能是息息相关的。

优化 TTFB 将确保站点的后续操作更高效。籍由一个好的 TTFB 所铺就的道路,后续的 I/O 操作将会更快。

从另一方面来说,用户体验会因为高性能得到极大改善。因为网站加载得更快了,由于等不及页面加载完就流失掉的潜在用户肯定也就减少了。

--End--

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云前端 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 所以,首字节时间 (TTFB) 到底是什么?
    • 步骤1:向站点地址提交首次请求
      • 步骤2:由 web 服务器解析本次请求
        • 步骤3:向终端用户发送首个响应
        • 好的 TTFB,不好的 TTFB
        • 是什么拖慢了 TTFB?
        • 如何加快 TTFB 速度
        • CDN 对 TTFB 的影响
        • TTFB 对 web 性能的影响
        相关产品与服务
        数据库
        云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档