你笑的时候全世界陪你一起笑,你哭的时候只有你一个人哭

JMeter JMXMon插件监控JVM

上一篇 / 下一篇  2016-12-27 15:02:49 / 个人分类:性能测试

JMeter JMXMon插件监控JVM

杨明华

一、 添加JMXMon插件

1.下载JMXMon插件

访问网址:http://www.jmeter-plugins.org/

方法一:下载jmeter-plugins-manager-0.11.jar(目前版本为0.11),放到jmeter/lib/ext目录下,重启启动jmeter后可以在Options->Plugins ManagerAvailab Plugins中勾选下载JMXMon Sample Collector

 

方法二:点击Documentation->JMXMon Sample Collector,点击Download下载JMXMonjar包,放到jmeterlib/ext文件夹下:

二、 配置JVM监控

1.配置JVM监控参数

在被测Java应用上增加Java参数:-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=1099

一般Java参数在/etc/profile中间中定义,如:

因此只需将上面开启jmx监控的参数添加在这里即可,保存后执行source /etc/profile以即时生效,重启待测Java程序后执行netstat -antp|grep 1099,可以看到端口已经开放(本截图中1099端口已经连接),且就是待测Java程序启动的:

2.添加JMXMon监控

jmeter里添加listener->jp@gc – JMXMon Samples Collector,点击“Add Row”按钮可以添加JVM的监控:

 

 

l Label:填写监控图表里的曲线名称。

l URL:填写被测JVMJMX连接地址,一般格式为service:jmx:rmi:///jndi/rmi://YOURHOST:6969/jmxrmi或者service:jmx:rmi://YOURHOST:JMXPORT/jndi/rmi://YOURHOST:JMXPORT/jmxrmi

l Object Name:填写监控的具体对象名称。

l Attribute:填写监控的具体属性。

l Key:如果是复杂类型的属性,还需要填写Key

l Delta:未找到解释,需要查看JMXMon源码。

l Retry测试过程中连接断开后是否重连。

Object Name等参数的填写需要结合jconsole来确定,举例来说:

jmeter监控服务器10.104.90.204上的一个tomcat上运行的程序,URL中填写:service:jmx:rmi:///jndi/rmi://10.104.90.204:1099/jmxrmi

如果希望监控JVM Heap大小,则启动jconsole连接到这个tomcat上:

切换到MBean页签,展开java.lang,选中Memory,将右侧的ObjectName填写到JMXMonObject Name中:

 

选中下面的“属性”,右侧包括需要监控的HeapMemoryUsage属性,HeapMemoryUsage填写到JMXMonAttribute中:

 

HeapMemoryUsage属于复杂类型的属性,因此它的值不是一个数值,双击它的值可以展开显示,used填到JMXMonKey中:

 

JMXMon添加的监控如下:

 

一般常用的监控如下:

Lable: HeapMemoryUsage-Used

Object Name: java.lang:type=Memory

Attribute: HeapMemoryUsage

Key: used

 

Lable: NonHeapMemoryUsage-Used

Object Name: java.lang:type=Memory

Attribute: NonHeapMemoryUsage

Key: used

 

Lable: CMS Old Gen-Usage

Object Name: java.lang:type=MemoryPool,name=CMS Old Gen

Attribute: Usage

Key: used

 

Lable: CMS Perm Gen-Usage

Object Name: java.lang:type=MemoryPool,name=CMS Perm Gen

Attribute: Usage

Key: used

 

Lable: Par Eden Space-Usage

Object Name: java.lang:type=MemoryPool,name=Par Eden Space

Attribute: Usage

Key: used

 

Lable: Par Survivor Space-Usage

Object Name: java.lang:type=MemoryPool,name=Par Survivor Space

Attribute: Usage

Key: used

 

Lable: ConcurrentMarkSweep-CollectionCount

Object Name: java.lang:type=GarbageCollector,name=ConcurrentMarkSweep

Attribute: CollectionCount

 

Lable: ParNew-CollectionCount

Object Name: java.lang:type=java.lang:type=GarbageCollector,name=ParNew

Attribute: CollectionCount

 

Lable: Threading-ThreadCount

Object Name: jjava.lang:type=Threading

Attribute: ThreadCount

 

 

3.执行JMXMon监控

GUI下执行测试场景后JMXMon里添加的jmx监控指标就会实时显示:

如果在non-GUI模式下需要在JMXMon插件中指定保存结果文件,不能通过-l参数生成结果文件,-l生成的结果文件中不包含插件里添加的采集结果。结果保存的文件名可以做参数化,例如:JMXMon_test_${__time(yyyy-MM-dd HH:mm,)}.jtl,可根据测试执行的年月日时分自动生成结果文件。


TAG: 监控

引用 删除 @zzz   /   2017-09-27 18:04:23
我按照你的配置,报错如下:
ERROR - kg.apc.jmeter.jmxmon.JMXMonSampler: The client has been closed.
引用 删除 dillyweiwei   /   2017-04-06 11:20:51
非常感谢,对我很有用
引用 删除 dillyweiwei   /   2017-04-06 11:20:11
5
 

评分:0

我来说两句

Open Toolbar