云厂商(超大规模数据中心)是服务器厂商又爱又恨的客户,早在几年前,云厂商要求定制化服务器,去掉不用的组件,因为采购规模很大,所以还可以进一步压价,这使得部分强调高价值的服务器厂商直接放弃了这部分市场。
而现在,随着规模的增长,考虑到规模经济效应,越来越多的厂商开始考虑定制芯片,甚至自己研发芯片,这其中,亚马逊云服务(AWS)绝对是先锋式的存在,自研芯片不仅降低了成本,还能成为竞争中的有力武器。
最近,AWS大中华区产品部计算与存储总监周舸介绍了AWS在芯片定制化方面的一些细节。
Nitro:差异化优势的一大因素
AWS是云厂商里较早(可能是最早)自行设计芯片的,其根本的出发点还是要用上自己真正适合的东西,在我看来,Nitro是AWS主机区别于友商的一大因素。AWS从2013年开始用Nitro卡,业内部分厂商也于近年来推出了同类方案。
为了开开心心的用上自己的芯片,AWS在2015年收购了以色列芯片公司Annapurna Labs,随着芯片实力的加强,AWS的Nitro从一个网卡一步步演进,变成了AWS基础设施非常非常重要的一个组成部分。
Nitro的能力可以总结为三个方面:
NitroHypervisior:专有硬件上承载hypervisior,让主机实现近似裸机服务器的性能表现;
NitroCards:专有硬件承载存储、网络功能,以及控制EC2实例的业务逻辑;
Nitro安全芯片:硬件层的安全验证能力;
也就是说,Nitro既能作为网卡,也能连接和控制硬盘,控制EBS块存储,它Offload了CPU运行Hypervisior的工作负载,而且还能做一些硬件安全检查,按照周舸的介绍说,有了Nitro,AWS可以快速发展多种EC2实例。
前不久AWS发布的产品中,EC2 Mac实例让人眼前一亮,有人开玩笑说,“Mac滞销了,救救苹果吧”,有人说,“又少了一个买苹果电脑的理由”。
在实际架构中,MacMini被直接放在机架里,另一端连的就是Nitro卡,接入了Nitro卡之后就意味着可以像别的EC2实例一样,可以对接各种云服务。
在Nitro卡的帮助下,AWS今年发布了许多新的实例,去年re:Invent的时候还只有270多种实例,而现在有了400个实例,Nitro的贡献很大。在Nitro的帮助下,AWS可以提供支持包括AMD、Intel和ARM在内的多个计算平台。
处理器芯片:ARM处理器Graviton的性价比
如果说苹果发布搭载M1处理器的Mac电脑,让PC厂商觉得ARM个人电脑有搞头,那么AWS在发布搭载Graviton处理器的服务器的做法,则是让ARM服务器芯片厂商,让ARM服务器厂商备受鼓舞。
当国内ARM服务器厂商还在强调跑安卓虚拟机的优势的时候,暴露出的是应用场景发展匮乏的根本性问题,而当看到Graviton实例能支撑包括Web场景,包括MySQL、PostGresql等场景时,真正看到了ARM服务器真正的用武之地,ARM发展诚可期待。
从周舸的介绍中可以看出来AWS要发展ARM的必要性:
比如在Web网站场景中,用户需要的是更强的IO性能,如果是原来的处理器平台,有许多CPU资源被浪费了,如果改用ARM处理器,则可以省下很多成本。第一代Graviton靠这一特性能节省40%的成本。
Graviton2推出的时候,AWS对处理器架构有了更深入的思考。
周舸解释说,多核以及多线程技术固然有优势,但并不是所有应用都需要,通用处理器发展了这么多年,既要发展多核多线程,也要照顾那些不需要多核多线程的应用,这使得架构会很复杂,会有很多功能模块,成本会很高,用不到的时候会造成浪费。
而Graviton2没什么历史负担,用化繁为简的思路来看,只强调构建好多核能力,而不考虑再构建超线程的能力,比如类似SMT的那种技术。
实测数据发现,Graviton2即使是在跑数据库这种重型工作负载的时候,仍有非常优秀的表现,采用Graviton2的M6g实例与采用至强处理器的M5实例相比,全用物理核的M6g性能表现要比用超线程的M5要强。
如果觉得物理内核对比多线程不公平,那么可以比性价比,实际上,M6g的性价比要高于M5实例(大约30%-40%)。
如果用户有运行在ARM上的实例,那M6g将是非常理想的选择,周舸也表示,有很多在Linux上面跑的程序都可以快速、简单的转到Graviton上面去,用起来并不难。
目前,国外以及国内很多用户都用上了Graviton处理器支撑的实例,主要用在包括Nginx Web服务器类、MySQL和Redis数据库类以及HPC、大数据等场景中,应用类型还是挺丰富的。
多元化的算力是必然趋势,随着应用的深入,相信ARM架构会获得更进一步的发展,AWS应该算的上是ARM阵营的一面旗帜。