Linux系統搭建jmeter運行環境及啟動jmeter-server遇到的錯誤解決(性能八)


原文鏈接:https://www.cnblogs.com/xiaochao-testing/articles/10169244.html

 

在Linux系統下安裝jdk步驟:

1.下載一個linux可用的jdk包

官網:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

 

鏈接:https://pan.baidu.com/s/11Jcun2HJaZs08k7kpF7KRw
提取碼:m4i5
2.然后給他賦予權限

具體步驟如下:

1.在/usr/local目錄下面mkdir新建一個文件夾用來存放jdk文件
具體命令如下:
    cd /usr/local
    madir java_jdk
2.將jdk文件存到該目錄下
3.rpm -ivh jdk-8u77-linux-x64.rpm安裝jdk
(默認安裝到/usr/java目錄下
4.cd切換到跟目錄下
5.vi .bash_profile進入配置環境變量這個目錄下
加入(有重復的字段可以忽略):
LANGUAGE=CN
export Language
PATH=$PATH:$HOME/bin
JAVA_HOME=/usr/java/jdk1.8.0_92
export JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH

 

 
6.按下Esc,輸入命令:wq保存並退出
7.在根目錄下輸入命令java -version可查看安裝的jkd版本號就成功了。

【jdk環境配置成功】

二、配置jmeter的環境。

1.unzip apache-jmeter-4.0.zip或者tar -zxvf apache-jmeter-4.0.tar解壓JMeter

2.配置環境變量:vi /etc/profile輸入:

export PATH=/usr/JMeter/apache-jmeter-4.0/apache-jmeter-4.0/bin/:$PATH

3.保存,退出。

4.注銷當前用戶:logout

5.重新登陸linux

6.檢查jmeter是否可以運行:jmeter -v

【使用jmeter進行測試】

1.將.jmx移動到root目錄下

mv XXX.jmx/root

2.執行:jmeter -n -t XXX.jmx -l log.jtl

3.查看jtl日志:cat log.jtl

 

 【啟動jmeter-server遇到的錯誤】

解決方法:(指定本地IP)

./jmeter-server -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx

 

 

 

 

安裝常見問題
1、問題
[root@iZwz95j86y235aroi85ht0Z bin]# ./jmeter-server
Created remote object: UnicastServerRef2 [liveRef: [endpoint:[:39308](local),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(TM) 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、
<!-- jmeter 分布式性能測試(多網卡配置) -->
我們要在多網卡的服務器上開啟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、連接失敗原因排查
以下步驟進行排查:
1. jmeter-server是否啟動;
2. 是否聯網
3. ping 服務器IP是否暢通.
4. telnet 端口 192.168.3.10 1099
5. 檢查服務器的防火牆是否關閉。
6. 阿里雲安全策略是否正常

9、"could not find ApacheJmeter_core.jar"
解決:在Agent機器安裝jdk,並設置環境變量

10、”Bad call to remote host"
解決:檢查被控制機器上的jmeter-server有沒有啟動,或者remote_hosts的配置是否正確。

 

 

 

 

 

 


免責聲明!

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



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