Fork me on GitHub

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

  作者:阿迷

  今年一月份,华为正式发布了鲲鹏 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 &(7001700270037004 端口为测试端口)

  客户端口令如下:

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,显然还没有达到峰值。整体来看,华为云 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 服务器成为云端主流还有很长一段路要走,而基于鲲鹏处理器的华为云鲲鹏全系列云服务,向产业释放鲲鹏新算力的同时,也让我们看到华为在这一领域坚定的决心。

来自:
IT之家

作者:Johnson
原创文章,版权所有,转载请保留原文链接。