JMeter分散式壓測/JMeter負載新增/jmeter負載均衡/jmeter Windows系統壓測負載新增
JMeter分散式壓測/JMeter負載新增/jmeter負載均衡/jmeter Windows系統壓測負載新增
測試軟體:jmeter5.2.1
適用環境:Windows
一.jmeter分散式壓測原理:
使用Master-Slave模式,用master機控制多臺slave負載機,向被測伺服器傳送請求,從而能夠支援需要高數量級併發。
注意事項:
- 01、master和slave可以使用windows和linux,可以都使用Linux
02、master和slave要在相同區域網路(IP段相同,相互可以ping通)
03、要關閉本地防火牆和相關的防毒軟體(或其他攔截性軟體)
二.環境準備
01、在本機及負載機均正常安裝jmeter(安裝步驟自行百度)
安裝jdk請參考: https://blog.51cto.com/11009785/2376310
安裝JMeter參考:https://blog.51cto.com/11009785/2388386
02、安裝負載機(Slaves)步驟(Windows系統)
操作物件:
Slaves機器
1.修改slave機器jmeter.properties檔案屬性:
-server_port=8989(自定義埠號,避免被佔用)
-server.rmi.localport=8989(跟上面設定的埠號一致)
-server.rmi.ssl.disable=true
2.修改jmeter-server(見圖):
-RMI_HOST_DEF=-Djava.rmi.server.hostname=192.168.0.106(繫結slave本機ip)
啟動slave機上jmeter bin目錄下的jmeter-server(jmeter-server.bat for windows),記住 ip 和 埠號port
操作物件:
Master機器
1.修改master機器jmeter.properties檔案屬性:
-server.rmi.ssl.disable=true
-remote_hosts=192.168.0.106:1234(與slave上配置的ip、port對應)
備註:若有多個slave,使用英文逗號分隔多個ip、port,如remote_hosts=ip1:port1,ip2:port2
在master機上,開啟測試指令碼,啟動–>遠端啟動slave機,可以啟動單個slave或全部啟動
end
注意事項:
(1)master統計的結果是所有slave的資料之和
分散式測試總樣本數=執行緒數 x 迴圈次數 x slave負載機數量
(2)若master和slave無法連線,可能是防火牆的問題,要關閉系統防火牆,如何關閉請檢視:
https://blog.51cto.com/11009785/2388623
(3)如果監聽器中沒有返回執行結果,可能是網路有問題,或者引數檔案路徑有問題
可檢視的日誌有:slave機jmeter bin目錄下的jmeter-server.log
可參考的文章有:
https://blog.51cto.com/11009785/2388476
https://blog.51cto.com/11009785/2388615
(4)當指令碼有依賴檔案時,必須要拷貝到slave機相同目錄下(建議jmeter bin目錄,避免出錯)
(5)使用檢視結果樹檢視時,會發現只有請求,沒有響應的情況,如下圖,是正常的
如有必要,可以設定斷言,這樣即使看不到響應,也能知道請求成功或失敗
更多問題參考:
沒問題以下不用看:
參考文章:https://blog.csdn.net/dev666/article/details/79776450
安裝常見問題
1、問題
[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint::39308,objID:[24e78a63:16243c70661:-7fff, 7492480871343944173]]]
Server failed to start: java.rmi.RemoteException: Cannot start. Unable to get local host IP address.; nested exception is:
java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known
An error occurred: Cannot start. Unable to get local host IP address.; nested exception is:
java.net.UnknownHostException: iZwz95j86y235aroi85ht0Z: iZwz95j86y235aroi85ht0Z: Name or service not known
解決:
hostname 命令獲取機器名稱,追加一個對映 iZwz95j86y235aroi85ht0Z
vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
120.79.160.143 iZwz95j86y235aroi85ht0Z
windows使用者 修改c:\windows\system32\drivers\etc\hosts檔案,增加一條域名 與IP的對映
2、問題
[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server
Server failed to start: java.rmi.server.ExportException: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
An error occurred: Listen failed on port: 0; nested exception is:
java.io.FileNotFoundException: rmi_keystore.jks (No such file or directory)
解決:
擁有RMI over SSL的有效金鑰庫,或者禁用了SSL。
1、禁用SSL
jmeter.property裡面 server.rmi.ssl.disable 改為 true,表示禁用
3、問題:
[root@iZ949uw2xehZ bin]# ./jmeter
Java HotSpot™ 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error=‘Cannot allocate memory’ (errno=12)
There is insufficient memory for the Java Runtime Environment to continue.
Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
An error report file with more information is saved as:
/usr/local/jmeter/apache-jmeter-4.0/bin/hs_err_pid5855.log
解決:
編輯jmeter
搜尋 : “${HEAP:=”-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"}"
改變初始堆記憶體和最大堆記憶體
4、僅修改 server_port 即可,下面兩者一樣
server.rmi.localport=8899 表示slave server啟動顯示的埠
server_port=8899 表示master機器要遠端連線的埠 即 remote_hosts=xxxx:8899
5、
我們要在多網路卡的伺服器上開啟RMI服務的話必須指定IP,使他們能夠在同一個網段內。
需要以下幾步(假定所有機器都在10.120.11.*網段,agent伺服器為linux,controller伺服器為windows):
1、 修改agent伺服器,指定agent機器的IP
修改jmeter-server檔案
vi jmeter-server
修改RMI_HOST_DEF=-Djava.rmi.server.hostname=xxx.xxx.xxx.xxx(需要連線的IP)
2、修改server伺服器,指定server機器的IP
修改jmeter.bat檔案
新增set rmi_host=-Djava.rmi.server.hostname=10.120.11.214
修改set ARGS=%DUMP% %HEAP% %NEW% %SURVIVOR% %TENURING% %PERM% %DDRAW% %rmi_host%
6、確定在controller機器上安裝jdk,版本和jmeter一致,配置環境變數:Java_home等
在Agent機器上安裝jdk,配置環境變數:Java_home和JMeter_home
安裝目錄不要帶空格,最好都是簡短的英文路徑
7、master機器啟動後會拷貝jmx檔案到slave機器,所以不需要在每臺slave機器上也上傳一份jmx,只需要在master機器上上傳一份jmx指令碼即可。
如果使用csv進行引數化,則需要把引數檔案在每臺slave上拷一份且路徑需要設定成一樣的。
總樣本數 = 執行緒數 * 迴圈次數 * 執行機總數
8、連線失敗原因排查
以下步驟進行排查:
- jmeter-server是否啟動;
- 是否聯網
- ping 伺服器IP是否暢通.
- telnet 埠 192.168.3.10 1099
- 檢查伺服器的防火牆是否關閉。
- 阿里雲安全策略是否正常
9、“could not find ApacheJmeter_core.jar”
解決:在Agent機器安裝jdk,並設定環境變數
10、”Bad call to remote host"
解決:檢查被控制機器上的jmeter-server有沒有啟動,或者remote_hosts的配置是否正確。
相關文章
- jmeter 負載壓測JMeter負載
- jmeter壓力測試實現負載均衡JMeter負載
- 使用JMeter進行負載測試快速入門JMeter負載
- 分散式Jmeter壓測機的部署分散式JMeter
- jmeter分散式壓測(Linux版本)JMeter分散式Linux
- Linux系統下jmeter 分散式壓測環境部署LinuxJMeter分散式
- 效能測試工具 jmeter 原始碼剖析:jmeter 分散式壓測啟動過程JMeter原始碼分散式
- Jmeter-壓測工具JMeter
- jmeter 壓測問題JMeter
- Jmeter系列(39)- Jmeter 分散式測試JMeter分散式
- jmeter之——jms壓測(activemq)JMeterMQ
- 求大佬解惑 jmeter 壓測JMeter
- jmeter做分散式壓測時的注意事項JMeter分散式
- Jmeter分散式測試JMeter分散式
- 使用 jMeter 對需要 User Authentication 的 Restful API 進行併發負載測試JMeterRESTAPI負載
- Jmeter效能測試 —— 壓力模式JMeter模式
- JMeter-壓測問題分析JMeter
- 分散式壓測jmeter部署 主機win slave linux分散式JMeterLinux
- jmeter 分散式壓測,以及 使用的一些技巧JMeter分散式
- Jmeter 壓測實戰:Jmeter 二次開發之自定義函式JMeter函式
- 求助,jmeter 壓測 ,業務場景測試JMeter
- 『動善時』JMeter基礎 — 58、JMeter分散式測試JMeter分散式
- 4.10 負載均衡分散式負載分散式
- jmeter 壓測簽名演算法JMeter演算法
- jmeter壓力測試報告 - DEMOJMeter測試報告
- (一)效能測試(壓力測試、負載測試)負載
- TestLoadBalancer測試均衡負載負載
- 負載均衡探測器lbd負載
- Jmeter下載安裝配置---測試小白JMeter
- 效能壓力測試JMeter替代:LoadjitsuJMeter
- JMeter使用jar進行壓力測試JMeterJAR
- jmeter 對 clickhouse 進行壓測的配置JMeter
- 負載均衡負載
- JMeter中分散式測試時,本地無法承載時如何操作?JMeter分散式
- Windows平臺分散式架構實踐 - 負載均衡(轉載)Windows分散式架構負載
- Locust 進行分散式負載測試分散式負載
- Jmeter系列(43)- 詳解 Jmeter 圖形化 HTML 壓測報告之 Charts 模組JMeterHTML
- gRPC負載均衡(客戶端負載均衡)RPC負載客戶端