jmeter监控性能的异常处理

安装性能监控插件(jmeter-plugins)后报如下错误,是由于jmeter版本高于jmeter3.1

如果你使用插件Extra1.4和Standard1.4  那么会遇到高版本method兼容问题,比如版本大于3.1就会在jmeter.log抛出异常:

java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter

解决办法有2种:

1. 第一种使用jmeter3.1搭配jmeter的插件Extras1.4.0和Standard -plugin1.4.0的只支持jmeter3.2以下,不包括3.2!!!

 2. 第二种解决办法使用jmeter-plugin-manager:(推荐,毕竟高版本修复了很多问题,此方法安装的jp@gc -PerfMon Metrics Collector插件监控支持到jmeter5.1以及最新版本):

使用jmeter-plugin-manager,安装PerfMon-2.1version解决了以上方法以高版本监控插件不兼容问题

先在Avaliable Plugins搜索Per,然后勾选,再ApplyChanges and Restart jmeter ,此外你还要在被压测服务器安装ServerAgent-2.2.1 ,并启动它,同时注意防火墙必须开放端口4444

systemctl start firewalld

firewall-cmd --zone=public --add-port=4444/tcp --permanent 

firewall-cmd --reload

firewall-cmd --zone=public --list-ports

安装好perfmon后需要从/ lib目录中删除jmeter-plugins-cmn-jmeter-0.3.jar,并替换它使用jmeter-plugins-cmn-jmeter-0.4.jar(可从Maven Central获得) 

//Jmeter all release version of history
https://archive.apache.org/dist/jmeter/binaries/

Jmeter3.1.zip
https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-3.1.zip

Jmeter 5.1zip
https://archive.apache.org/dist/jmeter/binaries/apache-jmeter-5.1.zip

 

方法一你需要的插件准备

https://jmeter-plugins.org/downloads/file/JMeterPlugins-Extras-1.3.1.zip

https://jmeter-plugins.org/downloads/file/JMeterPlugins-Standard-1.3.1.zip

并且把  JMeterPlugins-Extras.jar 和 JMeterPlugins-Standard.jar复制到Jmeter\lib\ext 目录下,如果你还有其它需要下载的插件可以通过插件市场地址:https://jmeter-plugins.org/downloads/old/,当然我推荐你使用

3 .  ServerAgent-2.2.1

ServerAgent-2.2.1下载地址 https://github.com/undera/perfmon-agent

 

2.Jmeter主服务器

启动jmeter,在监听器的选项中增加了一些jp@gc开头的监听器,监控cpu、内存、i/o的监听是jp@gc -PerfMon Metrics Collector,host/ip下填写被压测服务器的ip

 

serverAgent.zip下载地址:

https://github.com/undera/perfmon-agent

 

三.agentserver启动:

Add Row可以添加需要监控的服务器ip,端口号默认为4444,监控内容CPU/MEMORY/DISKS I/O等

3.agent服务器

将ServerAgent-2.2.1.zip解压后放在需要监控的服务器上,并开启

startAgent.bat(windows)

startAgent.sh(linux)

linux服务器上首先将startAgent.sh设定为可执行文件:

chmod 777 startAgent.sh

./startAgent.sh执行文件

如果要将该文件设置为后台执行不关闭

Nohup ./startAgent.sh &

Add Row可以添加需要监控的服务器ip,端口号默认为4444,监控内容CPU/MEMORY/DISKS I/O等

 

四.结果查看

在服务器上开启startAgent服务后,再在jmeter上运行脚本,可以在jp@gc - PerfMon Metrics Collector上查看监控的图形结果

 

注意事项:默认端口占用以及修改:

执行时监控cpu的插件可能会报错:java.io.IOException: Agent is unreachable via TCP

windows环境下解决方法:

serveragent的默认端口为4444,使用jmeter监听器时,有时即使开启了agent服务也会无法监听,这时候可能是端口被占用了,需要修改端口,那么该如何做呢?

1、cmd命令进入ServerAgent的根目录;

2、在cmd中输入: java -jar ./CMDRunner.jar --tool PerfMonAgent --udp-port 5555 --tcp-port 5555

五、jmeter压测报错:Non HTTP response code: java.net.ConnectExceptionexception的解决办法:

1、首先:将jmeter.properties中的httpclienc.timeout调大去尝试:

 

2、将client implementation配置成java:

 六、jmeter压测事务数异常较高解决方案:

这是windows 本身提供的端口访问机制的问题。Windows 提供给 TCP/IP 链接的端口为 1024-5000,并且要四分钟来循环回收他们。就导致我们在短时间内跑大量的请求时将端口占满了。
解决办法:
  用 regedit 命令打开注册表,在 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 下,
  右击 parameters,添加一个新的 DWORD,名字为 MaxUserPort,然后双击 MaxUserPort,输入数值数据为 65534(十进制),基数选择十进制,再新建一个:TCPTimedWaitDelay:30(十进制)。
  如果是分布式运行的话,控制机器和负载机器都需要这样操作,修改配置完毕之后记得重启机器才会生效。

 

 

 

posted @ 2020-11-01 13:56  anlcy  阅读(1403)  评论(0编辑  收藏  举报