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

 3、配置jp@gc - PerfMon Metrics Collector

 注意:文件名一定要單獨寫個文件來保存監控的數據,否則在圖表中無數據展示

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上查看監控的資源圖形結果

  

7、在聚合報告中查看整體情況

  

 8、在 jp@gc - Response Times Over Time中查看時間響應走勢

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

 

 警告:

 若出現以下錯誤,請查看版本是否兼容

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]

可參考 https://www.cnblogs.com/SunshineKimi/p/11361216.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM