草庐IT

JMeter | 监控服务器性能

自动化码尚科技 2023-10-15 原文

JMeter是一款压力测试工具,通常在压力测试中我们也需要监控和知道服务器的相关资源情况,jmeter本身不具备这个功能,今天我们主要说一下如何通过JMeter插件来监控服务器CPU、内存、磁盘、网络等相关资源

一、一图了解性能测试的阶段性区间变化

 

前置准备下载后期使用到的插件:

  1. 客户端插件清单

  • JMeterPlugins-Standard-1.4.0.zip

  • JMeterPlugins-Extras-1.4.0.zip

  • 点击下载:客户端插件下载地址

  1. 服务端插件清单

  • ServerAgent-2.2.1.zip

  • 点击下载:服务端插件下载地址

二、插件安装及配置

1. 第一步:在jmeter中添加客户端插件

  • 解压JMeterPlugins-Standard-1.4.0.zip,进入其路径JMeterPlugins-Standard-1.4.0\lib\ext下,找到JMeterPlugins-Standard.jar

  • 解压JMeterPlugins-Extras-1.4.0.zip,进入其路径JMeterPlugins-Extras1.4.0\lib\ext下,找到JMeterPlugins-Extras.jar

  • 把JMeterPlugins-Standard.jar 和 JMeterPlugins-Extras.jar 放置到JMeter安装目录下的lib/ext目录下

  • 重启Jmeter,在监听器中出现 jp@gc- 开头的表示jar包导入成功

 

 

插曲:常用组件简单介绍

  • jp@gc-Bytes Throughput Over Time:不同时间吞吐量展示(图表) 聚合报告里Throughput是按请求个数来展示的,比如说1.9/sec,就是每s发送1.9个请求;而这里的展示是按字节Bytes来展示的图表

  • jp@gc-Composite Graph:混合图表在它的Graphs里面可以设置多少个图表一起展示,它可以同时展示多个图表

  • jp@gc-Hits per Second:每秒点击量

  • jp@gc-PerfMon Metrics Collector:服务器性能监测控件,包括CPU,Memory,Network,I/O等等

  • jp@gc-Reponse Latencies Over Time:记录客户端发送请求完成后,服务器端返回请求之前这段时间

  • jp@gc-Reponse Times Distribution:显示测试的响应时间分布,X轴显示由时间间隔分组的响应时间,Y轴包含每个区间的样本数

  • jp@gc-Transactions per Second:每秒事务数,服务器每秒处理的事务数

2. 第二步:在服务器上添加插件将ServerAgent-2.2.1.jar 拷贝到服务器上,解压出来(windows服务器中启动startAgent.bat,Linux服务器启动startAgent.sh),打印出下图中右边部分,即为启动成功

  • HTTP请求(鼠标右键)>>监听器>>jp@gc-PerfMon Metrics Collector**

 3. 第三步:添加PerfMon Metrics Collector监听服务器性能

插曲:指标释义

  • Memory:内存

  • TCP:通讯协议,传输数据的

  • Disks I/O:磁盘吞吐

  • Network I/O: 网络吞吐

  • JMX:提供接口

  • swap:交换区,系统在物理内存不够时,与swap进行交换。

备注:添加服务端的插件可能会碰到的异常,添加插件成功后在JMeter进行引用,点击执行脚本,JMeter客户端可能会出现不响应的异常。此时可以将插件禁用即可。

最终对于我们不同场景的测试结果集进行分析就OK!当然这也不是个简单的事情!

 

有关JMeter | 监控服务器性能的更多相关文章

  1. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  2. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  3. ruby-on-rails - 启动 Rails 服务器时 ImageMagick 的警告 - 2

    最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru

  4. ruby-on-rails - s3_direct_upload 在生产服务器中不工作 - 2

    在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo

  5. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  6. ruby-on-rails - 在 Rails 中调试生产服务器 - 2

    您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除

  7. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  8. ruby - 我的 Ruby IRC 机器人没有连接到 IRC 服务器。我究竟做错了什么? - 2

    require"socket"server="irc.rizon.net"port="6667"nick="RubyIRCBot"channel="#0x40"s=TCPSocket.open(server,port)s.print("USERTesting",0)s.print("NICK#{nick}",0)s.print("JOIN#{channel}",0)这个IRC机器人没有连接到IRC服务器,我做错了什么? 最佳答案 失败并显示此消息::irc.shakeababy.net461*USER:Notenoughparame

  9. ruby - Rails 开发服务器、PDFKit 和多线程 - 2

    我有一个使用PDFKit呈现网页的pdf版本的Rails应用程序。我使用Thin作为开发服务器。问题是当我处于开发模式时。当我使用“bundleexecrailss”启动我的服务器并尝试呈现任何PDF时,整个过程会陷入僵局,因为当您呈现PDF时,会向服务器请求一些额外的资源,如图像和css,看起来只有一个线程.如何配置Rails开发服务器以运行多个工作线程?非常感谢。 最佳答案 我找到的最简单的解决方案是unicorn.geminstallunicorn创建一个unicorn.conf:worker_processes3然后使用它:

  10. Ruby 的数字方法性能 - 2

    我正在使用Ruby解决一些ProjectEuler问题,特别是这里我要讨论的问题25(Fibonacci数列中包含1000位数字的第一项的索引是多少?)。起初,我使用的是Ruby2.2.3,我将问题编码为:number=3a=1b=2whileb.to_s.length但后来我发现2.4.2版本有一个名为digits的方法,这正是我需要的。我转换为代码:whileb.digits.length当我比较这两种方法时,digits慢得多。时间./025/problem025.rb0.13s用户0.02s系统80%cpu0.190总计./025/problem025.rb2.19s用户0.0

随机推荐