公司
解决方案
开发者
支持
Search
CN
CN
Ampere Computing Logo
解决方案
解决方案主页
平台系统
解决方案
性能总览
White Papers Coming Soon!
工作负载简介概览
Tuning Guides Overview
如何购买
Ampere 系统
Ampere Altra
Azure
Equinix
甲骨文
腾讯云
谷歌云
Ampere AI 下载工作原理常见问题
开发者
开发者中心部署云应用使能开源社区把数据用起来构建云应用设计云应用
Search
Workloads Ampere Altra

Azure 上的 NGINX 工作负载简介

基于 Ampere Altra 处理器的Dpsv5 虚拟机

Print
Download
概述
结果和主要发现
图:运行NGINX的测试配置
基准测试配置
基准测试结论
脚注
概述

Ampere® Altra®处理器从设计伊始就旨在为云原生应用程序(如NGINX)提供卓越的性能。以其创新架构,提供高性能、线性可扩展性和惊人的能源效率,Ampere Altra允许工作负载在不断增加的负载下,性能变化很小,以可预测的方式运行。最终可转化为行业领先的性能/瓦特能力和更低的碳足迹。

微软提供了一个全面的Azure虚拟机系列产品,以Ampere Altra云原生处理器为特色,可以运行各种各样的向外扩展的工作负载,如web服务器、开源数据库、内存应用程序、大数据分析、游戏、媒体等。由Ampere Altra处理器提供算力的Dpsv5 虚拟机是一种通用虚拟机产品,每个vCPU提供 2GB内存。vCPU、内存和本地存储的优化组合,可以经济有效地运行工作负载,不需要每个vCPU占用大量RAM。Epsv5虚拟机为内存优化型虚拟机,每个vCPU提供4gb的内存,适用于开源数据库、内存缓存应用、游戏和数据分析引擎等内存密集型工作负载。

NGINX是一个开源的高性能HTTP服务器,也可以用作反向代理、负载均衡器、邮件代理和HTTP缓存。它使用复杂的事件驱动架构,允许在现代硬件上扩展到数十万个并发连接。根据w3technologies的数据,截至2021年,NGINX是高流量网站中最受欢迎的网络服务器,市场份额为33.8%。

结果和主要发现

由Ampere®Altra®处理器驱动的Microsoft Azure Dpsv5 虚拟机在各种NGINX web服务器配置中提供了令人瞩目的性能,包括在我们的测试中使用的支持tls的服务器配置。web服务器通过HTTPS为来自负载生成器的每个请求发送一个静态文件。我们的性能指标是p99延迟低于5毫秒的吞吐量(requests/seconds)。

Fig.1.NGINX Performance on Microsoft Azure Dpsv5 VMs Powered by Ampere Altra processors

基于Ampere Altra处理器的Microsoft Azure Dpsv5虚拟机性能优于x86虚拟机。图1中所示的性能结果规化为基于Intel Xeon Ice Lake的D16sv5 虚拟机。D16psv5虚拟机的性能比D16sv5 高 4%,比D16asv5 高 9%。

Fig.2.NGINX Price-Performance on Microsoft Azure Dpsv5 VMs Powered by Ampere Altra processors

对于云开发人员来说,性价比占总拥有成本(TCO)的很大一部分,并且是在云中进行大规模部署的重要考虑因素。Dpsv5虚拟机的性价比比我们测试中使用的传统x86虚拟机高出21%至30%。

图:运行NGINX的测试配置

NGINX.jpg

基准测试配置

在我们的测试中,NGINX托管在16个vCPU的虚拟机上。我们将基于Ampere Altra的Microsoft Azure D16psv5与基于Intel Xeon Ice Lake的D16sv5和基于AMD Milan的D16asv5 vm进行了比较。像大多数开源软件一样,NGINX在AArch64上是原生支持的,我们使用操作系统提供的相应包管理器在所有服务器vm上安装NGINX。NGINX服务器通过HTTPS向客户端请求提供一个gzip压缩的静态文件。WRK作为负载发生器,运行在32vcpu的虚拟机上。性能指标以NGINX在服务水平协议(SLA)下以每秒请求数来衡量。我们使用不超过5毫秒的第99百分位延迟(p99)作为SLA。我们配置了线程数和并发级别,以实现最大吞吐量,同时将p99延迟保持在5毫秒以下。客户端和服务器虚拟机被配置为同一子网的一部分,以实现最佳的网络吞吐量。

Standard D16s v5Standard D16as v5Standard D16ps v5
Number of vCPUs 161616
Hourly cost$0.768$0.688$0.616
Operating SystemUbuntu 20.04.4 LTSUbuntu 20.04.4 LTSUbuntu 20.04.4 LTS
Kernel5.13.0-1017-azure5.13.0-1017-azure5.13.0-1017-azure
Memory64GB64GB64GB
DiskPremium SSD 30GBPremium SSD 30GBPremium SSD 30GB
NGINX version1.18.01.18.01.18.0
WRK version4.2.0 4.2.0 4.2.0
Static File Size53KB53KB53KB

启用TLS的服务器的NGINX配置

# For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/ user nginx; worker_processes auto; worker_rlimit_nofile 104857600; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { use epoll; accept_mutex off; worker_connections 10240; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access.log main; access_log off; open_file_cache max=10240000 inactive=60s; open_file_cache_valid 80s; open_file_cache_min_uses 1; keepalive_requests 100000000000; keepalive_timeout 300s; sendfile on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name _; root /usr/share/nginx/html; ssl_certificate "/etc/pki/tls/certs/NGINX_TEST_SSL.crt"; ssl_certificate_key "/etc/pki/tls/private/NGINX_TEST_SSL.key"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; ssl_ciphers "AES128+SHA256 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS !MEDIUM !RC4"; ssl_prefer_server_ciphers on; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } }

下面的配置文件显示了我们在NGINX中使用的gzip压缩设置。

gzip on; gzip_min_length 100; gzip_buffers 8 32k; gzip_types text/plain text/css application/x-javascript text/xml application/xml text/javascript; gzip_vary on;

在客户端,使用的wrk命令行如下所示。我们调整$thread和$connection的值,最终达到5 ms p.99延迟SLA下的最佳吞吐量。

./wrk-4.2.0/wrk -t$thread -c$connection -H 'Accept-Encoding: gzip' -d10s https://${NGINX_HOST}:443/${filename} --latency
基准测试结论

由Ampere Altra处理器驱动的Microsoft Azure Dpsv5 虚拟机是云原生工作负载(如NGINX)的绝佳选择,因为它们具有创新的云原生设计和出色的性价比。对于云应用程序开发人员来说,由于AArch64软件生态系统的成熟,将NGINX应用程序从传统的x86 虚拟机过渡到Ampere Altra 虚拟机是无缝的。总而言之,出色的性能和令人信服的性价比,同时显著减少碳足迹。

有关使用基于amere Altra 处理器的Azure虚拟机的更多信息,请访问Azure博客了解更多详细信息。

脚注

此处包含的所有数据和信息仅供参考,Ampere 保留更改它的权利,恕不另行通知。本文档可能包含技术错误、遗漏和印刷错误,Ampere 没有义务更新或更正此信息。 Ampere 不作任何形式的陈述或保证,包括但不限于对不侵权、适销性或适用于特定目的的明示或暗示保证,并且不承担任何形式的责任。所有信息均“按原样”提供。本文件不是 Ampere 的要约或具有约束力的承诺。使用此处设想的产品需要随后的谈判和最终协议的执行,或者受 Ampere 的商品销售条款和条件的约束。

与 Ampere 测试中使用的不同的系统配置、组件、软件版本和测试环境可能会导致与 Ampere 获得的测量结果不同。

性价比是在2022年9月使用微软的虚拟机定价计算的。有关详细信息,请参阅单个测试。

©2022 Ampere Computing 版权所有。Ampere、Ampere Computing、Altra和“A”标志均为Ampere Computing的注册商标或商标。Arm是Arm有限公司(或其子公司)的注册商标。本出版物中使用的所有其他产品名称仅用于识别目的,可能是其各自公司的商标。

Ampere Computing®/ 4655 Great America Parkway, Suite 601 / Santa Clara, CA 95054 / amperecomputing.com

Ampere Computing

4655 Great America Parkway

Suite 601 Santa Clara, CA 95054

Tel: +1-669-770-3700

info[at]amperecomputing.com

关于我们
image
image
© 2022 Ampere Computing LLC. All rights reserved. Ampere, Altra and the A and Ampere logos are registered trademarks or trademarks of Ampere Computing.