Ampere Computing Logo
Contact Sales
Ampere Computing Logo
Cloud Computing Solutions

谷歌云上的 NGINX 工作负载简介

基于 Ampere Altra 处理器的TAU T2A 虚拟机

概述

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

谷歌云基于Ampere Altra处理器的Tau T2A虚拟机针对向外扩展的云原生工作负载进行了成本优化,提供以多种预定的虚拟机形态-每个虚拟机最多48个vCPU,每个vCPU 4 GB内存,最高32 Gbps网络带宽,以及广泛的网络连接存储选项。这些虚拟机适用于诸多向外扩展的工作负载,如web服务器、容器化微服务、数据日志处理、媒体转码和Java应用程序。

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

结果和主要发现

由Ampere Altra 处理器驱动的谷歌 T2A 虚拟机在各种NGINX web服务器配置中提供了极具竞争力的性能,包括在我们的测试中使用的启用tls的服务器配置。web服务器通过HTTPS为来自负载生成器的每个请求发送一个静态文件。我们的性能指标采用的是p.99延迟低于5毫秒的吞吐量(请求/秒)。

Fig.1: NGINX Performance On Google Cloud T2A Standard 32 Virtual Machines Powered by Ampere® Altra®

基于Ampere Altra 的谷歌Cloud T2A虚拟机性能优于传统的x86虚拟机。图1所示的性能结果显示,T2A虚拟机的性能比N2虚拟机高出15%,与N2d虚拟机大致相当。

Fig.2: NGINX Price-Performance On Google Cloud T2A Standard 32 Virtual Machines Powered by Ampere® Altra®

对于云开发人员来说,性价比占总拥有成本(TCO)的很大一部分,并且是在云中进行大规模部署的重要考虑因素。T2A虚拟机的性价比比N2虚拟机高45%,比N2D虚拟机高11%。

基准测试配置

Figure 3

NGINX_Google Cloud.jpg

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

T2A Standard 8N2 Standard 8N2D Standard 8
Number of vCPUs 323232
Hourly cost$1.232$1.553888$1.351872
Operating SystemDebian 11Debian 11Debian 11
Kernel5.15.0-0.bpo.3-cloud-arm645.10.0-14-cloud-amd645.10.0-14-cloud-amd64
Memory64GB64GB64GB
Disk300GB300GB300GB
NGINX version1.18.01.18.01.18.0
WRK Version4.2.04.2.04.2.0
Static File Size53KB53KB53KB

用于测试的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
基准测试结论

谷歌Cloud Tau T2A 虚拟机由Ampere Altra处理器提供算力支持,由于其创新的云原生设计和出色的性价比,是NGINX等云原生工作负载的绝佳选择。对于云应用程序开发人员来说,由于AArch64软件生态系统的成熟,可以无缝地将NGINX应用程序从传统的x86 虚拟机过渡到Ampere Altra 虚拟机。总的来说,出色的性能和令人信服的性价比之外,同时减少您的碳足迹。有关使用Ampere Altra处理器的谷歌Tau T2D虚拟机的更多信息,请访问谷歌云博客

脚注

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

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

©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:31 am
Last Updated At : July 31st 2023, 5:58:00 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 runs on Ampere Processors.