谁能想到,愿意在超大规模云平台上坚守x86架构的很可能是谷歌。亚马逊云科技在过去几年一直在大力推进其Graviton产品线,包括去年3月开始量产的Graviton2,以及去年11月宣布的Graviton3芯片,目前仍处于预览和非发布阶段。批量生产。总之,AWS的各大区域和数据中心都在全力迎接ARM新势力的到来。现在,微软也开始在Azure云上发布新的实例(也在预览中),显然是想在ARM服务器芯片领域有所作为。这些实例基于AmpereComputing制造的80核“Quicksilver”AltraArm服务器芯片,该芯片最初于2020年6月发布,可容纳80个计算核心,最大频率为3GHz。虽然由AmpereComputingAltra处理器提供支持的新AzureD系列和E系列实例引起了很多关注,但奇怪的是微软为什么没有提前一年或更早开始发布它们,并且不清楚为什么微软没有使用原版128核“Mystique”AltraMax开发的新实例,计划于2020年第四季度出样,并于去年秋季正式出货。但无论如何,Mystique处理器兼容微软目前部署的Quicksilver芯片,因此微软也可以根据需求快速将AltraMax芯片连接到供应链、服务器及其数据中心。感兴趣的朋友可能还记得“Siryn”芯片,这是采用AmpereComputing“A1”原研核心的芯片方案。我们对它基本已经失去期待,毕竟它不太可能使用Altra品牌,而且“A1”这个名字也不符合市场受众对技术和最终产品的期待——无聊的名字往往让人失去关注和讨论的兴趣.而纵观AmpereComputing的整个计算路线图,我们会发现超大规模企业和云服务商想要的是一个完整的技术体系,而不是一个特定的芯片产品。甲骨文、腾讯、阿里巴巴,甚至微软都想为自己的公有云选择最合适的芯片,而安培计算目前最期待的就是搭载A2核心的下一代芯片。这款新品预计2023年上市,不过上市和批量出货完全是两个概念。只要超大规模企业和云服务提供商不能立即把这个芯片放到云端数以万计的服务器中,那么安培计算的所有路线图都还只是一句空话。量产、认证、机房建设都需要时间,所以数据中心架构层面的这些周期性变化转化为实际影响需要五到十年的时间。话说回来,ARM服务器芯片的现状确实非常不错。只要不出大意外,ARM原定的20%到25%的市场份额目标应该没问题。微软的态度也相当明确,全力支持ARM服务器芯片在Azure云上的开花结果。微软在2017年开放计算峰会的演讲中提到,希望让ARM服务器占据所有服务器计算能力的50%。但当时微软并没有承诺在Azure云基础设施中直接提供ARM算力(只提供用户访问平台云和软件云中的微软软件),也没有提及在Azure上发布WindowsServer堆栈。ARM(但微软一直在内部使用ARM上的Windows来运行托管在Azure上的本机应用程序)。此外,微软还在此次峰会上公布了“ProjectOlympus”,以预览形式展示了这些服务器上的CaviumThunderX芯片和高通Centriq芯片。但在接下来的几年里,情况发生了翻天覆地的变化。高通取消了Centriq产品线,Cavium被Marvell收购,ThunderX3也很快被放弃。这迫使微软不得不自行设计或使用安培计算公司来开发ARM服务器芯片。目前,不少业内分析人士认为,微软将采取双管齐下的研发方式。那么,Azure中部署了多少ThunderX2芯片呢?我们估计不会太多,不然的话,Marvell怎么可能挡得住这个相当大的业务板块。Azure中有多少AmpereComputingAltra设备?应该比ThunderX2多很多。简而言之,微软是在云基础设施上提供ARM计算能力,主要是为了在虚拟机内部运行Linux操作系统。但据我们所知,WindowsServer目前还没有登陆ARM平台,一旦登陆,将对服务器计算架构产生深远的影响。有了这些背景,再参考微软“不会坐视AWS主导数据中心未来ARM服务器定义”的表态,接下来的情况就很明朗了。关于微软的ARMAZURE实例微软的QuicksilverARM实例目前处于技术预览阶段,因此我们不知道很多细节。但是一旦揭开Quicksilver和AWSGraviton3实例的神秘面纱,那么我们就要对这两款ARM服务器实例进行性价比分析,横向比较两款x86实例的销量。下面,我们也利用目前已知的参数信息,做一个表格来对比各个实例的配置、速度和价格。可以看出,微软公布了接下来六款ARM服务器实例类型的基本参数:首先,每款芯片提供8个DDR4内存控制器,这意味着AltraCPU可以支持远超当前配置水平的内存容量。ALtraCPU还支持NUMA集群,可用于创建更大的内存地址空间和计算引擎。目前尚不清楚这些Azure实例是单路设计还是双路设计。对于我们另外一个好奇点,微软也没有给出答案,即既然Altra芯片最多可以支持80核,为什么新实例分别只提供32核和64核呢?可能是因为这些实例使用的是单一的Socket服务器,对应的系统没有DPU来分担网络和存储虚拟化负载,所以只能留出一部分核心操作hypervisorstack。当然,微软服务器也可能配备DPU,但32核和64核是AmpereComputing芯片性价比最好的区间。不管怎样,实际情况应该是这两者之一。(当然也可能是因为Hyper-Vhypervisor在ARM上的运行效率真的很低,也就是两者兼而有之。)为了帮助大家了解不同AzureARM服务器实例之间的SKU差异,我们整理了下下表还列出了每个On-Demand实例的每小时使用成本。(微软也公布了竞价实例的价格,但在跨云服务商的对比中没有参考意义,故略)。在表中,我们计算了三年内超大规模企业和云服务提供商的实例运营成本,然后使用最终结果比较了跨云和云内的性价比。(但考虑到云服务器当前的平均寿命,四年可能更准确。)Azure上的实例价格与虚拟CPU(vCPU)的数量呈线性关系,至少在当前的产品线中是这样。但底层硅的成本不会线性扩展,单个实例在给定工作负载上的绝对性能也不会线性扩展。因此,不同实例的性价比表现并不是一成不变的。根据微软的说明,AzureDpsv5系列实例主要用于运行Web服务器、应用服务器、Java和.NET应用程序、开源数据库以及游戏和媒体服务器。dpsv5实例支持单核4GB内存,不提供本地盘;Dpdsv5实例还支持每个内核4GB内存,并提供随内核数量扩展的本地存储容量。Dplsv5实例支持每个核心2GB的内存,与Dpldsv5一样,只是后者提供本地存储容量。所有四种实例类型都从2个内核扩展到最多64个内核。Epsv5实例虽然配备了每核8GB内存,但最多只能扩展到32核,并且直到Epdsv5实例才提供本地存储。(建议您尽快熟悉这些名称,我们会反复提及。)没有本地存储的实例自然更便宜,微软在Azure上提供的各种外部闪存选项也适用于这些ARM实例.每个实例提供2到8个网络接口。按照微软的说法,这些接口可以带来“高达40Gb/s”的网络连接,相信这里的指标一定是通过虚拟网卡来衡量的。虚拟网卡的数量可以与每个虚拟网卡的传输带宽成反比。我们猜测每台物理服务器的最大传输通道为100Gb/s。但如果有两个以太网端口,则最大传输带宽为200Gb/s。具体要等到预览期结束后才能确定。这是另一个重要的观点,我们已经与AmpereComputing多次讨论过这个问题,并且我们从AWS的Gravtion系列芯片中听到了类似的东西:一组具有静态时钟速率的真实内核,其性能由性能决定性能优于一组具有可变时钟速率的虚拟内核。AmpereComputingAltra芯片不提供同步多线程(SMT),因此vCPU是实际的CPU内核。而且,Altra芯片的每个核心的时钟频率都是锁定的,所以在一定时间内不会根据核心使用情况调整可变时钟频率。另一方面,云服务器的一个常见用例是以无数种方式拆分它们,以保持每个核心以一定的强度运行,同时支持大量客户端,这意味着不太可能核心或核心组将保持运行很长时间。超频。因此,AmpereComputing显然是听取了超大规模企业和云服务商的意见,决定让CPU的性能更加确定。所以Altra芯片会保持时钟速率恒定,不再对可能引起争用的核心使用虚拟线程技术。但是,上述结论仅适用于特定场景。对于高性能计算(HPC)工作负载,运营商通常会关闭SMT,否则虚拟线程带来的管理开销会降低整体性能。对于线程密集型工作负载(例如事务处理监视器和关系数据库),核心缓存之间没有太多争用,因此不需要在蛇中添加虚拟线程。根据多年的实践经验,对于HPC工作负载,同样属于SMT的英特尔超线程(HT)技术很可能会降低10%到20%的性能。但由IBM的“Cumulus”Power10处理器提供支持的PowerE1080服务器则不同。根据IBM的rPerfbenchmark(TPC-C在线事务处理测试的I/Ounbound变体),满量程240核系统的相对性能得分为2250.8,其中每个核对应一个线程。随着虚拟线程的开启——即每核2线程、4线程、最后8线程——其性能也将分别扩大2倍、2.8倍、3.6倍(SMT4每核4线程性能提升.显然不如每核8线程的SMT8)。关键是SMT具有复杂的含义,并且默认情况下在大多数使用x86架构的云实例上启用以增加vCPU密度。SMT确实可以为实例提供更多的切片和SKU单元,这使得实例层面呈现的服务器资源比x86CPU实体更加丰富。但我认为云服务商最好开诚布公,让客户灵活选择SMT或裸机选项。现在,让我们继续讨论性能。Azure计算平台产品负责人PaulNash在官方博文中介绍了基于ARM架构的Azure实例,他表示,“新的虚拟机系列实例包括通用的Dpsv5和内存优化的Epsv5,其性价比高于同级别的x86虚拟机。最高可达50%。”但这个结论还是太模糊了,毕竟比较的是“性价比”而不是单一的具体产品。因此,我们调整了上表中微软Azure实例的对比信息。不管怎样,微软在其声明中并没有提供太多关于性能或性价比的细节。AmpereComputing首席产品官JeffWittich对声明进行了解释,“AmpereAltraVM的性能分别比同代同级别的Intel和AMD实例高出39%和47%。*除了更高性能方面,AmpereAltra处理器也非常节能,可以帮助用户显着减少整体碳足迹。”原文中star的脚注是:“结论来自运行在Ubuntu20.04LTS系统上并兼容gcc10.2.1,-O3,-mcpu=native,JEMallocD16psv5,D16sv5,D16asv5Azure虚拟机(基于SPECCPU2017整数运算)。”澄清了一些,但还不够好。SPECrate是CPU领域常用的吞吐量整数测试。对于基准测试结果,所有SPEC模块都应使用相同的编译器标志进行编译,并且需要在结果中包含一个峰值项。测试人员需要运行多个SPEC测试副本,以查看芯片可以处理多少交易吞吐量。通过SPECspeed2017测试,套件中每个基准测试的副本将在一系列不同的条件下运行。测试人员根据OpenMP选择使用多少线程,最后的结果在时间上进行衡量,代表了整个基准测试的时长。它可以及时运行完成。我们就此事联系了Wittich,反映目前微软的说法过于模棱两可。他向我们提供了AmpereComputing发布并在Azure博客文章中使用的实际数据:下表显示了每个实例的原始SPECrate2017整数性能。这些实例使用AMD、Intel和AmpereComputing的最新CPU,并参考每个实例每小时的运行成本。为了反映每组数字的相对大小,Wittich将性能除以成本,结果就是三者在相同成本下所能提供的SPEC整数运算吞吐量。在这里澄清一下,上表中的“AltraD16pdv5”是一个错字,但它实际上应该是AltraD16psv5的一个实例。微软,看看你创建的实例名称...这里我们更关注单位性能的成本。毕竟,性能要求通常是严格的。我们必须首先确定需要多少性能,然后计算它需要多少成本。为此,我们统计了三个AmpereComputing实例为期三年(不打折)的整数运算测试结果:既然你打算长期在云实例中运行负载,最好有个把握的成本。此处获得的百分比与Wittich计算的百分比相同。如果我们关闭AMD和Intel芯片的SMT功能,会有什么区别吗?这个还是要看情况。如果你对vCPU数量有硬性要求,关闭后可能只能购买两倍大小的AMD和Intel实例。这样一来,双方的核心都更强了,性能也更强了,但同时,也失去了和AmpereComputing对比的意义。我们认为比较合理的做法应该是回归到AMD和Intel的8核真核芯片,然后再提升10%到20%的性能,然后重新计算性价比。因此,AMD“Milan”Epyc7003实例的SPECrate整数性能将介于50.8和55.4之间,Intel“IceLake”XeonSP实例的SPECrate整数性能将介于53.7和58.6之间。Altra实例仍然保持价格优势——比Milan低10.5%,比IceLake低19.8%;同时,他们还有更高的表现水平——比米兰高出23%到34.2%,比冰湖高出16.5%到27%。因此,Altra芯片的性价比依然突出,其对应的单位性能成本比竞品低三分之一左右。而谷歌此前也曾表示,只要有20%左右的性价比优势,他们就愿意改变CPU架构。最后一点:微软目前在ARM实例上支持CanonicalUbuntuLinux、CentOS和Windows11Professional和Enterprise,未来将支持RedHatEnterpriseLinux、SUSELinuxEnterpriseServer、Debian、AlmaLinux和Flatcar,但没有提到Windows服务器。我们期待看到AWSGraviton和AzureAltra实例的性能数据,这是下一件大事。亚马逊和微软两大巨头终于要正面交锋了。到底哪个更好,让我们拭目以待。
