腾讯CVM标准型SR1是腾讯云服务器推出的首款搭载ARM架构处理器的新一代CVM标准型计算实例规格。SR1基于全核一致主频3.0GHz的Ampere Altra处理器,实例核数从1核到64核,并支持1: 2、1: 4等多种处理器与内存配比,相对x86架构实例为用户提供卓越的性价比。
本文将针对Web应用中多个核心工作负载对SR1的性能与最新的x86架构的S6(Intel Icelake)实例进行实测对比,从而为SR1在Web应用场景下的性价比优势较为全面的数据参考。
Web应用的简介
Web 服务是基于开放标准(XML、SOAP、HTTP 等)的 Web 应用程序,它可以独立于实现它的硬件或软件平台使用,也可以独立于编写它的编程语言。 这种独立性决定了基于 Web 服务的应用程序是松散耦合的、面向组件的、使用容器化微服务的实现。
随着云计算的发展和云服务器的弹性优势,Web应用的更高级形式基于云的应用已经成为主流。作为“进化”的 Web 应用程序,基于云的应用程序通常具有高级功能,访问更广泛的服务,为其客户提供基于业务逻辑的动态内容。现今这类Web应用的典型代表如社交应用,互动媒体平台,电子商务网站,在线数字服务,以及万物互联的IoT系统。
Web 应用程序是客户端-服务器框架系统,客户端是指个人用来运行应用程序的程序。它可以是浏览器,也可能是需要独立安装运行的软件,比如手机上的APP,微信小程序,或者电脑客户端等。
在云化应用中,“服务器”端是云,是基于微服务架构的云原生模式,其中单个服务由许多松散耦合且可独立部署的较小组件或服务组成。 基于微服务的Web应用程序架构将传统的单体应用程序分解为其组件功能,应用程序功能不再部署在单一代码源中。微服务架构将每个功能隔离为一个小型、自主运行的应用程序(即微服务),该应用程序通常在容器化环境中运行,以进行更轻量级的部署和执行。
整个堆栈逻辑上可分为三层,即前端(Frontend)通过负载均衡服务器将用户请求路由到后端,然后是松耦合模块化的业务逻辑层,最后是数据缓存和存储层。
本次评测将选择NGINX,Redis和MySQL三个在Web服务系统中最为关键的工作负载,他们的性能数据可以直接反映出SR1云服务器在Web应用场景下的表现。
测试环境
为了尽可能全面地了解全新架构实例SR1在Web应用下的整体表现,本文将在2种不同大小实例上进行测试,具体实例配置如下:
NGINX 是一个开源的高性能 HTTP 服务器和反向代理,捆绑了许多其他与 Web 服务相关的功能。 NGINX 在许多流行的高流量网站中常用作负载均衡器、反向代理和 http 服务器。它使用复杂的事件驱动架构,使其能够支持数十万个并发连接。NGINX 性能可以反应Web应用的业务处理能力和用户并发容量。下图为测试实例下的测试配置。
Redis 是一种开源的内存键值数据结构存储,用作数据库、缓存、消息代理和流引擎。在众多Web 服务基础设施Redis都是主流选项。根据 DB-Engines.com 的月度排名,Redis也 是最受欢迎的键值存储系统。
MySQL是关系型数据库管理系统,也是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management System,关系数据库管理系统) 应用软件之选。
测试结果
为了数据更加直观,本文将基于英特尔IceLake CPU的S6云实例作为比较基准,即100%,SR1实例数据取相对比例。
首先是NGINX在8 vCPU实例上的数据,本测试中以5ms的P99延迟SLA下的每秒HTTPS请求数为性能指标。在性能上,基于Ampere Altra CPU的8核SR1实例相比S6高出35%;如果考虑价格因素,以一年计费价格, SR1相对S6实例的性价比
高出77%。
在16 vCPU的实例配置下稍有变化,SR1的性能相对S6扩大5%达到40%,而性价比提升
达到85%。
接下来是Redis的数据,与NGINX的比较方法类似,测试中以1ms的P99延迟SLA下的每秒请求处理数量为性能指标。在8 vCPU实例上的性能,SR1高于基准S6实例14%。同样加入价格因素,看性价比,则SR1在Redis的性价比相对基准S6高50%以上。
在 16 vCPU 实例中, SR1 比 S6 的性能提升 8%,性价比提升 43% 。
最后,我们看一下MySQL的数据。本测试中性能以对算力,存储综合要求更高的oltp_read_write负载,在100ms的P95延迟SLA下的每秒查询数量为性能指标。加入价格因素的性价比,SR1比S6实例的优势保持在46%(8 vCPU实例)和51%(16 vCPU 实例)。
总结
综合三种Web应用程序中关键的工作负载测试数据,可以基本判断基于SR1实例的Web应用相比S6实例,平均会有50%以上的性价比提升。这就意味着Web应用的软件服务提供商可以用同样的成本提供超过1.5倍的业务处理能力,或者说在保持现有的业务量的情况下,采用SR1 实例相对S6可以使用更少的云服务器,节省33%以上的绝对成本。
最后,关于Web应用在Arm架构上部署几乎与x86的平台无异。就本次评测的三个关键工作负载在SR1上安装也非常顺利。NGINX直接采用Yum安装运行,对于Redis和MySQL也可以通过Yum方式安装,但这次的评测中为了性能的考虑,重新编译了源代码,但不需任何源码修改,wget下载源代码,然后配置正确的编译参数,编译即可。
Ampere Computing免费试用计划为开发者开放了SR1实例的申请通道,有兴趣的同学可以通过该计划免费试用SR1实例,亲自体验全新架构算力平台。
另外,开发者也可以从Ampere解决方案网站上获取开发语言,应用程序以及工具软件包等大量可直接使用的,在Arm架构编译后的兼容镜像信息,基本覆盖了绝大部分云原生开发所需的资源。
附录
软件版本,安装,配置信息。
软件 | 版本信息 | 安装方式 | |
---|---|---|---|
Nginx | 1.14.1 | sudo yum install nginx -y | |
Wrk | 4.2.0 | wget https://github.com/wg/wrk/archive/refs/tags/4.2.0.tar.gz tar zxvf 4.2.0.tar.gz cd wrk-4.2.0/ make -j`nproc` | |
MySQL | 8.0.27 | wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.27.tar.gz tar zxvf mysql-8.0.27.tar.gz mkdir build; cd build OPT_FLAGS="-g -O3 -fno-omit-frame-pointer -march=armv8.2-a -DNDEBUG" cmake ../mysql-8.0.27 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=../BOOST -DCMAKE_C_FLAGS_RELWITHDEBINFO="$OPT_FLAGS" -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="$OPT_FLAGS" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DWITH_UNIT_TESTS=OFF -DCMAKE_INSTALL_PREFIX=$MYSQL_INSTALL_DIR make -j`nproc` sudo make install | |
sysbench | master | wget https://github.com/akopytov/sysbench/archive/refs/heads/master.zip unzip master cd sysbench-master ./autogen.sh ./configure make -j`nproc` sudo make install | |
Redis | 6.2.1 | wget https://github.com/redis/redis/archive/refs/tags/6.2.1.tar.gz tar -xvzf 6.2.1.tar.gz cd redis-6.2.1" make CFLAGS="-DUSE_PROCESSOR_CLOCK -march=armv8.2-a" | |
Memtier | master | git clone https://github.com/RedisLabs/memtier_benchmark cd memtier_benchmark git checkout 793d74dbc09395dfc241342d847730a6197d7c0c autoreconf -ivf ./configure make -j`nproc` |