如何使用atop工具进行压力测试
通常,当需要处理大批量的数据时,都需要进行压力测试。通过大量并发和大量数据,让程序和机器达到一定的负载,以检测程序是否还能正常工作,从而检测出程序的瓶颈所。(1)数据库连接数是否过多、压力是否过大、是否有很慢的sql执行、是否有死;(2)程序的cpu、内存、硬盘、网络使用是否合理;(3)程序是否稳定运行;(1)使用mytop查看数据库状况(2)使用atop查看资源使用情况atop 就是一款用于监控 Linux 系统资源与进程的工具,它以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运 行情况, 并能以日志文件的方式保存在磁盘中,服务器出现问题后, 我们就可以获取相应的 atop 日志文件进行分析。1)atop安装:sudo aptitude install atop2)提交大批量的数据给应用程序进行处理,一段时间后,获取得到atop的log(/var/log/下)。3)根据该log即可分析系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况。
orastress主要测试数据库的压力。它可以测试数据库的CPU或者内存的压力(以只读方式),也可以使用包括普通INSERT和直接路径INSERT两种方式测试数据库的I/O能力。
orastress只能运行在windows下,但它也可以测试远程服务器的压力。
1、下载
下载地址是http://wwwlinxcelcouk/orabm/orastresszip
2、安装
orastress!使用的用户和数据和orabm类似,它的安装方法和orabm也类似。
1) 扩充表空间
orastress!使用orabm用户作为测试用户,orabm用户默认使用tools表空间作为默认表空间,在本测试中要导入10个Warehouses的数据,数据库大概在1G左右,所以,要保证orabm所用的表空间大于1G
注意:orastress!是共享软件,没有注册只能使用1个并发测试数据库
SQL> alter database datafile 'E:ORACLEORADATAORACLE9ITOOLS01DBF' resize 1500m;
2) 删除orabm用户
如果你的数据库没有orabm用户,则跳过这步
DROP USER ORABM CASCADE;
3) 创建用户
sqlplus system/pwd@tnsname @orabm_user
4) 创建表
sqlplus system/pwd@tnsname @orabm_tab
5) 装载数据
orabmload Warehouses 10
这里装载10个warehouses的数据进行测试。数据量大概在1G左右,执行时间估计在15分钟左右。
如果是远程数据库,则先
set LOCAL=tnsname
然后再执行orabmload
6) 创建索引
sqlplus system/pwd@tnsname @orabm_ind
7) 分析表和索引
sqlplus system/pwd@tnsname @orabm_analyze
8) 授权
连接到目标服务器,以sys执行
GRANT EXECUTE ON DBMS_LOCK TO ORABM
9) 创建压力测试插入记录所用的表
sqlplus orabm/orabm@tnsname @orastress_tabsql
10) 创建orastress!用到的包和存储过程
创建包:
sqlplus orabm/orabm@tnsname @orastressplh
创建包体:
sqlplus orabm/orabm@tnsname @orastressplb
下载并安装WAST;
1.设置并行连接数;
2.设置持续时间;
3.其余设置;
注:所有以上的选项可以根据自己的需要进行设置。
设置完成后就可以进行压力测试。测试的步骤如下:
第一步,点击工具栏上的“New Script”按钮,在打开的面板中点击“Nanual”按钮创建一个新的测试项目。在打开的窗口中对它进行设置,在主选项中的Server中填写要测试的服务器的IP地址。这里我们填写192168120。在下方选择测试的Web连接方式,这里的方式Verb选择get。Path选择要测试的Web页面路径,这里填写/Indexasp即动网的首页文件,WAST可以设置更多的Path。
第二步,在“Settings”功能设置中将Stress Level (Threads)线程数设置为1000。然后点工具中的灰色三角按钮即可进行测试。测试过程中我们可以从服务器的任务管理器中看到CPU使用率已经达到100%,损耗率达到最大。在CMD窗口中使用命令netstat -an,可以看到客户端的IP地址在服务器上的80端口进行了非常多的连接,而且Web网站已经打不开了,提示过多用户连接。
1、LoadRunner
LoadRunner是一种预测系统行为和性能的负载测试工具,通过模拟实际用户的操作行为进行实时性能监测,来帮助测试人员更快的查找和发现问题。LoadRunner适用于各种体系架构,能支持广泛的协议和技术,为测试提供特殊的解决方案。企业通过LoadRunner能最大限度地缩短测试时间,优化性能并加速应用系统的发布周期。
LoadRunner提供了3大主要功能模块:VirtualUser Generator(用于录制性能测试脚本),LoadRunner Controller(用于创建、运行和监控场景),LoadRunner Analysis(用于分析性能测试结果)既可以作为独立的工具完成各自的功能,又可以作为LoadRunner的一部分彼此衔接,与其他模块共同完成软件性能的整体测试。
详见:《性能测试入门——LoadRunner使用初探》(http://wwwadmin5com/article/20161114/695706shtml)
LoadRunner官网:https://saashpecom/zh-cn/software/loadrunner
2、Apache JMeter
JMeter作为一款广为流传的开源压测产品,最初被设计用于Web应用测试,如今JMeter可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP服务器等等,还能对服务器、网络或对象模拟巨大的负载,通过不同压力类别测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能测试和回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。
JMeter的特点包括对HTTP、FTP服务器、数据库进行压力测试和性能测试;完全的可移植性;完全 Swing和轻量组件支持包;完全多线程;缓存和离线分析/回放测试结果;可链接的取样器;具有提供动态输入到测试的功能;支持脚本编程的取样器等。在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录浏览器的HTTP请求,也可以记录Apache等WebServer的log文件来重现HTTP流量,并在测试运行时以此为依据设置重复次数和并发度(线程数)来进行压测。
参考文章:《云智慧压测实战分享之JMeter工具使用初探》(https://segmentfaultcom/a/1190000007922515)
官网链接:http://jmeterapacheorg/
3、NeoLoad
NeoLoad是Neotys出品的一种负载和性能测试工具,可真实地模拟用户活动并监视基础架构运行状态,从而消除所有Web和移动应用程序中的瓶颈。NeoLoad通过使用无脚本GUI和一系列自动化功能,可让测试设计速度提高5-10倍,并将维护的脚本维持在原始设计时间的10%,同时帮助用户使用持续集成系统自动进行测试。
NeoLoad支持WebSocket、HTTP1/ 2、GWT、HTML5、AngularJS、Oracle Forms等技术协议,能够监控包括操作系统,应用服务器,Web服务器,数据库和网络设备在内的各种IT基础设施,同时可以通过Neotys云平台发起外部压力。
官网链接:http://wwwneotyscom/product/overview-neoloadhtml
4、WebLOAD
WebLOAD是来自Radview公司的负载测试工具,它可被用以测试系统性能和弹性,也可被用于正确性验证(验证返回结果的正确性)。其测试脚本是用Javascript(和集成的COM/Java对象)编写的,并支持多种协议,如Web(包括AJAX在内的REST/HTTP)、SOAP/XML及其他可从脚本调用的协议如FTP、SMTP等,因而可从所有层面对应用程序进行测试。
WebLOAD存在免费和专业两个版本,免费版本支持50个虚拟用户,专业版还提供更多的报告和协议供用户选择。WebLOAD通常用作QA团队的独立运行工具,在开发周期的验证阶段,被测系统(System Under Test,SUT)投入实用之前,在模拟环境中对被测系统进行测试。
官网链接:http://wwwradviewcom/
5、Loadster
Loadster是一款商用负载测试软件,用于测试高负载下网站、Web应用、Web服务的性能表现,支持Linux,Mac和Windows等运行环境。
Loadster能够对Web应用/服务的Cookies、线程、头文件、动态表格等元素发起测试,获得Web在压力下的性能、弹性、稳定性和可扩展性等方面的表现。
官网链接:http://wwwloadsterperformancecom/
6、Load impact
Load impact是一款服务于DevOps的性能测试工具,支持各种平台的网站、Web应用、移动应用和API测试。Loadimpact可以帮助用户了解应用的最高在线用户访问量,通过模拟测试不同在线人数下网站的响应时间,估算出服务器的最大负载。
Load impact的使用非常简单,只需要输入网址进行测试,便可统计出加载网站的一些详细数据。包括整体加载和站内,javascript, CSS等代码载入。可以在右侧列表选择不同文件来同时对比最多三个对象的加载数据,并生成图表显示,方便网站设计者来分析。测试完成之后,网站还可以存储测试过的统计数据。
官网链接:http://loadimpactcom/
7、CloudTest
CloudTest 是一个集性能和功能测试于一体的综合压力测试云平台,专为现代网络和移动应用测试而设计开发,CloudTest可以图形化实现判断、循环,整体减轻了测试开发的工作量,缩短了开发时间。CloudTest基于内存的分析引擎,可以实时收集和展示数据,所有数据在3秒内汇聚显示。
CloudTest采用虚拟化技术,完美的配合公有/私有云计算技术,无需过多的硬件,带宽资源的投入,人力维护成本几乎为零,测试按需获得,远程接入,适合多团队协作。各种规模的模拟成本均远远优于传统工具,同时大大缩短了测试周期。
官网链接:https://soastacom/cloudtest
8、Loadstorm
Loadstorm是一款针对Web应用的云端负载测试工具,通过模拟海量点击来测试Web应用在大负载下的性能表现。由于采用了云资源,所以Loadstorm的测试成本非常低,用户可以在云端选择创建自己的测试计划,测试标准和测试场景。
Loadstorm最多可以生成多达50000个并发用户,通过数以千计的云服务器发起访问。使用Loadstorm不需要任何脚本知识,同时提供多样化的测试图表和报告模版,用于准确测量Web应用的各项性能指标,如错误率,平均响应时间和用户数量等。Loadstorm可以申请免费试用,但更多压力和功能需要开通高级帐户。
官网链接:http://loadstormcom/
9、阿里云PTS
阿里云性能测试(Performance Testing)是一个SaaS性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务场景,让应用性能问题无所遁形。PTS平台特色包括提供压测机,无需安装软件;脚本场景监控简单化,省时、省力;分布式并发压测,施压能力无上限;快速大规模集群扩容、支持几十万用户及百万级TPS性能压测;80%以上用户基本不需要花费额外的成本。
PTS分为两个版本,Lite版免费,企业版提供资源包月和按量付费两种计费方式,按量付费采用阶梯价计算,满足企业客户多种压测需求。
官网链接:https://wwwaliyuncom/product/pts
10、压测宝
压测宝是云智慧推出的面向真实用户行为与地域分布的全链路云端压力测试平台,通过云端服务器产生真实分布式用户访问压力,模拟来自各地域用户接入后台所带来的真实流量,无限接近生产环境所面临的各种复杂因素,测量真实的用户体验。通过集成云智慧应用性能管理和监控产品,帮助实现基于真实用户行为的压测方案定制、压测过程中实时定位各环节应用资源及代码瓶颈,现场纠错,分析应用性能肇因。
产品功能特色方面,压测宝通过独有的开放架构,支持各种主流网络协议;同时支持手机APP的脚本录制方式,可以大大降低压测脚本制作的时间和难度。依托压测宝以及完善的产品线,云智慧为用户提供了一站式压测服务,面向云计算时代的复杂应用提供专业性能压测服务,帮助企业客观评估应用性能容量,发现全链路性能瓶颈,对应用架构的调优及架构容量规划提供专业咨询服务,满足企业灵活多变的业务需求。目前压测宝已提供高达10万UV并发级别的压测服务。
0条评论