前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Play运维技巧 - 使用JMX开启远程性能监控

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

作者头像
joymufeng
发布2018-05-17 15:43:08
1.6K0
发布2018-05-17 15:43:08
举报
文章被收录于专栏:Play & Scala 技术分享

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

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

代码语言:javascript
复制
com.sun.management.jmxremote.authenticate=false

示例:

代码语言:javascript
复制
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默认采用密码认证方式,用户列表和访问权限定义在如下两个文件中:

代码语言:javascript
复制
JRE_HOME/lib/management/jmxremote.password
JRE_HOME/lib/management/jmxremote.access

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

代码语言:javascript
复制
cp JRE_HOME/lib/management/jmxremote.password.template JRE_HOME/lib/management/jmxremote.password

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

代码语言:javascript
复制
monitorRole  123456
controlRole  123456

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

代码语言:javascript
复制
monitorRole   readonly
controlRole   readwrite

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

代码语言:javascript
复制
chmod 600 jmxremote.password
chmod 600 jmxremote.access

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

代码语言:javascript
复制
 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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 为什么需要性能监控?
  • 2. 什么是JMX?
  • 3. 如何开启JMX?
  • 3.1 在开发模式下开启JMX
  • 3.2 在生产模式下开启JMX
  • 4. 连接JMX开始监控
  • 5. 参考文献
相关产品与服务
SSL 证书
腾讯云 SSL 证书(SSL Certificates)为您提供 SSL 证书的申请、管理、部署等服务,为您提供一站式 HTTPS 解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档