解读《至顶网评测工程师告诉你百度、阿里、腾讯、青云的云主机性能哪家强》

周末在网上看到一篇文章,初看标题颇有些头条风格,《至顶网评测工程师告诉你百度、阿里、腾讯、青云的云主机性能哪家强[1]》,点进去一看信息量还是很大的,于是花了近1小时细细研读(感觉有上万字),感觉收获挺大,值得跟大家一起分享一下。

文章主要针对云主机的网络性能进行了横评,测试厂商基本涵盖了国内主流的云计算厂商,包括阿里云、腾讯云、青云和百度云这四家。测试工具是开源的 Netperf,对云主机的内网带宽和连接能力进行了测试,测试项目为 TCP_STREAM、TCP_RR、TCP_CRR。Netperf 大家应该比较熟,跟 iperf 一样都属于常用的网络测试工具,内网带宽和连接能力也是云主机日常使用中比较重要的两个性能指标。

整体来看,测试工具的使用和测试用例比较合理,读者很容易进行自测复现,测试对象共计 4 家厂商 11 款不同规格的云主机,看得出这一次至顶网的评测还是比较务实,干货不少。

不禁让笔者想起来两年前蒋清野老师撰写的云厂商评测系列文章,也同样是有理有据,内容详实。时隔两年多之后,在国内云计算厂商发展的如火如荼的今天,再次看到类似水准的文章,真的是来得及时,看来可以作为广大云计算用户在购买云主机时的选型依据之一。

不过,详实的测评所带来的不足就是文章太长了!在当前时间碎片化的今天,真的没几个人能够像笔者一样耐心的读完全文,这里也为大家划下重点,不想看原文的直接看下面的重点摘要好了,有兴趣的可以拉到最下面点击链接去阅读原文。

TL;DR

好了,敲黑板划重点开始!

这份测评报告是以网络端口转发能力为指标,来对整套云计算系统应用性能进行分析的,虽然这只是一个可观测标准之一,不能全面反映云主机的性能,但是仍能相当直观地反映出云主机的主要性能表现:

“无论是在公有还是私有的云计算系统之中,均离不开虚拟网络端口对应用数据进行转发。了解在不同配置下,云主机虚拟网络端口应用处理能力,以此作为基准,可以对整套云计算系统应用性能进行分析。”

原测评报告中所述的测试规格:

◈ 针对目前Web应用中最常用的2核4G、4核8G和这几家公有云厂商不需要提交工单时可选择的最高配CPU核数云主机(核心数与内存比为1:2)进行了测试。◈ 测试的数据包大小定在了64Byet、512Byte、1518Byte和不限数据包大小时最大数据缓冲的文件传输性能。

☉ 从评测对象来看,对比2年前蒋清野老师的文章,阿里云、青云依旧在列,少了金山云、美团云、UCLOUD、盛大云,多了百度云和腾讯云(上次蒋老师文章中其实也列了腾讯云,但认为腾讯云规模太小,未进行评测)。

按照 IDC 2017 年上半年中国公共云 IaaS 市场份额调研结果,阿里云占据了 47.6% 的市场份额,第二名到第五名玩家合计只有 27.6%(腾讯云这两年发展挺快,无奈起跑太晚,目前跟中国电信、金山云这样的玩家一样处在第二阵营)。看起来随着国内云计算市场马太效应的出现,标志着这个市场正在日趋走向成熟,留给后几名竞争者的时间已然不多。☉ 测试云主机均是基于 10GE 物理网络的,原文中提到“附注:考虚到阿里云新建数据中心服务器采用 25G 网络互连,与其它厂家的万兆(10G)网络性能差距过大。为了公平起见,在本次测试中,未选择阿里云新建 25G 数据中心的云主机进行评测。”
看来目前在国内,只有阿里云能够提供最新基于 25GE 网络的云主机供客户购买,其他几家尚未发现有提供基于25GE的云主机公开售卖。☉ 从测试结果来看,本次阿里云参评规格的云主机内网带宽测试结果排第一(5Gb),大概是腾讯云的 4.8 倍、青云和百度云的 3-6 倍左右。
如果是对内网带宽要求比较高的WEB类业务应用,阿里云应该是最佳选择。说实话,对于这个结果,我还是很吃惊的。原文中的测试结果图示如下(为了方便大家查看,我简单标注了一下):

解读《至顶网评测工程师告诉你百度、阿里、腾讯、青云的云主机性能哪家强》

笔者看了下阿里云官网链接,基于 25GE 网络的云主机最大规格的内网带宽性能能到 35Gb,其他几家均没有标注出明确的内网带宽性能参数。在产品能力透明度上,阿里云做的还是比较好的,这一点值得赞许。 ☉ 隔离性方面,阿里云不同规格的云主机内网带宽看得出有精确的隔离和限流,按照云主机的规格从小到大依次递增,其他厂商则没有做类似隔离,不管什么规格的云主机,其内网带宽基本是差不多的。
对于隔离性,笔者一直认为这个是属于做云计算厂商的基本节操,因为公有云天然属于多租户使用模型,不同实例之间的性能不做区分隔离,意味着在单台物理机上,小规格和大规格云主机会抢占相同的网络资源。对于企业级的客户,这种产品设计无疑是一种灾难,大概率在业务高峰期会出现不可预期的资源争抢,核心业务基本不适合部署。
很难想象购买了大规格云主机的客户,发现自己能获得的性能与最小规格云主机相同,且会发生争抢时,不知道会是什么感受。☉ 网卡多队列技术,原文中标注目前只有阿里云和青云具备这种能力。但是青云云主机开启后(控制台直接可以启用,易用性值得表扬),网络性能反而有所下降(2Gb 下降到 1.3Gb)。阿里云云主机开启多队列技术后,提升很明显(UDP 包转发能力达到 250 万左右)。
这一点如果不是测试方案存在问题的话,青云技术成熟度还需要进一步加强,阿里云的表现则值得点个赞! 
百度云、腾讯云目前看起来还不支持网卡多队列,缺乏这样的技术能力,会导致云主机网络性能受限于单核 CPU 的处理能力,无法利用多核加速并发性能,在多 core 高性能场景下容易遇到网络性能瓶颈。☉ 云主机网络连接能力的测试中,排在第一位的是阿里云,其次是青云,再次是腾讯云,百度云垫底。且在多线程测试中,阿里云测出了高达 74 万 PPS(TCP_RR)的数据,在网络应用多线程处理模式已成为主流的今天,能够更充分的发挥出云主机的网络性能,获得更好的处理能力。☉ TCP_STREAM 在小包测试下会有合包概率,导致测试结果和云主机真实包转发能力不匹配,从测试结果来看合包的概率跟云主机的转发能力有关系,转发能力越弱,合包概率越高。因此在 64Byte 下测试,带宽越高的云主机(原文:在 64Byte 网络带宽测试中,最好成绩为腾讯云 4 核 8G 云主机),反而意味着网络包转发能力越差,这一点请各位读者注意,我看原文中评测师也踩到这个坑了。