网站首页 > 技术教程 正文
目前基于虚拟技术的流行,越来越多的企业基于容器云技术来部署工作负载。而作为边缘节点最重要的一个服务可能会基于Nginx作为业务流量的入口。这样就面临一个选择对于入口的Nginx服务器是采用实体机呢?还是采用容器呢?
针对这个问题Nginx官方对两种情况下性能表现做了基准测试,请跟虫虫一起学习一下测试的结果。
测试方法
使用两种架构来衡量和比较Nginx在不同环境下的性能。对于每个架构,运行单独的测试集来衡量两个关键指标:每秒请求数 (RPS) 和每秒SSL/TLS事务数 (TPS)。
传统架构
Nginx在两种条件下进行测试,其被测系统(SUT)为:在裸机和管理程序环境中运行。在这两种情况下,四个Ixia客户端生成请求,NGINX 负载均衡到四个Ixia Web服务器。Web服务器返回一个128字节的文件响应每个请求。
基准测试中使用的软硬件如下:
Ixia客户端和Web服务器使用IxLoad进行测试,硬件环境为Axia Xcellon-Ultra? XT80v2 应用刀片机。
两种情况下的SUT,CentOS 7 配备英特尔PowerEdge服务器上的操作系统。
管理程序是 VMWare ESXi 7.0.0 版。
Kubernetes 架构
SUT是运行在Rancher Kubernetes Engine (RKE)裸机平台上的NGINX Ingress Controller(基于 NGINX Open Source)。四个Ixia客户端生成请求,Nginx入口控制器将这些请求定向到后端Kubernetes部署,这是一个Web服务器,返回一个1KB的文件响应每个请求。
测试中使用的软硬件如下:
Ixia客户端使用IxLoad进行测试,硬件环境为Axia Xcellon-Ultra? XT80v2 应用刀片机。节点上不需Ixia Web服务器。
SUT 和托管后端应用程序的节点的操作系统都是CentOS 7。SUT和后端应用程序运行在两个带有Intel的独立PowerEdg服务器节点上。
Nginx Ingress Controller版本是1.11.0。
测试指标
基准测试中共收集两个性能指标:
每秒请求数 (RPS) — Nginx每秒可以处理的请求数,在固定时间段内平均。来自Ixia客户端的请求使用http方案。
SSL/TLS 每秒事务数 (TPS) —Nginx每秒可以建立和服务的新HTTPS连接数。 在这种情况下,来自Ixia客户端的请求使用了https方案:RSA 2048 位密钥大小和完美前向保密的。
Ixia 客户端发送了一系列HTTPS请求,每个请求都在一个新连接上。Ixia客户端和Nginx执行TLS握手以建立安全连接,然后Nginx将请求代理到后端。请求满足后连接关闭。
性能分析
下一节中的表格报告了在传统和Kubernetes架构中Nginx可用不同数量的CPU实现的RPS和SSL TPS数量。
传统的本地架构
Nginx在裸机上的性能呈线性增长,直到可用CPU数量达到8个。由Ixia客户端限制无法测试更多的内核,当有8个或更多内核时,Ixia客户端无法生成足够的请求来使SUT饱和(达到100% CPU 利用率)。
与裸机相比,虚拟化使性能下降了很小但可以衡量的程度。管理程序中的CPU指令比裸机上的相同指令需要更多的时钟周期,这会导致额外的开销。
Kubernetes架构
当将内核数量扩展到8个时,Kubernetes中Nginx Ingress Controller性能会线性扩展。
与传统架构的结果进行比较,发现在Kubernetes中运行Nginx(Nginx Ingress Controller)会极大降低network?bound操作(如服务请求的性能,以RPS衡量)。这是由于他要连接到其他服务的底层容器网络堆栈。
另一方面,传统环境和Kubernetes环境对于CPU密集型操作(如SSL/TLS握手(以TPS 衡量)之间没有性能差异——实际上,Kubernetes中的TPS稍好一些。
此外,当启用超线程 (HT) 时,看到TPS大约增加了10%。
结论
如果应用程序基础设施为network?bound操作(在测试中以RPS衡量),那么传统裸机环境中运行Nginx是性能的最佳选择。由于环境中使用的底层容器网络堆栈,在Kubernetes中运行Nginx Ingress Controller 会导致network?bound操作的性能成本最高。
虚拟机管理程序为网络和CPU密集型操作引入了少量但可衡量的性能成本(RPS 约为裸机价值的 80%)。
如果应用程序基础架构为CPU 密集型操作(测试中以TPS衡量),则NGINX在传统环境和 Kubernetes 环境中几乎没有性能差异。
在测试中,超线程将可并行化CPU密集型操作(如加密)的性能提高了大约10%。
猜你喜欢
- 2024-10-09 转需!最全Linux主机安全基线操作配置
- 2024-10-09 web安全-服务端校验(web服务器的安全措施是什么)
- 2024-10-09 Linux系统安全小妙招,这些或许能够帮助到你
- 2024-10-09 最新Nginx安全问题使1400多万台服务器容易受到DoS攻击
- 2024-10-09 Web 环境安全 优化建议例(web安全深度剖析)
- 2024-10-09 第 12 章:NGINX 最佳实践和未来趋势
- 2024-10-09 构建高效安全的Nginx Web服务器(nginx搭建文件服务器)
- 2024-10-09 确保nginx安全,请注意这10点(nginx防护)
- 2024-09-10 网络安全运维掌握这十点核心能力就够了吗?
- 2024-09-10 Nginx暴露危漏洞CVE-2021-23017(nginx渗透测试)
你 发表评论:
欢迎- 最近发表
-
- Win11学院:如何在Windows 11上使用WSL安装Ubuntu
- linux移植(Linux移植freemodbus)
- 独家解读:Win10预览版9879为何无法识别硬盘
- 基于Linux系统的本地Yum源搭建与配置(ISO方式、RPM方式)
- Docker镜像瘦身(docker 减小镜像大小)
- 在linux上安装ollama(linux安装locale)
- 渗透测试系统Kali推出Docker镜像(kali linux渗透测试技术详解pdf)
- Linux环境中部署Harbor私有镜像仓库
- linux之间传文件命令之Rsync傻瓜式教程
- 解决ollama在linux中安装或升级时,通过国内镜像缩短安装时长
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)