前言
- 做性能測試,監控服務器資源指標是必須有的一步
- 這一篇博客將講解通過 Jmeter 插件來監控服務器,再通過 Jmeter 觀察監控結果
下載、安裝、運行插件
- JMeterPlugins-Extras.jar
- JMeterPlugins-Standard.jar
- ServerAgent-2.2.3.zip
可以通過官方下載:https://jmeter-plugins.org/downloads/old/
注意
- 前兩個插件最新版本在官網已經不提供下載了,只能下載舊版本,官方建議通過 Plugins Manager 下載需要的插件哦
- 博主安裝了以下插件,已經包含上面講的前兩個插件了

這里也提供百度雲下載鏈接哈
鏈接:https://pan.baidu.com/s/1fbpNJ96nmwWbTWbEcfHbpA
提取碼:vijl
客戶端(Jmeter 端)
- 如果通過官網下載的話,就將 JMeterPlugins-Extras.jar 和 JMeterPlugins-Standard.jar 放到 D:\tools\jmeter\apache-jmeter-5.4.1\lib\ext
- 然后通過 PerfMon Metrics Collector 監聽器進行服務器性能數據顯示

服務端(Linux)
將 ServerAgent-2.2.3.zip 放到任意目錄下,解壓
unzip ServerAgent-2.2.3.zip
進入 ServerAgent 目錄

我提供的 ServerAgent 里面,兩個 start 腳本已經是可執行腳本了,直接運行即可
./startAgent.sh
運行成功,則會出現下圖

如果無法運行,則需要給腳本賦權
chmod 777 startAgent.sh
如果是想監控 Window 機器,則將 ServerAgent 放到 Window 電腦的目錄下,然后直接雙擊運行 startAgent.bat 即可
划重點
- 啟動 ServerAgent 的前提是系統已安裝配置好 Java 環境
- 默認占用端口是 4444
啟動 ServerAgent 可能會出現的問題
端口被占用
殺掉占用 4444 端口的進程

- 先查出 4444 端口是什么進程占用
- 然后查看進程詳情,確認是否能殺掉
- 如果可以,則殺掉、
ServerAgent 通過其他端口啟動
./startAgent.sh --udp-port 0 --tcp-port 1234
0 代表不開啟該端口,一般我們只用 tcp 足以

端口未對外開放
- 如果服務器開啟了防火牆,而且之前沒用過 4444 端口,那么該端口很可能會被禁用
- 為了解決防火牆和開放端口的問題,可以參考這篇博文:https://www.cnblogs.com/poloyy/p/12213297.html
阿里雲 4444 端口不能對外開放
如果是用阿里雲服務器,4444 端口是無法對外開放的,所以要通過其他端口來啟動 ServerAgent
Jmeter 監控服務器全流程
一個簡單的負載測試線程組結構樹

一般做負載測試,會監控服務器資源、活動線程數、響應時間、TPS等等,所以加了一堆監聽器
- 介紹一下:圖中的線程組
-
知識點:自定義類型線程組
-
This group will start:總加載線程數100
Fist,wait for:等待多長時間開始運行,相當於延時多少秒開始執行
Then start:初次加載多少個線程
next add 、threads every、using ramp-up:每過10秒加載10線程,10個線程在5秒加載完成,可以理解為總共花費35秒時間,再多10個線程再跑
then hold load for:所有線程加載完之后,運行60秒
fianlly,stop /threads every :每1秒停止5個線程,20秒則停止100個線程數
PerfMon Metrics Collector

IP 自然就是填需要監控的服務器 IP啦,如果是監控本機就填 127.0.0.1 就好了
可監控的指標列表

還挺多,不過一般重點關注前面四個就好了
運行結果

顯而易見!!!中間山峰起來了????
