Play运维技巧 - 使用JMX开启远程性能监控

1. 为什么需要性能监控?

      有时我们会发现Java程序在运行一段时间之后速度会变慢,导致变慢的原因有很多,比如数据库延迟太高,线程死锁,频繁的Full GC等等。通常遇到这种情况时,我们可以通过top或htop命令查看Java进程的CPU和内存的占用情况,但是无法准确的找出系统变慢的原因。这时我们就需要一种方式可以实时的查看Java虚拟机的运行情况,进而发现系统变慢的原因。本文将介绍如何通过JMX进行Java性能的远程监视。

2. 什么是JMX?

      JMX(Java Management Extensions)是在Java5中提出的一个Java系统管理和监控的标准,目前最新的版本是1.4,发布于2006年11月9日。JMX的目标是为开发者提供一个框架,基于该框架可以很容易地开发一套功能强大的Java虚拟机管理系统。

3. 如何开启JMX?

      为了保证系统的安全性,JMX提供了两种认证方式,一种是基于密码的认证,另一种是基于SSL证书的认证。在开发环境下,可以暂时关闭认证,在生产环境下,可以根据需要选择密码方式或是SSL证书方式。

3.1 在开发模式下开启JMX

      开发模式下要追求快速、高效,可以通过设置如下参数暂时关闭认证:

com.sun.management.jmxremote.authenticate=false

示例:

nohup ./play-app -J-Xmx1g -Dcom.sun.management.jmxremote.port=9900 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=HOST_NAME > ../log.txt&

其中9900是JMX监听端口,请HOST_NAME替换成运行Play应用的服务器主机名或IP地址。

3.2 在生产模式下开启JMX

      生产模式下更加注重安全性,如无参数指定,JMX默认采用密码认证方式,用户列表和访问权限定义在如下两个文件中:

JRE_HOME/lib/management/jmxremote.password
JRE_HOME/lib/management/jmxremote.access

如果jmxremote.password文件不存在,则从模板文件拷贝一份:

cp JRE_HOME/lib/management/jmxremote.password.template JRE_HOME/lib/management/jmxremote.password

编辑jmxremote.password文件,内容如下:

monitorRole  123456
controlRole  123456

编辑jmxremote.access文件,内容如下:

monitorRole   readonly
controlRole   readwrite

修改这两个文件的访问权限,否则启动时会报错:

chmod 600 jmxremote.password
chmod 600 jmxremote.access

OK,准备工作做完了,使用下面命令启动Play应用:

 nohup ./play-app -J-Xmx1g -Dcom.sun.management.jmxremote.port=9900 -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=HOST_NAME > ../log.txt&

4. 连接JMX开始监控

    JDK内置了两个JMX客户端工具,分别是jconsole和jvisualvm,位于JDK的bin目录下。连接时请勾选“不要求SSL连接”,下面是jvisualvm连接成功后的截图:

5. 参考文献

Monitoring and Management Using JMX Technology

转载于:https://my.oschina.net/joymufeng/blog/681130

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值