1.簡介
JMeter是一款壓力、介面等等的測試工具,Jmeter也可以像loadrunner一樣監控伺服器CPU、記憶體等效能引數,用來監控伺服器資源使用情況,不過需要安裝一些外掛。JMeter正常自帶可以通過Tomcat的/manager/status來監控服務資源使用情況。這種情況只能監控Tomcat支援的資源使用部分。
通過本文巨集哥主要來說一下如何通過JMeter外掛來監控伺服器CPU、記憶體(Memory)、磁碟(DisKs I/O)、網路(NetWork I/O)等相關資源。
2.下載Jmeter外掛
既然監控需要一些外掛,那麼巨集哥就將準備工作做好了,下載安裝需要的外掛。
JMeter 外掛網址:https://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伺服器監控全家桶相關軟體和外掛。