Jmeter(四十八) – 從入門到精通高級篇 – Jmeter監控服務器性能(詳解教程)

1.簡介

JMeter是一款壓力、接口等等的測試工具,Jmeter也可以像loadrunner一樣監控服務器CPU、內存等性能參數,用來監控服務器資源使用情況,不過需要安裝一些插件。JMeter正常自帶可以通過Tomcat的/manager/status來監控服務資源使用情況。這種情況只能監控Tomcat支持的資源使用部分。
通過本文宏哥主要來說一下如何通過JMeter插件來監控服務器CPU、內存(Memory)、磁盤(DisKs I/O)、網絡(NetWork I/O)等相關資源。

2.下載Jmeter插件

既然監控需要一些插件,那麼宏哥就將準備工作做好了,下載安裝需要的插件。
JMeter 插件網址://jmeter-plugins.org/downloads/old/

其中JMeterPlugins-Standard和JMeterPlugins-Extras是客戶端的(Jmeter插件),ServerAgent是服務端的(放在服務器中的)。

3.解壓並安裝

1、解壓客戶端的兩個文件,進入其路徑JMeterPlugins-Extras(Standard)-1.3.1\lib\ext,複製JmeterPlugins-Extras.jar(JmeterPlugins-Standard.jar)兩個文件,放到你安裝JMeter客戶端的lib/ext文件夾中,打開JMeter,可在監聽器中看到Permon Metrics Collector,客戶端配置成功。如下圖所示:

2、將ServerAgent-2.2.1.jar上傳到被監控的服務器,待用。如下圖所示:

 Windows服務器:

Linux服務器:

4.監控

1、啟動客戶端的Jmeter,然後添加jp@gc – PerfMon Metrics Collector監聽器,並增加你要監控的參數。如下圖所示:

2、解壓剛剛複製到服務器待用的壓縮包,進入目錄,Windows環境,雙擊ServerAgent.bat啟動;linux環境執ServerAgent.sh啟動,默認使用4444端口,出現如下情況即服務端成功。如下圖所示:

 Windows環境:

Linux環境:

3、運行Jmeter-觀察server日誌即chart圖標內容,如下圖所示:

4、ServerAgent端的日誌,如下圖所示:

Windows服務器:

 Linux服務器:

5、從第三步和第四步可以看出接收了一個TCP的鏈接,沒有反應卡住不懂了,宏哥記得以前做的時候不是這個樣子的,後來查看客戶端的Jmeter發現報錯了,如下圖所示:

6、報錯信息:java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/text/DateFormat;)V ,查找資料發現是因為Jmeter的版本太高了,不支持其中一個方法了。jmeter版本太高,setFormatter方法在3.1版本後不支持。但是插件沒有高版本,只能卸載5.1重裝3.1。重裝後成功。再次查看ServerAgent端的日誌,如下圖所示:

INFO    2021-05-28 09:27:46.540 [kg.apc.p] (): Accepting new TCP connection  #成功連接
INFO    2021-05-28 09:27:46.543 [kg.apc.p] (): Yep, we received the 'test' command   #接收到test消息
INFO    2021-05-28 09:27:46.547 [kg.apc.p] (): Starting measures: cpu:
INFO    2021-05-28 09:27:46.801 [kg.apc.p] (): Client disconnected   #斷開連接

7、從上邊的日誌信息可以看出,運行jmeter時,成功連接然後立刻斷開了,並沒有獲取我們想要的數據。猜想需要一個時間控制的元器件,使其能夠獲取一段時間的數據。

i 步驟:添加線程組(不添加發送請求),設置循環次數為永遠,點擊運行。
結果:成功連接然後立刻斷開。全部配置如下圖所示:

ServerAgent端的日誌,如下圖所示:

INFO    2021-05-28 09:37:00.520 [kg.apc.p] (): Accepting new TCP connection
INFO    2021-05-28 09:37:00.521 [kg.apc.p] (): Yep, we received the 'test' command
INFO    2021-05-28 09:37:00.523 [kg.apc.p] (): Starting measures: cpu:
INFO    2021-05-28 09:37:00.653 [kg.apc.p] (): Client disconnected

Jmeter客戶端配置,如下圖所示:

chart圖,如下圖所示:

ii 添加線程組,設置循環次數為”永遠”;為線程組任意添加一個Sampler(並不設置參數);添加一個PerfMon Metrics Collector監聽器;點擊運行。
結果:成功獲取chart圖,點擊stop,即結束監聽數據。全部配置如下圖所示:

ServerAgent端的日誌,如下圖所示:

INFO 2021-05-28 10:02:57.150 [kg.apc.p] (): Accepting new TCP connection
INFO 2021-05-28 10:02:57.152 [kg.apc.p] (): Yep, we received the ‘test’ command
INFO 2021-05-28 10:02:57.154 [kg.apc.p] (): Starting measures: cpu: network i/o: disks i/o:
INFO 2021-05-28 10:03:05.465 [kg.apc.p] (): Client disconnected

Jmeter客戶端配置,如下圖所示:

chart圖,如下圖所示:

5.小結

1、運行 ServerAgent-2.2.1\bin\startAgent.bat(Linux使用startAgent.sh)(默認端口為4444,也可以參數指定 –udp-port 4445 –tcp-port 4445)

2、常用組件簡要介紹:
① 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: 每秒事務數,服務器每秒處理的事務數

  最後為了省去大家查找和下載軟件的時間,小夥伴或者童鞋們微信搜索「北京宏哥」,關注宏哥公眾號,進入公眾號發送「jmeter監控」,獲取Jmeter服務器監控全家桶相關軟件和插件。

Tags: