CDN 的一大优势是它能够快速、高效地交付内容。CDN 性能优化可分为三个类别。浏览 CDN 指南。
阅读本文后,您将能够:
相关内容
订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!
复制文章链接
基本上,互联网上的每个人都体验过内容分发网络 (CDN) 的好处。包括 Google、Apple 和 Microsoft 等公司在内的大多数技术公司都使用 CDN 来减少加载网页内容的延迟。
CDN 通常会将服务器放置在不同网络之间的交换点。这些互联网交换点(IXP)是不同互联网提供商连接的主要位置,以便彼此提供对来自其不同网络的流量的访问。除了 IXP 外,CDN 还将服务器放置在位于全球高流量区域和战略位置的数据中心,以便能够尽快移动流量。
CDN 的一大优势是它能够快速、高效地交付内容。CDN 性能优化可分为三个类别。
为了便于理解使用 CDN 的好处,我们来看看没有 CDN 时普通客户端/服务器数据传输会是什么样子。
假设纽约的某个人需要访问新加坡服务器上托管的网站。这两个位置相隔甚远,物理距离为大约 9,520 英里。
如果承载网站内容的服务器(源站服务器)位于新加坡,则对各个网页资产的每个请求都必须从纽约前往新加坡,然后再返回。如同搭乘具有许多连接点的国际航班一样,每个请求在从 A 点传到 B 点的远距路程中都要经过一系列路由器。
如果要查看计算机从当前位置到达特定 Web 服务需要多少个不同连接点(跃点)的真实示例,可以使用桌面端计算机探索一下 traceroute 实用程序。
请求从纽约到新加坡必须沿途经过每个路由器位置,因此总距离和每个路由器处理请求所花费的时间都会增加传输时间(延迟)。一旦源服务器处理了请求并响应了发出请求的客户端,它就会将信息发送回去,通过类似的路由器序列后返回到纽约。此总往返行程的度量在电信中称为 RTT(往返时间)。暂时忽略可用带宽和潜在的网络拥塞,我们来看一个延迟因素的例子。
为便于阐述,我们假设:
我们粗略看一下该网页的加载时间:
在这个简单示例中,网页加载的总传输时间约为 3000 毫秒。
如您所见,每次发出请求并发送响应时,都要遍历纽约客户与新加坡源站之间的整个路径。随着网站规模扩大并需要更多资产,A 点和 B 点之间的延迟会不断增加。
我们再看一下向纽约的 Web 客户端提供托管在新加坡的内容的示例,但这一次新加坡站点使用一个在亚特兰大设有服务器的 CDN,其含有静态网站的缓存副本:
我们粗略看一下该网页使用 CDN 时的加载时间:
网页加载的总传输时间约为 1100 毫秒。
在本例中,客户端与内容之间距离缩短使静态内容的延迟时间缩短了 1900 毫秒;也就是说,加载时间缩短了将近 2 秒钟。
通过缩短所有必要流量都需要遍历的总距离,网站的每一用户都能节省大量加载时间。用户会随着等待时间增加而开始迅速离开站点(跳出),因此这种改进既代表了更好的用户体验,也代表着更长的页面停留时间。
如前文所述,当客户端从源站服务器请求文件时,请求通常需要传送到服务器,然后再传回来。CDN 在称为“高速缓存”的过程中将静态内容文件从源站服务器拉取到分布式 CDN 网络中,从而减少延迟。某些 CDN 具有高级功能,允许有选择地高速缓存动态内容。数据经过高速缓存之后,CDN 将从最近的 CDN 数据中心向客户端提供内容。
完成 TCP 握手后,客户端计算机向 CDN 的网络发出 HTTP 请求。如果内容尚未缓存,则 CDN 将首先通过在源站服务器和 CDN 边缘服务器之间进行额外请求,从源站下载内容。
典型的 CDN 高速缓存过程包含以下 4 个步骤:
CDN 与客户端的近距离价值是在向源站服务器发出初始请求之后体现出来的。一旦数据从源站服务器高速缓存到 CDN 网络中,来自客户端的每个后续请求都只需到达最近的边缘服务器即可。这意味着,如果最近的边缘服务器比源站服务器近,就能减少延迟,并且更快提供内容。
务必要牢记一点,这不包括下载资产以及处理请求和响应所需的时间;到目前为止,仅计算在两个位置之间传输信息所需的传输时间。我们将探索的其他重要延迟因素还包括数据缩减、硬盘速度和网络拥塞。
为缩短页面加载时间,CDN 减少 CDN 的高速缓存服务器和客户端之间的总体数据传输量。当传输的数据总量下降时,延迟和所需带宽都会减少。带来的结果是更快的页面加载和更低的带宽费用。这些缩减包括两个关键组成部分:
极简化:极简化是指通过删除用于帮助人类了解所发生情况的所有组件来减少代码块大小的过程。尽管工程师需要将想法分解为合理的变量名称、空格和注释,以使代码块易于阅读和维护,但计算机在删除这些字符后仍然可以成功运行代码。
下方列出了极简化前后的代码块:
极简化之前:八行代码
极简化之后:缩减为一行代码
现在,代码片段已从八行减少到一行,整个文件的大小也缩小。这意味着传输文件所需的时间将缩短,减少了延迟并有助于更快加载内容。
文件压缩:若要减少通过互联网传输数据时所需的延迟和带宽消耗,文件压缩是一个重要组成部分。GZip 是常用的压缩方法,视为传输网页时所用的一种最佳实践。许多 CDN 提供商默认情况下都启用 GZip。GZip 压缩的节省程度有多大?通常,压缩后的文件的大小比初始文件小大约 50% 到 70%。
就 CDN 硬件优化而言,与传统硬盘驱动器(HDD)相比,使用固态硬盘(SSD)具有显著的优势。固态驱动器打开文件的速度比传统硬盘驱动器最多快 30%,而且更具弹性和可靠性。
与电唱机类似,传统硬盘驱动器由旋转的圆形金属碟片构成,碟片上的磁性涂层可以存储数据。当碟片旋转时,上方臂架上的读/写头可以访问信息。这是一种机械过程,会受到碟片旋转速度的影响。随着固态驱动器的诞生,旧式硬盘驱动器的使用已在减少,但它们目前仍在生产,并在许多计算机系统中广泛使用。
固态驱动器(SSD)也是一种持久性存储形式,但其功能与 USB 优盘驱动器或常见于数码相机等设备中的存储卡更为相似;它们都没有活动部件。如果常规硬盘正在运转并且系统陷入混乱,则 HDD 可能会跳过,导致读/写错误和潜在的停机时间。SSD 的另一大优势是访问碎片化文件。文件碎片化指的是文件的多个部分位于磁盘的不同位置上,这会导致 HDD 驱动器访问速度变慢。由于 SSD 可以有效访问不连续的存储位置,因此碎片化不会对性能造成威胁。
在首批 CDN 中,数据存储在硬盘驱动器上。现在的一些 CDN 服务将所有边缘缓存放在固态驱动器上进行。SSD 的缺点是成本高昂;SSD 的成本可达传统介质的 5 倍。因此,一些 CDN 服务通常会避免使用 SSD,而选用较旧的技术。Cloudflare CDN 仅使用 SSD。
入门
关于CDN
CDN 功能特点
CDN服务器
CDN 词汇表
学习中心导航