Jmeter 之在linux中监控Memory、CPU、I/O资源等操作方法

 

在做性能测试时,单纯的只看响应时间、错误率、中间值远远不够的,有时需要监控服务cpu、内存等指标来判断影响性能的瓶颈在哪。

操作步骤:

一、Linux下配置jmeter环境

1、在linux环境下安装jdk。

  #  rpm  -ivh  jdk-8u121-linux-x64.rpm

2、检查java是否安装成功。

  # java -version

3、将apache-jmeter-5.1.zip传到服务器上。

  # unzip  apache-jmeter-5.1.zip

4、进入jmeter.bat文件所在路径:

  # cd apache-jmeter-5.1/bin进入目录。

二、插件下载

在官网下载的Jmeter是没有监控资源服务的功能的,只能借助插件实现。

1、需要下载的第三方插件有:JMeterPlugins-Standard , JMeterPlugins-Extras,版本需要与Jmeter版本兼容,下载下来解压得到jar包后,放到jmeter安装路径下的apache-jmeter-5.1/lib/ext文件夹里,重启jmeter

  下载路径:https://jmeter-plugins.org/downloads/old/

2、下载 ServerAgent-2.2.1.zip,下载后上传到被测服务器上,并使用命令解压unzip ServerAgent-2.2.1.zip

3、进入到解压后的ServerAgent文件中,使用命令启动监控服务 bash startAgent.sh

三、脚本编写

1、根据具体的业务编写测试脚本,设置线程数、脚本持续时间等参数

2、添加 jp@gc - PerfMon Metrics Collector监听 CPU 、内存、网络、I/O等资源,路径为右击线程组->添加->监听器->jp@gc - PerfMon Metrics Collector

linux监控jvm工具 linux监控jvm内存_apache

 3、配置jp@gc - PerfMon Metrics Collector

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_02

 注意:文件名一定要单独写个文件来保存监控的数据,否则在图表中无数据展示

4、添加 jp@gc - Response Times Over Time监控响应时间走势、添加 jp@gc - Transactions per Second监控qpt走势,路径同上

5、在linux下执行编写好的脚本,执行命令 ./jmeter.sh -n -t file -l logfile,如下:

   ./jmeter.sh -n -t /home/app_comm/nucdata/nuc环境压测_50_n.jmx -l /home/app_comm/nucdata/9_27_50_n_result.jtl

6、执行完后在jp@gc - PerfMon Metrics Collector上查看监控的资源图形结果

  

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_03

7、在聚合报告中查看整体情况

  

linux监控jvm工具 linux监控jvm内存_jar_04

 8、在 jp@gc - Response Times Over Time中查看时间响应走势

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_05

9、在 jp@gc - Transactions per Second中查看qpt走势

 

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_06

 警告:

 若出现以下错误,请查看版本是否兼容

2020-09-21 17:46:59,698 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2020-09-21 17:46:59,698 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2020-09-21 17:46:59,698 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[StandardJMeterEngine,6,main]
java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;)V
at kg.apc.jmeter.JMeterPluginsUtils.doBestCSVSetup(JMeterPluginsUtils.java:256) ~[jmeter-plugins-cmn-jmeter-0.3.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.setupSaving(PerfMonCollector.java:136) ~[jmeter-plugins-perfmon-2.1.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.testStarted(PerfMonCollector.java:113) ~[jmeter-plugins-perfmon-2.1.jar:?]
at org.apache.jmeter.reporters.ResultCollector.testStarted(ResultCollector.java:351) ~[ApacheJMeter_core.jar:5.2]
at kg.apc.jmeter.vizualizers.CorrectedResultCollector.testStarted(CorrectedResultCollector.java:28) ~[jmeter-plugins-cmn-jmeter-0.3.jar:?]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:206) ~[ApacheJMeter_core.jar:5.2]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:381) ~[ApacheJMeter_core.jar:5.2]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]

可参考 




在做性能测试时,单纯的只看响应时间、错误率、中间值远远不够的,有时需要监控服务cpu、内存等指标来判断影响性能的瓶颈在哪。

操作步骤:

一、Linux下配置jmeter环境

1、在linux环境下安装jdk。

  #  rpm  -ivh  jdk-8u121-linux-x64.rpm

2、检查java是否安装成功。

  # java -version

3、将apache-jmeter-5.1.zip传到服务器上。

  # unzip  apache-jmeter-5.1.zip

4、进入jmeter.bat文件所在路径:

  # cd apache-jmeter-5.1/bin进入目录。

二、插件下载

在官网下载的Jmeter是没有监控资源服务的功能的,只能借助插件实现。

1、需要下载的第三方插件有:JMeterPlugins-Standard , JMeterPlugins-Extras,版本需要与Jmeter版本兼容,下载下来解压得到jar包后,放到jmeter安装路径下的apache-jmeter-5.1/lib/ext文件夹里,重启jmeter

  下载路径:https://jmeter-plugins.org/downloads/old/

2、下载 ServerAgent-2.2.1.zip,下载后上传到被测服务器上,并使用命令解压unzip ServerAgent-2.2.1.zip

3、进入到解压后的ServerAgent文件中,使用命令启动监控服务 bash startAgent.sh

三、脚本编写

1、根据具体的业务编写测试脚本,设置线程数、脚本持续时间等参数

2、添加 jp@gc - PerfMon Metrics Collector监听 CPU 、内存、网络、I/O等资源,路径为右击线程组->添加->监听器->jp@gc - PerfMon Metrics Collector

linux监控jvm工具 linux监控jvm内存_apache

 3、配置jp@gc - PerfMon Metrics Collector

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_02

 注意:文件名一定要单独写个文件来保存监控的数据,否则在图表中无数据展示

4、添加 jp@gc - Response Times Over Time监控响应时间走势、添加 jp@gc - Transactions per Second监控qpt走势,路径同上

5、在linux下执行编写好的脚本,执行命令 ./jmeter.sh -n -t file -l logfile,如下:

   ./jmeter.sh -n -t /home/app_comm/nucdata/nuc环境压测_50_n.jmx -l /home/app_comm/nucdata/9_27_50_n_result.jtl

6、执行完后在jp@gc - PerfMon Metrics Collector上查看监控的资源图形结果

  

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_03

7、在聚合报告中查看整体情况

  

linux监控jvm工具 linux监控jvm内存_jar_04

 8、在 jp@gc - Response Times Over Time中查看时间响应走势

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_05

9、在 jp@gc - Transactions per Second中查看qpt走势

 

linux监控jvm工具 linux监控jvm内存_linux监控jvm工具_06

 警告:

 若出现以下错误,请查看版本是否兼容

2020-09-21 17:46:59,698 INFO o.a.j.e.StandardJMeterEngine: Running the test!
2020-09-21 17:46:59,698 INFO o.a.j.s.SampleEvent: List of sample_variables: []
2020-09-21 17:46:59,698 ERROR o.a.j.JMeter: Uncaught exception in thread Thread[StandardJMeterEngine,6,main]
java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;)V
at kg.apc.jmeter.JMeterPluginsUtils.doBestCSVSetup(JMeterPluginsUtils.java:256) ~[jmeter-plugins-cmn-jmeter-0.3.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.setupSaving(PerfMonCollector.java:136) ~[jmeter-plugins-perfmon-2.1.jar:?]
at kg.apc.jmeter.perfmon.PerfMonCollector.testStarted(PerfMonCollector.java:113) ~[jmeter-plugins-perfmon-2.1.jar:?]
at org.apache.jmeter.reporters.ResultCollector.testStarted(ResultCollector.java:351) ~[ApacheJMeter_core.jar:5.2]
at kg.apc.jmeter.vizualizers.CorrectedResultCollector.testStarted(CorrectedResultCollector.java:28) ~[jmeter-plugins-cmn-jmeter-0.3.jar:?]
at org.apache.jmeter.engine.StandardJMeterEngine.notifyTestListenersOfStart(StandardJMeterEngine.java:206) ~[ApacheJMeter_core.jar:5.2]
at org.apache.jmeter.engine.StandardJMeterEngine.run(StandardJMeterEngine.java:381) ~[ApacheJMeter_core.jar:5.2]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_221]