鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例

https://m.ithome.com/html/444828.htm
2019-09-12 15:25IT之家 (阿迷)

今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主频达到2.6GHz,支持八通道DDR4、PCIe 4.0、100G RoCE网络。

华为云基于鲲鹏920处理器的通用计算增强型KC1实例,作为市面上为数不多基于ARM架构的云服务器表现究竟如何,我们与阿里云的企业级通用型G5实例进行了全方位的对比。

一、处理器及内存性能

此次我们测试的云服务器产品分别是华为云鲲鹏通用计算增强型KC1实例以及阿里云企业级通用型G5实例各三台。所有服务器均为4核16GB内存、运行CentOS 7.4操作系统,且均位于北京。

其中华为云KC1实例采用的是华为自研的鲲鹏920处理器,主频2.6GHz;阿里云G5实例则是采用英特尔SkyLake架构的至强铂金牌8163处理器,主频2.5GHz。我们使用Unixbench对这两款服务器进行性能跑分,需要指出的是,由于两款服务器架构不同,因此相关执行指令会略有不同。

华为云KC1实例跑分前需要对Unixbench重新编译,如果直接编译会报错,以下三条指令是专门针对ARM架构的服务器:

sed -i 's/-mtune=native//' Makefile
sed -i 's/-march=native//' Makefile
sed -i 's/$field eq "bogomips"/$field eq "bogomips" or $field eq "BogoMIPS" /g' Run

修改后就可以使用Unixbench对这两种服务器进行跑分。

CPU多核整型跑分指令:

./Run -c 4 dhry2reg

CPU多核浮点型跑分指令:

./Run -c 4 whetstone

这里,我们对华为云KC1实例和阿里云G5实例分别进行六次跑分,结果如下:

通过平均得分的对比我们发现,华为云KC1实例多核整型得分远高于阿里云的G5实例,多核浮点型得分两者不相上下。由此我们可以看到鲲鹏920处理器在性能表现上与x86架构处理器的差距不大,而且在整型计算上的优势更加明显,即可以更好应对基因测序、图像渲染、大数据等大规模高强度的数据处理任务。

再来看二者内存性能的表现。内存方面,不同厂家对内存选取也不同,出于节省成本的考虑,云服务器厂商往往很少公布内存的频率和型号,这里我们通过stream工具进行测试。

stream是业界广为流行的综合性内存带宽实际性能测量工具之一,支持Copy、Scale、Add、Triad四种操作。

Copy它先访问一个内存单元读出其中的值,再将值写入到另一个内存单元。Scale操作先从内存单元读出其中的值,作一个乘法运算,再将结果写入到另一个内存单元。Add操作先从内存单元读出两个值,做加法运算,再将结果写入到另一个内存单元。Triad的表示将Copy、Scale、Add三种操作组合起来进行测试。

对应的四种操作如下:

  • 复制(Copy) a(i) = b(i)

  • 尺度变换(Scale) a(i) = q*b(i)

  • 矢量求和(Add) a(i) = b(i) + c(i)

  • 复合矢量求和(Triad) a(i) = b(i) + q*c(i)

测试前,应该先解压编译stream文件,具体编译代码如下:

gcc -O3 -fopenmp -DSTREAM_ARRAY_SIZE=64000000 -DNTIMES=10 stream.c -o stream

这里的内存测试我们同样对测试服务器进行十次测试取平均值,具体测试数据如下:

*上述数据单位均为MB/s

通过平均值的对比我们看到,相同配置下,华为云KC1实例所使用的内存在性能上是优于阿里云G5实例的。这样快速的数据传输也为服务器的数据处理能力提供了更好的保障。

此外,内存时延也对整个服务器的数据处理能力有很大的影响。这里的内存时延指的是三级缓存的时延。

现阶段的处理器一般都有三级缓存,处理器在取数据的时候会优先从最靠近的缓存开始,取不到再去内存取数据。越靠近处理器,取数据的速度越快,通过LMBench等工具我们能精准的刻画这种读取的延时,也就是我们说的内存时延,不同缓存的时延呈现的是指数级增长,在对应的缓存中,时延是稳定的。

内存的时延都是以纳秒为单位,而我们实际业务的需求中往往都是以毫秒为单位,通过LMBench,我们获得了两款服务器的时延情况:

其中,华为云KC1内存时延平均值为100.9纳秒,标准差为0.74;阿里云G5内存时延平均值为125.1纳秒,标准差为1.20。通过这组数据我们看到,华为云KC1的内存时延水平更低,也更稳定。相比于阿里云G5,在时间上有近20%的压缩,能更好的为处理器提供稳定高速的数据处理能力。

我们看到,作为新品的华为云鲲鹏云服务器KC1在处理器内存的表现上甚至已经能超越同层次的X86服务器。相信对于X86阵营的云服务厂商来讲,现在是时候正视鲲鹏云服务器这个强大的对手了。

二、网络性能

一般而言,各家云服务厂商允许用户在同一机房申请多台服务器搭建各种服务,这种服务被称之为虚拟私有云,是用户可以在这些服务器之间自由配置IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性IP搭建业务系统。

这里我们首先使用netperf工具对这两家服务器运营商内网间TCP带宽性能进行测试。这里我们需要在各个主机中开启2台陪练机,测试机与2台陪练机均安装netperf,测试机做Server,陪练机做Client负责打流。

测试端口令如下:

netserver -p port &(7001、7002、7003、7004端口为测试端口)

客户端口令如下:

netperf -H serverip -p port -t TCP_STREAM -l 120 -- -m 1440 & (serverip为测试机内网IP,port为对应测试接口)

然后通过sar命令查看打流的数据的平均值,测试结果如下:

测试结果来看,华为云KC1实例内网带宽在49.36万KB/s上下,阿里云G5实例内网带宽在18.80万KB/s上下。而阿里云G5实例内网带宽最高为20Gbps(16核64GB),4核16GB版本峰值速度约为1.5Gbps,基本上与测试水平相当。但整体来看,华为云KC1内网带宽更具优势,适合数据量比较大的多台服务器组成的内网服务器集群。

当然,除了内网的带宽,时延也是一个重要的参数。延迟决定系统每秒处理的最大请求数,而带宽决定了可支撑的最大负荷。

qperf和iperf/netperf一样可以评测两个节点之间的带宽和延时。可以在测试tcp/ip协议和RDMA传输。不过相比netperf和iperf,支持RDMA是qperf工具的独有特性。在CentOS中安装qperf比较简单,直接使用yum工具就能直接安装。

通过qperf测试服务器的延时和带宽,需要两台服务器一台做服务端另一台做客户单打流。其中服务端直接运行qperf,无需任何参数。

服务器端直接运行qperf无需任何参数,默认就会开启19765端口。客户端运行获取带宽、延时情况,运行过程中不需要指定端口号,只要指定主机名或者IP地址即可。这里我们查看服务端与客户端的时延情况,并进行五次测试取平均值,测试结果如下:

我们看到华为云KC1实例内网时延平均为35.92微秒,而阿里云G5实例平均时延为41.70微秒,华为云的内网时延更短,这就让内网间数据交换更加迅速快捷,相比于阿里云G5服务器有近15%的提升。

在内网的带宽和时延上,我们看到华为云KC1相比于阿里云G5同配置更具优势,这就为大规模的内网服务器集群建设带来了可能。

三、存储表现与价格

现阶段不同的云服务器厂商会提供不同的存储解决方案以应对各种使用场景,这种存储解决方案往往称之为云硬盘,它为ECS、BMS等计算服务提供持久性块存储的服务,通过数据冗余和缓存加速等多项技术,提供高可用性和持久性,以及稳定的低时延性能。用户可以对云硬盘做格式化、创建文件系统等操作,并对数据做持久化存储。

现阶段云服务厂商基本上都会提供三种存储解决方案,分别是普通云盘、高速云盘、SSD云盘。这里我们通过挂载不同种类的云盘对测试机的存储能力进行测试。

我们这次针对两家厂商的超高IO云盘/SSD盘进行测试,测试所使用的工具为fio,测试项目包括随机读写IOPS和顺序读写吞吐量,测试磁盘大小均为1000GB。

在4K随机读写测试中,华为云超高IO云盘达到33000 IOPS,顺序读写吞吐量均达到了350MB/s。相比于阿里云的云盘速度上高出不少。

从SSD云盘对比上来看华为云更具领先优势,阿里云SSD云盘性能尚可。前段时间华为云发布了云存储All-Flash战略,我们也期待华为云能在存储上的持续突破。

价格方面,阿里云G5服务器4核16GB当前报价为每年4732.8元,除了4核16GB配置,还有最高64核可选。而华为云KC1服务器目前处于公测阶段,最高支持60核,测试期间用户可以免费申请使用。

总结

现阶段多数云服务厂商均以X86架构的服务器为主,客户对ARM架构的服务器大多持观望态度。但通过本次测评我们发现,鲲鹏云服务器在计算、网络、存储等多个方面已经成熟,且会在如大数据、基因测序等整型计算场景下较x86更具优势,相信鲲鹏新算力的加入,可以为多样应用提供全新的算力选择。

此前,笔者与同行交流探讨过一个问题,在服务器市场上,英特尔应该惧怕AMD吗?显然无论是英特尔也好,AMD也罢,他们都是X86阵营的服务器制造商,而能威胁到X86架构服务器的,恰恰是来自体系之外——ARM。Redis创始人Salvatore Sanfilippo此前也表示,他正在将ARM作为Redis的主要架构。而微软也为Windows 10应用开发针对ARM的支持,总之,ARM的前景未来可期。

当然,ARM服务器成为云端主流还有很长一段路要走,而基于鲲鹏处理器的华为云鲲鹏全系列云服务,向产业释放鲲鹏新算力的同时,也让我们看到华为在这一领域坚定的决心。

[转帖]华为鲲鹏云服务器实战:华为云鲲鹏KC1实例 vs. 阿里云G5实例的更多相关文章

  1. 不服跑个分:ARM鲲鹏云服务器实战评测——华为云鲲鹏KC1实例 vs. 阿里云G5实例【华为云技术分享】

    原文链接:https://m.ithome.com/html/444828.htm 今年一月份,华为正式发布了鲲鹏920数据中心高性能处理器,该处理器兼容ARM架构,采用7纳米制造,最高支持64核,主 ...

  2. 阿里云服务器实战(一) : 在Linux下Tomcat7下使用连接池

    云服务器 的环境如下: Tomcat7+MySql5.6 一,如果自定义了程序的文件目录 , 下面的/alidata/xxx 就是自定义的目录 在Linux的Tomcat的server.xml里的Ho ...

  3. 阿里云服务器实战(二): Linux MySql5.6数据库乱码问题

    在阿里云上了买了一个云服务器, 部署了一个程序,发现插入数据库后乱码了,都成了'????'.  一开始怀疑是Tomcat7的原因 , 见文章 : http://blog.csdn.net/johnny ...

  4. 在云服务器搭建WordPress博客(一)实现云服务器与域名的绑定

    随着云的兴起,越来越多的人选择在云服务器上搭建自己的博客,比较著名的开源博客管理系统当属WordPress了,那么怎么在服务器上搭建WordPress呢? 我们需要让别人能够访问我们的博客,就比如输入 ...

  5. 购买阿里云ECS+安装宝塔面板+Mac下怎么连接阿里云ECS服务器

    1.购买阿里云ECS 2.重置实例密码 这个有点对用户不友好,实际意思就是设置服务器的root登录密码 3.配置安全组放行端口 因为服务器需要从宝塔网站download安装包,包括一些常用的服务比如S ...

  6. Linux云服务器磁盘不见了?解决方案在这里,云服务器磁盘挂载

    用过诸多种云以后,发现有个通病,就是新买的数据盘在机器中找不到.本篇总结一下此类问题的解决方法,望各位点赞,有问题评论区见 一.云服务和物理机一样,你买了云服务器的数据盘以后,就相当于把数据盘直接安装 ...

  7. 【阿里云IoT+YF3300】1.时代大背景下的阿里云IoT物联网的现状和未来

    “未来十到二十年,大家基本已经形成了一个共识,那便是新格局的奠定将由 AI 和物联网技术来支撑.放眼国内,在这些互联网巨头之中,未来真正成为竞争对手厮杀的,阿里和华为是首当其冲,在这两个领域双方分别暗 ...

  8. 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库

    开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...

  9. 如何用云存储和CDN加速网站图片视频、阿里云OSS的使用(转)

    总有人说阿里云主机带宽小,那只是因为你还停留在单机架构上. 阿里的架构设计,云主机主要用来跑程序的,附件的存储和访问主要靠OSS. 有人又会说了,OSS按存储费+流量双重计费伤不起,只是你不知道OSS ...

随机推荐

  1. Queue Pair in RDMA (zz)

    Queue Pair in RDMA 首页分类标签留言关于订阅2018-03-21 | 分类 Network  | 标签 RDMA 一个CA(Channel Adapter)可以包含多个QP,QP相当 ...

  2. Linux--系统调优

    建议看看:https://www.cnblogs.com/yinzhengjie/p/9994207.html 一.关闭swap交换分区 Linux swapoff命令用于关闭系统交换区(swap a ...

  3. sonca排除不扫描文件

    在pom.xml文件中的<properties>标签下加上<sonar.exclusions>XXX</sonar.exclusions>标签,如下 <pro ...

  4. vue点击父组件里面的列表动态传值到子组件

    <template> <div> 爸爸 <div style="background-color:yellow;margin-top:10px" v- ...

  5. OpenFOAM的PISO算法【转载】

    转载自:http://openfoam.blog.sohu.com/94234375.html 流体力学的控制方程是耦合方程组,形式上体现为连续方程和运动方程的耦合,变量上体现为速度和压强的耦合.在数 ...

  6. mysql和mssql数据库快速创建表格 五

    * into testAAA FROM tbl_User --sqlserver方法一复制表结构 select * into testAAA FROM tbl_User --sqlserver复制表结 ...

  7. Java的反射是什么?有什么用?

    首先我要简单的来说一下什么是Java的反射机制: 在Java里面一个类有两种状态--编译和运行状态,通常我们需要获取这个类的信息都是在编译阶段获得的,也就是直接点出来或者new出来,可是如果需要在类运 ...

  8. selinux 开启和关闭

    对于新手来说,linux的selinux困扰了一大批学员,开启后,导致文件权限修改不了等问题,下面就是关闭设置setlinux的方法 查看SELinux状态: 1./usr/sbin/sestatus ...

  9. OpenJudge计算概论-细菌实验分组

    /*====================================================细菌实验分组总时间限制: 1000ms 内存限制: 65536kB描述有一种细菌分为A.B两 ...

  10. ES--Kibana相关操作创建索引和Mapping

    创建索引 kibana 使用如下命令进行创建索引内容. PUT test_index/ 创建别名 POST _aliases { "actions": [{ "add&q ...