当考虑内容交付网络 (CDN) 时,很容易直接想到我们所知道的大品牌,例如 Netflix、Hulu 等。这是有道理的; 想象一下您最喜欢的节目的最新一集被分发到您的手机或客厅电视上是很直观的。 当然,实际情况比这复杂得多,大容量存储在客户体验中起着重要作用。
当考虑内容交付网络 (CDN) 时,很容易直接想到我们所知道的大品牌,例如 Netflix、Hulu 等。这是有道理的; 想象一下您最喜欢的节目的最新一集被分发到您的手机或客厅电视上是很直观的。 当然,实际情况比这复杂得多,大容量存储在客户体验中起着重要作用。
打电话时 Hulu 上的斯洛瑟豪斯,您的流媒体设备将首先访问离家较近的边缘 CDN。 CDN 节点可以保存的数据越多,服务就越有可能提供快速启动,而不是跳到更远的节点来检索请求的内容。 减少视频流所需的跃点的好处相当明显,但 CDN 的作用远不止于此。
CDN 还支持其他用例,例如特斯拉等汽车的无线 (OTA) 更新或将这些电影流从互联网转移到商用客机内部。 无论交付的文件类型如何,有一件事是明确的:您在边缘存储的文件越多,CDN 的响应能力就越强,这一点至关重要,因为客户通过 throbber 的旋转来衡量成功,而很少关心底层基础设施使这一切发生。
与往常的报告一样,我们不仅仅是想推测 CDN 的工作原理以及最有可能发现架构压力的地方。 我们去找了专家。 在这种情况下,那就是 清漆软件,内容交付软件领域的杰出领导者之一。
我们与 Varnish 合作,在我们的实验室中配置了一个完美的边缘 CDN 节点,配备了 Varnish 的内容交付软件、Supermicro 的 CDN 专用服务器、30.72TB Solidigm P5316 SSD 带来的海量存储空间以及来自 Supermicro 的高速 200GbE 互连NVIDIA 旨在更好地处理边缘 CDN 节点上的压力源,以及存储如何影响结果。
Varnish 软件是谁?
Varnish 提供的内容交付软件可以轻松加速数字交互、处理大量流量负载并保护网络基础设施。 Varnish 帮助组织将内容交付尽可能靠近客户,以确保最佳体验,同时实现基础设施投资的最大回报。
该基础基于功能丰富且强大的开源 HTTP 缓存和反向代理 Varnish Cache,位于源端和客户端之间。 它经过优化,可以从底层硬件中提取最大的性能和效率。 Varnish Cache 简化了系统级排队、存储和检索,使其成为对内容交付和边缘交付工作负载进行基准测试的理想方法。
Varnish 几乎可以在任何东西上运行,但在几个关键领域为边缘节点提供更多的马力以增强客户体验是有好处的。 从客户端设备返回数据中心的每一跳都会产生延迟,因此边缘节点可以交付的数据越多越好。 为此,我们构建了终极边缘 CDN 节点,并使用 Varnish 严格的节点验证工具对其进行了测试。
是什么让 Varnish CDN 如此之快?
CDN 需要的不仅仅是快速网络,尤其是在边缘。 如果每个请求都必须返回主机站点进行刷新,则效率低且速度慢。 最佳解决方案是在靠近客户的地方处理和存储数据的存储系统。 该系统需要海量存储能力和高性能服务器,能够快速从缓存中提取信息并立即交付。
Varnish Software 实施了一种支持超大型数据集的解决方案,可满足几乎任何具有高性能服务器和高密度存储系统的环境。 认识海量存储引擎。
Varnish Software 的海量存储引擎 (MSE) 是一种优化的磁盘和内存缓存引擎。 MSE 为超过 100TB 的数据集提供高性能缓存和持久性,支持视频和媒体分发、CDN 和大型缓存用例。 MSE 非常适合对大型数据集的高性能交付至关重要的公司。
借助高性能 MSE,缓存在重新启动和升级之间保持完整,从而避免昂贵且耗时的缓存重新填充。 这提供了快速检索并有助于避免重新启动后的网络拥塞。
MSE 解决方案可以在缓存中存储和提供几乎无限大小的对象,以实现快速且可扩展的内容交付。 MSE 经过优化,可以根据最近最少使用 (LRU) 缓存逐出策略提供碎片较少的内容,从而实现卓越的性能和并发性。 对于缓存大小大于 50GB 或内存有限的客户,Varnish 建议使用 MSE。
最新一代的 MSE (MSE 4) 允许磁盘发生正常故障,从而使持久缓存占用空间能够在检测到磁盘故障后自动恢复运行。
边缘CDN节点硬件配置
在我们的测试场景中,我们利用单个服务器充当边缘 CDN 节点和单个客户端。 我们的CDN节点是基于 美超微 SYS-111E-WR 服务器 配备单个 Intel Xeon Gold 6414U CPU。 该CPU提供32核,基础频率为2GHz。
我们将此 CPU 与 256GB DDR5 内存和八块 Solidigm P5316 30.72TB QLC SSD 搭配使用。 此设计旨在展示精益部署模型在性能方面可以提供什么,而不需要更昂贵的 SSD 或未充分利用的额外 CPU 资源。
对于客户端,我们在实验室中使用了可用的双处理器平台,配备 Intel Xeon Platinum 8450H CPU,虽然有些过大,但有足够的资源来确保瓶颈要么是网络,要么是 CDN 节点。
我们的系统配置了 Ubuntu 22.04 作为操作系统,每个系统都配备了 NVIDIA 200Gb NIC。 200Gb 以太网结构为此测试场景提供了充足的带宽。
边缘CDN节点性能
测试运行考察了 Varnish Software 在我们构建的边缘节点上的整体性能。 具体来说,评估的关键指标包括 TTLB(到最后一个字节的时间)、请求/秒、传输/秒(字节)、总请求、错误、CPU 使用率、内存使用率、吞吐量和吞吐量。 需要明确的是,吞吐量是 Varnish 发送的所有内容,而良好吞吐量是客户端实际看到的内容,忽略重传或开销数据。
测试是使用完成的 WRK 作为负载生成工具,使用 100 个 TCP 连接从视频后端拉取不同大小的文件块。 该测试旨在实现 90% 至 95% 的缓存命中率,以模拟部署的视频交付环境中常见的情况。 为了模拟不同的工作负载,我们重点关注小文件和大文件的性能,其中较小的文件可以模拟 API 调用,较大的文件可以代表直播或视频点播 (VOD) 场景中的各种视频质量。
对于较小的对象测试,我们测试了 100 和 500 KB 的文件大小,对于较大的对象,我们测试了 1,000、10,000、16,000 和 50,000 KB 的文件大小。 我们希望通过查看一系列文件大小来捕获 CDN 用例的组合。 对于进行大量但小型 API 调用的组织来说,100 KB 可能比大多数组织都大。 对于 VOD,10MB 对象可能代表短视频剪辑,16MB 代表高清视频,50MB 代表更高质量的视频。 这些文件大小还可用于分发和交付 ISO 映像、软件更新和安装包。
负载测试工具 WRK 返回 TTLB(到最后一个字节的时间),因此延迟指标显示整个视频块的完整加载时间。 此外,TTFB(第一个字节的时间)是第一次服务器响应的时间,通常以毫秒为单位,并且对于许多不同的文件大小来说是恒定的。
我们观察到 TTLB 为 4.4 毫秒至 995.2 毫秒。 对于 100 KB 的最小视频块,平均完整响应仅为 4.4 毫秒。 对于最大 50MB 的大小,整个加载仍然平均在 1 秒内完成。
其他值得注意的指标是错误计数; 唯一注意到的错误是一些残留超时错误。 这些预计适用于最大尺寸的物体。 在这些测试中,CPU 和内存使用率保持健康,约为满容量的 50% 至 60%。 CPU 使用率最高出现在 100KB 测试期间,占 58.8%,而 50MB 测试期间,占 58%,这是由于对较小文件的请求数量和较大文件的大小所致。
较大尺寸视频的平均吞吐量为 170.5+ Gbps,较小尺寸视频的平均吞吐量为 164+ Gbps。
使用一个 WRK 客户端作为加载生成器时,较大尺寸的平均吞吐量为 158.8+ Gbps,较小尺寸的平均吞吐量为 149.1+ Gbps。 正如在 Varnish 内部运行的其他一些实验中观察到的那样,预计可以通过扩展 WRK 客户端来实现更高的吞吐量,但这超出了本文的范围。
虽然原始性能指标很重要,但功耗是 Edge CDN 系统的另一个考虑因素。 这就是我们为此项目选择的平台发挥作用的地方。 单插座 美超微 SYS-111E-WR 服务器 提供密集的 NVMe 存储平台,带有大量用于 NIC 的 PCIe 插槽,而双处理器不会过于耗电。
为了测量施加负载时服务器的功耗,我们利用了 Quarch 主电源分析模块。 这使我们能够准确地了解服务器的功耗,响应时间为 125us。 在这里,我们在相同的时间内运行了每个测试组,并测量了从工作负载开始到结束的平均功率。
我们重点关注两个功率指标:总系统 RMS 功率与测试文件大小以及每秒每瓦请求数。 虽然第一个假设是功耗随着传输速度的提高而增加,但事实并非如此。 我们发现传输大小较低时功耗会增加,随着传输大小的增加,功耗会略有下降。 这归结为较小的传输大小驱动更多的 I/O 进程,而较大的传输大小驱动更少的 I/O 进程。
看看总系统功耗,在 1M 传输大小时,我们测得系统功耗为 473.9W,在 426.5M 传输大小时降低至 50W。 当我们将其分解为每秒每瓦特的请求数时,1M 传输大小的测量值为 46.9,而 1.09M 传输大小的测量值则下降到 50。
平衡性能和成本
我们的 Varnish CDN 节点旨在提供卓越的性能和密度。 不仅具有 1U 服务器机架密度,还具有 Solidigm SSD 提供的容量密度。 今天我们“仅”使用 30.72TB P5316 驱动器,但 61.44TB P5336 单元还有更多优势。 更好的是,CDN 工作负载的读取量非常大,这意味着这些基于 QLC 的 SSD 非常适合该任务。 有趣的是,当使用 Varnish 查看性能数据时,他们的工程师认为我们使用的是 Gen5 SSD,因为节点性能非常令人印象深刻。
虽然服务器密度是一个关键因素,但成本优化的 CDN 节点则是另一回事。 我们在这里使用的单处理器 Supermicro 服务器为 Varnish 提供了大量的硬件功能和扩展选项,而十个 NVMe 托架让我们利用 Solidigm 的 SSD 容量领先优势积累了超过 600TB 的存储空间。 每美元的相对性能,如果您想更深入地了解我们的数据,每瓦性能,这里的指标是无可争议的。
CDN 的任务并不令人羡慕,即根据有时可预测、有时不可预测的请求即时传送数据。 精心调校的服务器硬件对这些 CDN 节点的性能产生了巨大影响,而 CDN 节点正日益被推向边缘。 借助 Solidigm 的海量企业级 SSD,这些节点可以显着提高缓存命中率,最终提供卓越的客户体验。
本报告由 Solidigm 赞助。 本报告中表达的所有观点和意见均基于我们对所考虑产品的公正看法。
参与 StorageReview
电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | TikTok | RSS订阅