目录

文章目录

基础性能测试

计算性能 —— Super_Pi

使用 Linux 下的 bc 计算器程序,通过反正切函数计算 5000 位圆周率(Super_Pi)的 CPU 耗时,来对云主机的单核计算性能和多核计算性能分别进行测试。

time echo "scale=5000; 4*a(1)" | bc

由于 Intel Ice Lake CPU所具备的超线程技术,无论阿里云还是 AWS,单核 Super_Pi 的性能都要好于多核 Super_Pi。

云主机性能测试方案_云主机

计算性能 —— CPU 调度延时

CPU 对计算指令的响应时间,也会对计算性能产生十分大的影响,如果调度延时高,会额外增加 CPU 的负载。

因此在本次测试中,采用 schbench 进行测试。通过测试结果来看,阿里云和 AWS 的云主机 CPU 调度延时都处于微秒级别。

计算性能 —— 内存带宽

所有的 CPU 处理任务,基本上都要通过内存进行缓存,因此内存带宽的大小,基本上也就代表着主机可以处理数据的最大总线带宽。

在这里我们通过 stream 来对云主机的内存带宽进行测试。在 stream “copy”、“scale”、“add”、“Triad” 四种不同计算模式下,阿里云的内存带宽分别可以达到 57GB/s、58GB/s、65GB/s、64GB/s。而 AWS 主机的内存带宽为55.9GB/s、55.9GB/s、62GB/s、62GB/s。

计算性能 —— 内存时延

这里使用 mlc 来对云主机的内存时延性能进行测试。

阿里云的内存时延可以达到 86.5 纳秒,而 AWS 的内存时延达到了 99.8 纳秒。

存储性能 —— 云盘读/写 IOPS

对云盘读/写 IOPS 的测试,实际上就是对 DPU 数据处理性能最好的考验了。

在存储性能测试中,采用的是 Linux 下的经典测试工具 fio。首先测试的是两个云主机在挂载高性能云盘后的云盘读/写 IOPS 性能。

云主机性能测试方案_服务器_02

阿里云的读/写 IOPS 均可以达到 57k 以上,而 AWS 的为 40k 左右。

存储性能 —— 云盘读/写带宽

云平台必然不会为单台云主机分配上所有的云盘带宽资源。因此,如何充分满足用户的存储带宽使用需求,有可以将整理存储带宽合理分配,就成为一个考验云平台分配能力的工作了。

云主机性能测试方案_计算性能_03

从测试结果可以看出,阿里云的读/写带宽均在 684MiB/s 左右,AWS 的读/写带宽在 766MiB/s 左右(1MiB = 1024KiB/s)。

存储性能 —— 云盘读/写时延

在带宽资源受云平台控制的前提下,想要更好地了解存储性能,就需要对云盘的时延进行一下测试了。

在这里我们同样使用 fio 对云盘的读/写时延进行了测试。

云主机性能测试方案_计算性能_04

从测试结果上看,阿里云读平均时延为 190.42 微秒,写平均时延为 106.69 微秒。AWS 云盘的读平均时延为 433.03 微秒,写平均时延为 473.39 微秒。

网络性能 —— 传输速率(PPS)

在本项测试中,我们在两台云主机上分别安装 netperf 工具,并在 Client 端发送小包进行压测,并在 Server 端通过 sar 监控网络流量。

云主机性能测试方案_计算性能_05

从测试结果可以看出,阿里云神龙网络传输速率在 1.6M pps 左右,AWS Nitro 网络传输速率在 1.2M pps 左右,略低于阿里云神龙。

网络性能 —— 网络带宽

网络带宽同存储带宽一样,除了是对这两款云主机专用芯片的考验之外,也一样在考量着云平台的网络资源分配。

在本项测试中,我们在两台云主机上分别安装 netperf 工具,并在 Client 端发送大包进行压测,并在 Server 端通过 sar 监控网络流量。

云主机性能测试方案_运维_06

网络性能 —— 单向时延

接下来我们通过 sockperf 这个基于 Socket API 的网络基准测试实用程序,对两款云主机的网络数据包转发时延进行测试。在本次测试中,在压力为 100K UDP pps 的低负载情况下,对单向时延进行测试。

云主机性能测试方案_计算性能_07

从平均时延的测试结果来看,AWS Nitro 单向时延为 23.185 微秒,而阿里云神龙以 30.448 微秒略微落后。

网络性能 —— Ping 时延

除了数据包转发时延之外,还需要对网络连接建立时的时延进行了解,在这项测试中,我们采用的是最常见的测试命令 ping。

云主机性能测试方案_linux_08

从测试结果来看,阿里云神龙的 ping 报文 RTT 时延在 0.05 毫秒左右,而 AWS Nitro 的 ping 报文 RTT 时延略长,在 0.1 毫秒左右。

应用性能测试

Nginx

在本次测试中,我们通过 Nginx 的 wrk 压测命令,始终保持 1000 连接访问请求,来对两款云主机的 Web 长、短链接应用响应速率进行测试。短链接测试中设置连接建立数据传输完毕后将连接断开,长链接测试中设置链接测试结束前保持,测试结果如下:

云主机性能测试方案_运维_09

在本次测试中,阿里云神龙的 Nginx 短连接响应速率达到 10 万 QPS,长连接更可以达到 83 万 QPS 左右。而 AWS Nitro Nginx 短连接响应速率可以达到 19 万 QPS,长连接可以达到 70 万 QPS 左右。

MySQL

和 Web 应用请求需要适当进行管理控制不同,对于数据库的检索调用,自然是性能越高越好。在本次测试中,我们通过跨平台基准测试工具 sysbench,对阿里云神龙与 AWS Nitro 的数据库读写性能进行了测试。

在本次测试中,我们设置建立了 100 万规模的测试数据,测试结果如下:

云主机性能测试方案_linux_10

从测试结果可以看出,阿里云神龙的 MySQL 数据库读/写 QPS 分别为 94733 和 50318。AWS Nitro 的 QPS 分别为 85389 和 27509。

Redis

Redis 具有基于内存部署、高并发读写、可分布式运行等特色,也在受到广泛青睐。对于神龙和 Nitro 这种高性能云主机而言,Redis 测试可以更好地对其应用处理能力进行体验。

下面使用 Redis 自带的性能测试工具 redis-benchmark 测试这两款云主机在 Set 和 Get 下的成绩,测试结果如下。

云主机性能测试方案_云主机_11

大数据性能测试 TPCx-HS

TPCx-HS 是一个大数据系统基准测试。TPCx HS 同时考虑硬件和软件方面,包括 Hadoop 运行时、Hadoop 文件系统 API 兼容系统和 MapReduce 层。TPCx-HS 包含数据生成、数据排序、数据验证 3 个阶段。在本次测试中,我们生成了 1TB 数据来完成 TPCx-HS 测试。

介于 1TB 的数据规模以及 Hadoop 测试的部署需要,在本项测试中,分别采用了 4 台基于 Intel Ice Lake CPU,32 vCPU、128G 内存的云主机。阿里云 ecs.g7.8xlarge vs. AWS m6i.8xlarge,测试结果如下:

云主机性能测试方案_linux_12

从测试结果可以看出,阿里云神龙云主机在数据生成、数据排序、数据验证 3 个阶段的测试成绩分别为 16 分 07 秒、29 分 03 秒以及 5 分 57 秒。AWS Nitro 的测试成绩则为 21 分 23 秒、35 分 13 秒以及 8 分 08 秒。

高性能计算测试

数值天气预报计算

在数值天气预报计算中,由于要产生超高强度的计算,在数值天气预报计算中,我们采用的是基于 Intel 8369B CPU 具备 2.9GHZ 主频、64 物理核 / 128 vCPU、256GB 内存的阿里云 ecs.sccc7.32xlarge vs. 基于 Intel 8375C CPU 具备 2.90GHz 主频、64 物理核 / 128vCPU、512GB 内存的 AWS m6i.32xlarge,测试结果如下:

云主机性能测试方案_计算性能_13

从测试结果可以看出,阿里云神龙用时 195.46 秒就完成了数值天气预报计算工作,而 AWS Nitro 的计算用时为 225.59 秒,用时长于阿里云神龙云主机。