Ampere Computing Logo
Contact Sales
Ampere Computing Logo
Workloads Ampere Altra

Azure 上的 NGINX 工作负载简介

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

概述

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

Created At : October 8th 2022, 7:45:21 am
Last Updated At : April 12th 2023, 4:59:53 pm
Ampere Logo

Ampere Computing

4655 Great America Parkway

Suite 601 Santa Clara, CA 95054

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.
This site is running on Ampere Altra Processors.