容器:软件性能测试的最佳环境

 容器总体上提供了一种经济的和可扩展的方法来测试产品在实际情况下的性能,同时还能保持较低的资源成本和开销成本。

软件性能和可伸缩性是我们谈论应用程序开发时经常遇到的话题。一个很大的原因是应用程序的性能和可伸缩性直接影响其在市场上的成功。一个应用程序,不管它的用户界面有多好,如果它的响应时间很慢,就不会拥有高市场份额。这就是为什么我们花这么多时间改进应用程序的性能和可伸缩性,因为它的用户基础在增长。

容器:软件性能测试的最佳环境容器:软件性能测试的最佳环境

日常测试失败在哪?

幸运的是,我们有很多工具来测试高负荷条件下的软件行为,也可以帮助识别工具性能和可扩展性存在的问题。而其他基准测试工具也可以要求测试系统在高负荷下提供系统稳定性的测试。然而,当我们尝试使用这些工具来测试企业产品的性能时,我们遇到了性能和规模工程的问题。一般来说,这些产品不是单一的应用程序,而是由几个不同的应用程序相互交互,以提供一致和统一的用户体验。

如果我们只测试它的单个组件,我们就不能获得关于产品性能和可伸缩性问题的任何有意义的数据。只有在实际场景中测试应用程序,即把整个企业应用程序置于实际工作负载中,才能收集真实的数据。

问题是:我们如何能够在一个测试场景实现这一现实的工作量?

容器--救援集装箱

答案是容器。为了解释容器如何帮助我们测试产品的性能和可伸缩性,我们来看一个软件配置管理工具puppet。Puppet使用C5体系结构,其中有一个或多个Puppet主机(服务器),以及使用Puppet运行Puppet代理(客户端)配置的系统。

为了理解应用程序的性能和可伸缩性,我们需要在不同系统上运行高负载的puppet-master。为此,我们可以在一个系统上安装puppet-master,然后运行我们的操作系统的多个容器,在这里,我们安装和运行puppet-agent。

容器:软件性能测试的最佳环境容器:软件性能测试的最佳环境

接下来,我们需要配置puppet-agent与puppet-master进行交互,以管理系统配置。这在服务器处理请求时强调服务器,并在客户端更新软件配置时强调客户机。

那么,容器在这里能起到什么作用呢?我们能不能只通过一个脚本模拟的Puppetmaster负载?答案是否定的。即使模拟了负载,我们也会对产品性能有不够客观的判断。在现实生活中,除了puppet-agent或puppet-master之外,用户系统还将运行许多其他进程,其中每个进程消耗一定数量的系统资源,因此直接通过限制puppet可以使用的资源来影响puppet的性能。

这是一个简单的例子,但是在处理多个组件组合的产品时,企业应用程序的性能和规模工程可能会变得脆弱。这就是容器的优势所在。

为什么是容器而不是别的?

一个真正的问题是:为什么要使用容器而不是虚拟机(VM)或仅仅是裸机?运行容器背后的逻辑与我们可以启动的容器图像的数量有关,还有它们相对于替代品的成本问题。

虽然VM提供了强大的机制,但它们也会占用巨大的系统资源,从而限制了可以在单个裸机服务器上复制的系统的数量。相比之下,在同一个系统上启动1000个容器是相当容易的,这取决于您想实现什么样的模拟,同时维持较低的开销。

使用裸机服务器,性能和规模可以根据需要实现,但一个主要问题是成本开销。你会购买1000台服务器只是为了进行测试吗?这就是为什么容器总体上提供了一种经济的和可扩展的方法来测试产品在实际情况下的性能,同时还能保持较低的资源成本和开销成本。更多linux咨询请查看www.linuxprobe.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/178316.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flink状态不能跨算子

背景 在flink中进行状态的维护和管理应该是我们经常做的事情,但是有些同学认为名称一样的状态在不同算子之间的状态是同一个,事实是这样吗? flink状态在保存点中的存放示意图 事实上,每个状态都归属于对应的算子,也…

外汇天眼:MAS下令星展银行暂停六个月的非必要活动

新加坡金融管理局(MAS)已经决定对星展银行有限公司(DBS Bank Ltd)的非必要IT变更进行为期六个月的暂停,以确保银行集中精力恢复其数字银行服务的弹性。在此期间,星展银行将不被允许开展新的业务&#xff0c…

python项目部署代码汇总:目标检测类、人体姿态类

一、AI健身计数 1、图片视频检测 (cpu运行): 注:左上角为fps,左下角为次数统计。 1.哑铃弯举:12,14,16 详细环境安装教程:pyqt5AI健身CPU实时检测mediapipe 可视化界面…

MAA连不上MUMU模拟器

之前一直能正常用,最近突然连接不上,最终发现是adb版本不同造成的,我系统变量的adb版本如下: MUMU自带adb版本如下: 解决办法: 把mumu的adb复制到系统变量路径下,或者把adb的系统变量删除

Python 框架学习 Django篇 (八) 代码优化、数据库冗余处理

我们开发软件系统的时候,需要不断的反思我们代码里面是否有可以优化的地方。而优化的重点之一,就是把冗余的代码优化为可以复用的库。我们在前面编写了一些功能,但是其中存在很多冗余的方法 mgr/medicine.py mgr/k8s.py mgr/medicine.py 打开…

Mac/Linux类虚拟机_CrossOver虚拟机CrossOver 23.6正式发布2024全新功能解析

CodeWeivers 公司于今年 10 月发布了 CrossOver 23.6 测试版,重点添加了对 DirectX 12 支持,从而在 Mac 上更好地模拟运行 Windows 游戏。 该公司今天发布新闻稿,表示正式发布 CrossOver 23 稳定版,在诸多新增功能中,最…

我和“云栖大会”的双向奔赴

目录 引言初次参加云栖大会云栖大会带来的技术风向标本届大会最强技术有哪些?云栖大会对我职业生涯的影响个人对未来云栖大会的期待和建议结语 引言 想必大家对“云栖大会”并不陌生,“云栖大会”作为国内最具规模和影响力的云计算盛会,每年…

Jellyfin转码和色调映射效率提升:开启处理器低电压模式(GuC/HuC)

Jellyfin转码和色调映射效率提升 系统环境拉取nyanmisaka/jellyfin镜像开启低电压模式Jellyfin配置开启QSV和低电压模式解码开启色调映射(基于OpenCL) 实测验证低电压模式转码帧率实测测试视频概况221029版本 vs 230901版本开启色调映射的影响开启低电压…

移动路由器Cellular Router命令执行漏洞复现 [附POC]

文章目录 移动路由器Cellular Router命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 移动路由器Cellular Router命令执行漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章…

线扫相机DALSA-相机平场矫正详细步骤

在相机视野下铺放白色亚克力板或纯白纸,采集图像。打开曲线图。 选择 Line Profile 模式。调节好相应所需的曝光时间、光源、增益和镜头光圈,让白平衡纸显示出来的灰度值大概在 150-200 左右。 在Calibration Algorithm 中将显示的数值设置好。 先暗场…

Notepad++下载、使用

下载 https://notepad-plus-plus.org/downloads/ 安装 双击安装 选择安装路径 使用 在文件夹中搜索 文件类型可以根据需要设置 如 *.* 说明是所有文件类型; *.tar 说明是所有文件后缀是是tar的文件‘;

Flink1.18新特性生产环境应用的重点解读!

大家好,我是你们的群主王知无呀。 Flink 1.18已经于近期发布了。在这个新版本中新增了很多新的功能和特性。在这些特性中,有一些是生产环境非常重要的能力,大家在使用过程中可以重点参考和了解其中的原理。 算子级别状态保留时间TTL设置 首先…

企业邮箱:哪个品牌最实用?

企业邮箱用哪个品牌的好用?从无广告、新手上手难度、功能来看Zoho Mail企业邮箱,优势很大。Zoho Mail企业邮箱界面简洁无广告,让用户可以更专注的去处理邮件,为了便于用户处理邮件,Zoho 还提供了多种整理和分类邮件的选…

学习c++的第二天

目录 数据类型 基本数据类型 typedef 声明 枚举类型 类型转换 变量类型 变量定义 变量声明 左值(Lvalues)和右值(Rvalues) 变量作用域 数据类型 基本数据类型 C 为程序员提供了种类丰富的内置数据类型和用户自定义的数…

pytorch学习第五篇:NN与CNN代码实例

这篇文章详细介绍了全链接神经网络实现方法,以及卷积的实现方法。最后我们发现,卷积的实现方法与全链接大同小异,因为 torch 为我们做了很多工作,我们来看看这两个有什么区别。 我们使用 torch 框架来实现两种神经网络,来对图形进行分类。 NN 首先我们引入依赖包 impor…

利用关键字批量整理文件:用关键字轻松移动多个文件到指定文件夹

在日常生活和工作中,我们经常需要处理大量的文件,随着时间的推移,电脑中的文件越来越多,而文件的命名可能并不规范,导致查找和整理变得非常困难。因此,我们需要一种高效的文件管理方法,以方便我…

微信小程序自定义弹窗阻止滑动冒泡catchtouchmove之后弹窗内部内容无法滑动

自定义弹窗 如图所示: 自定义弹窗内部有带滚动条的盒子区域 问题: 在盒子上滑动,页面如果超出一屏的话,也会跟着一起上下滚动 解决方案:给自定义弹窗 添加 catchtouchmove 事件,阻止冒泡即可 网上不少…

查询和下载“省市县乡村“五级行政区划

背景信息 在更新完CTAmap1.12版本之后,我想继续完善这个系列的数据,把时间范围往前更新是基础,但如何展现多年的数据是个值得解决的问题。 如何展现多个年份的行政区划?我的思考是用思维导图的形式,简单明了。既然要…

分享66个工作总结PPT,总有一款适合您

分享66个工作总结PPT,总有一款适合您 66个工作总结PPT下载链接:https://pan.baidu.com/s/1g8AWl42-tLdFYXEHZUYyGQ?pwd8888 提取码:8888 Python采集代码下载链接:采集代码.zip - 蓝奏云 立冬PPTPPT模板 西藏信仰PPT模板 古镇丽…

C++构造函数和析构函数详解

一、构造函数 1、概念 构造函数是特殊的成员函数,需要注意的是,构造函数虽然名叫做构造,但是构造函数的主要任务并不是开空间创建对象,而是初始化对象。 2、特征 函数名与类名相同。无返回值对象实例化时编译器自动调用对应的…