ARM云服务器真的靠谱么?

2021-12-28 14:55:25 浏览数 (1)

小白如何简单有效地快速比较云服务器CPU呢?

0x00 背景前言

最近腾讯云又出了一款基于ARM架构的云服务器,机型代号为SR1。这款新型ARM云服务器到底是否靠谱,是否值得咱们入坑?本文将带你一探究竟。

本文将以SR1(ARM体系)和S5(x86体系)两个典型机型为例,总结实践一套通用的评测处理器计算性能的常用方法,从CPU算力角度入手,帮助开发者快速甄选对比适合自身业务的云服务器。

0x01 ARM云服务器环境及评测准备

腾讯云的SR1机型是第一款基于ARM架构的云服务器,搭载了最新的Ampere Altra处理器,它是一颗ARM Neoverse-N1体系的处理器,主频达2.8GHz,一级指令和数据缓存容量更是高达64KiB。Neoverse-N1处理器体系架构如下图:

Neoverse-N1微架构示意Neoverse-N1微架构示意

ARM Neoverse-N1微架构的处理器为7nm工艺制程,支持ARMv8.2 指令集。采用11级流水线设计,4解码8发射,一级数据和指令缓存各64KiB,1MiB的二级一致(MESI)缓存,支持ECC校验。一级TLB(48-entry)也是指令数据分离。多核间通过CNM-600高速网状互连,支持高性能NUMA。通过8x72 bitDDR4-3200 channel与内存通信。

然而以上参数,对于我们都不那么重要,处理器体系结构永远是一代又一代,而做为云上的应用开发者,怎样方便快速地比较各个处理器的算力性能差异,选出当下适合自身业务且最高性价比的云服务器产品,才是永恒不变的需求。

本文将与当前主流的x86机型(标准型S5机型)进行比较。S5采用Intel Xeon Platinum最新的CooperLake微架构,2.5GHz,是支持通用场景的首选机型,也常常是大家的最爱。另外,两种评测机型都选用4核心、8GiB内存的配置。

成本上直观感受,目测官网上的价格SR1要比S5便宜20%左右,虽没有像Lighthouse轻量云服务器那种“买到就是赚到”的感觉,但确实已经是非常实惠、诚意满满,如图:

S5、SR1机型价格对比S5、SR1机型价格对比

如果其综合性能不输S5,价格又有如此的优势,在规模化的使用场景下将为个人和企业优化大量成本。这的确让人有些心痒想尝试一下呢。

Tips:分屏小技巧分享

通过tmux工具分屏(ctrl b ")后,分别同时登录两台服务器,再通过同步窗口命令(ctrl b :setw synchronize-panes),就可以实现,同时在两个终端同时键入命令哦~

如图所示:

Tmux中多窗口同步命令输入Tmux中多窗口同步命令输入

准备完毕,我们开始评测吧~

0x02 7zip压缩评测

7zip软件内置了lzma评测压缩工具,可以用来快速评测服务器的CPU 计算性能:

代码语言:javascript复制
# 安装7zip软件包
sudo apt install -y p7zip-full
# 执行7zip benchmark评测
7z b

评测命令执行:

7z 评测执行7z 评测执行

7z benchmark命令可以展示服务器在压缩和解压缩两种任务下的性能,以MIPS(Million Instructions per Second)为单位,数值越高说明处理器在该场景下性能越强,同时也有压缩速率、执行时间等多种指标协同验证。7z的评测一般不会用到处理器的高级指令集,甚至连64位的指令用得都不多,是比较考验处理器“基本功”的性能评测。LZMA压缩的性能更依赖处理器的访存延迟、数据高速缓存(D-Cache)容量和TLB性能,并能体现处理器乱序执行的效率;而解压缩的性能,更反映处理器的分支预测损失和指令延迟,考验其多级流水线的设计。

评测结果对比:

S5、SR1机型7z评测对比S5、SR1机型7z评测对比

可以看出,针对LZMA压缩/解压的场景,ARM云服务器(SR1机型)性能要比x86云服务器同级竞品(S5机型)高出60%

0x03 LUKS块设备加解密评测

LUKS是Linux内核支持实现的标准块设备加密标准,简单来说就是给硬盘加密的工具。如果你还不太了解LUKS块设备加密,推荐详细参考下我们之前专门的一篇介绍文章《用LUKS为云盘敏感数据上锁》。

类似文件的压缩/解压缩,块设备的加密/解密也是非常典型的计算密集型的应用。但不同于一般的计算,加解密的计算指令一般是作为处理器的扩展指令集,由特殊硬件单独实现的。x86体系用的是如AES-NI等扩展指令,arm也为不同的加解密场景实现了对应的扩展指令。

无需安装任何其他软件工具,我们可直接利用Linux自带的cryptsetup工具方便得进行加密算法的评测CPU性能:

代码语言:javascript复制
cryptsetup benchmark

该命令默认会评测加密(ciphers)和KDF(key derivation function,即密钥衍生函数)两类任务。

评测命令执行:

LUKS评测执行过程LUKS评测执行过程

评测结果对比(KDF):

S5、SR1机型LUKS评测KDF相关算法对比S5、SR1机型LUKS评测KDF相关算法对比

评测结果对比(Ciphers):

S5、SR1机型LUKS评测加密相关算法对比S5、SR1机型LUKS评测加密相关算法对比

可以看到,ARM处理器对于常见的SHA指令(sha256、sha512)优化实现地非常好,领先x86架构的云服务器。在加密解密场景下,对于最常用的AES-CBC模式的加密,ARM做得更好;对于解密,以及目前安全度最高的XTS模式的加密,x86(AES-NI扩展指令)表现得更好

0x04 OpenSSL网络加解密评测

块设备加密针对静止数据(data-at-rest),网络加密则针对流动的在途数据(data-in-transit)。作为应用最广泛的网络加密库,OpenSSL的性能评测是一定要做的。

我们通过openssl的speed子命令就可以评测全部的加密算法,耗时也会相对长很多。通常我们通过参数指定具体的加密算法,我们这里以几个常用典型的算法为例来进行评测。HMAC(Hash-based Message Authentication Code)广泛用于保证加密信息完整性和身份认证;SHA256是最常用的安全单向散列算法,广泛用于信息摘要和数字签名;256位的AES是标准的加密算法,被云服务厂商广泛采用。

代码语言:javascript复制
openssl speed hmac sha256 aes-256-cbc aes-256-ige

评测命令执行:

openssl speed评测过程openssl speed评测过程

评测结果对比:

S5、SR1机型openssl评测部分结果S5、SR1机型openssl评测部分结果

可以看出,基于md5的hmac,ARM性能略低于x86;sha256算法ARM领先很多;对于AES(256位)的加密ARM小小胜出

0x05 Redis数据库吞吐率评测

最后我们再来看看Redis的性能评测。Redis是目前广泛流行的内存数据库,常用于用于键值存储、数据缓存、消息队列等多种场景,支持很高吞吐率的请求。Redis也同样内置了自己的评测工具redis-benchmark,方便进行针对RPS(request/sec 每秒请求量)的评测。

代码语言:javascript复制
sudo apt install redis
redis-benchmark

redis-benchmark会对Redis常用命令,如GET、SET、LPUSH等,进行单机吞吐率的评测,不仅考量CPU,同时也考验CPU的访存能力(如访存带宽、性能等)。

评测命令执行:

Redis评测执行命令示意Redis评测执行命令示意

评测结果对比:

S5、SR1机型Redis吞吐率评测对比S5、SR1机型Redis吞吐率评测对比

可以看出,Redis评测结果显示,基于ARM的SR1云服务器机型性能平均高于基于x86的S5机型达30%~40%以上

0x06 小结

看到这里,相信你已经了解了评测云服务器CPU的常用简单方法啦。快去自己实践下,评测下你的云服务器性能吧~

其实,ARM云服务器的优势其实不止于其极高的性价比。随着基于ARM平台的虚拟化技术在云端的规模化普及,在物联网IoT、云手机/云游戏、安卓生态等多个应用领域,ARM云服务器的未来发展前景都更加广阔。

让我们一起期待更加触手可及的多元精彩体验吧~

0x07 参考资料

  • 【视频】腾讯云ARM服务器评测与应用
  • 【视频】6招简单快速云上甄选CPU
  • 用LUKS为云盘敏感数据上锁
  • 7zip benchmark
  • Intel AES-NI 指令集白皮书

0 人点赞