日前世界知名CDN厂商Cloudflare公布了自己的新一代服务器架构Gen X。作为技术最先进的CDN加速厂商,Cloudflare以自己特有的任播(Anycast)技术实现全球服务网络上每台服务器都可以运行每项服务。其安全防御方面也做的非常棒,基于1.1.1.1的公共DNS能抵御全球最大规模的DDOS攻击。本文我们一起来学习Cloudflare的新一代服务器架构Gen X
任播服务网络
Cloudflare设计并构建了遍布全球的服务网络,可以够快速,廉价地增加容量。允许任意城市(200个城市)中的每台服务器运行任何服务。可以实现服务网络上实现用户服务和流量的自动切换和转移。服务网络使用通过标准的商品硬件,管理系统可以实现对服务网络中开发人员代码和客户代码的自动部署和执行,用户无需关注底层硬件和软件架构。
传统的服务网络构建方法是使用专用服务器来运行多个分散的网络,这些专用服务器旨在运行特定功能,例如防火墙,DDoS保护或工作站等。但是这种方法会导致资源浪费和闲置,并极大的降低对硬件升级和采购的灵活性。
而使用统一单一的硬件架构可以同时提供安全性和性能优势,还可以提供自定制等和采购等方面的灵活性。
Cloudflare服务网络实现将Web请求路由到最近的数据中心,从而提高性能并最大程度地抵御攻击。
选择了数据中心后,Cloudflare用自定义负载平衡系统Unimog来动态平衡不同代服务器之间的请求。
Cloudflare服务网络可以不同层次上进行负载平衡:城市之间,城市间的物理部署之间,外部公网端口之间,内部光缆之间,服务器之间以及服务器内的逻辑CPU线程之间。
随着需求的增长,可以通过任意在全球可用资源池中通过简单添加新的服务器,网络接入点(PoP)或新的城市实现进行扩容。
当出现有服务器组件出现硬件故障,可以对其服务优先级降低并从资源池中删除。然后又由维护团队批量进行修复。
Cloudflare服务架构体系下,全球200个城市中任意数据中心都不用专门的运维人员来维护,而只需依靠托管设备的ISP(或数据中心)机房运维就可以完成所有任务。
Cloudflare Gen X架构
Cloudflare的第十代服务器Gen X已经在美国主要城市的数据中心已经上线部署,并争相全球范围内数据中心上线中。同上一代服务器构架相比,请求数可增加三分之一多,而成本可大幅降低。CPU每个内核的额定TDP(散热设计功耗)降低四分之一,L3缓存未命中率可降低一半,NGINX p99延迟降低也能降低一半。更多的性能测试数据见下面部分。
如此大幅度性能提高主要来源于新一代服务器架构中排除了英特尔,而是基于AMD第二代霄龙EPYC的Rome架构。
CPU
CPU效率是Cloudflare服务器设计中最重要的部分,在大负载的Cloudflare服务网络,CPU是最大的瓶颈。Cloudflare通过软件堆栈,可以对其核心很方面的扩容,因此CPU频率和功耗是需要考虑的最重要参数。Gen X架构中选择了单插槽配置的AMD EPYC 7642处理器。该CPU具有48核(96个线程),基本时钟速度为2.4 GHz,L3高速缓存为256 MB。尽管额定功率(225W)看起来有点高,对比9代服务器中的组合TDP的功耗更优势,而且可以实现更高的CPU性能。比我们上一代使用的双插槽高核心数英特尔处理器(Skylake和Cascade Lake)要强大得多。防火墙到工作站,最繁重的工作负载通常需要更大的计算量,因此算力的提高是新一代服务器带来的更大优势。
Gen X服务器经过精心设计,额外带有一个空PCIe插槽,可以在必要时添加额外板卡,比如通过GPU,FPGA,SmartNIC,定制ASIC,TPU等来按需来增加。
内存,存储和网络
由于需要的最大的瓶颈在于CPU,因此Gen X在RAM和SSD等其他硬件部分组件方面升级的幅度相对较小。
内存上,继续使用256GB RAM,与上一代产品持平,但使用了更高额定频率的2933MHz。
存储方面,仍然配备了大约3TB的存储空间,使用3x1TB的NVME闪存,同时支持更高的可用IOPS和更高的耐用性,支持使用LUKS进行全盘加密,而不会受到损失。
网卡,继续使用了Mellanox 2x25G NIC。
机箱的大小减少了为简单的1U尺寸,用来减轻数据中心的运行过程中的重量,并减少错误。
基准测试
Cloudflare工程团队在采用新一代服务架构之前,对CPU做了一些基准测试,我们来看下结果。
Cascade Lake VS EPYC
Cloudflare选择英特尔Cascade Lake和AMD第二代EPYC处理器,在功耗和性能之间进行了对比测试。结果AMD EPYC 7642 CPU排名第一。大多数Cascade Lake处理器在所有内核之间共享每个内核1.375 MiB L3缓存。在经济方面,AMD第二代EPYC处理器的起始价格为每个内核4 MiB。AMD EPYC 7642是一个独特的SKU,因为它在其48个内核上共享256 MiB的L3缓存。在每个内核旁边都有这么大的L3缓存和大约5.33 MiB的高速缓存,所以性能更高。
随着第二代EPYC的推出,传统的缓存布局也发生了变化,第二代EPYC是AMD使用多芯片模块(MCM)设计的副产品。256个MiB L3高速缓存由8个单独的芯片或由2个内核复合体(CCX)形成的核心复合体芯片(CCD)组成,每个CCX包含16个MiB L3高速缓存。
模拟环境测试
Cloudflare的生产环境流量具有持续工作量的许多特征,这些特征通常不会导致工作频率发生较大变化,也不会进入空闲时间段。测试时候选择了一种模拟流量模式,使用用HTTPS的Cached 10KiB png。来评估CPU的最大吞吐量或每秒请求数(RPS),这是要评估的关键指标之一。测试中没有禁用Intel Turbo Boost和AMD Precision Boost,也没有测量每秒请求,每秒退休指令(IPS),L3缓存未命中率和持续工作频率时的匹配CPU频率。
与第9代2P Intel Xeon Platinum 6162服务器相比,1P AMD 2nd Gen EPYC 7642服务器领先,每秒处理的请求多50%。
基于持续的工作量,应该以高于基本时钟的持续工作频率结束。AMD EPYC 7642的工作频率或处理器可使用的周期数比Intel Xeon Platinum 6162频率高出约20%,这可以解释上面RPS增加一半的。
生产环境测试
在生成环境中最主要的瓶颈似乎是高速缓存,由于L3高速缓存未命中率降低,每秒请求数量以及处理请求的时间都有了显著提高。测试的数据是在第7代到第9代服务器之间存在的某个时间点收集。在将基于第二代EPYC的Gen X用于生产环境后,结果能够与之前实验室模拟的结果非常相似。尽管每秒的请求数RPS与模拟结果并不完全一致,但是AMD EPYC服务器的性能仍然优于所有以前的产品,包括性能比Intel Gen 9服务器高出36%。
由于每秒的请求数低于预期,因此随着时间的推移,我会看到更少的指令退出使用以及更高的L3缓存未命中率,但仍保持了第9代的领先优势,性能提高了29%。
版权申明:本站文章均来自网络,如有侵权,请联系01056159998 邮箱:itboby@foxmail.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有