博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Play运维技巧 - 使用JMX开启远程性能监控
阅读量:6375 次
发布时间:2019-06-23

本文共 1684 字,大约阅读时间需要 5 分钟。

hot3.png

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.passwordJRE_HOME/lib/management/jmxremote.access

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

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

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

monitorRole  123456controlRole  123456

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

monitorRole   readonlycontrolRole   readwrite

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

chmod 600 jmxremote.passwordchmod 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. 参考文献

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

你可能感兴趣的文章
白话Java I/O模型
查看>>
[TsAdmin]--一款基于Vue.js+Element UI的单页无刷新(无iframe)多选项卡的后台管理系统模板...
查看>>
排列组合技术
查看>>
哈工大发明“电子体毛”,让机器人学会“敏感”
查看>>
上传一张照片,让算法告诉你是否患有抑郁症
查看>>
VR厂商唯晶科技获2800万C+轮融资,曾开发过游戏《圣女之歌》
查看>>
Countly 19.02.1 发布,实时移动和 web 分析报告平台
查看>>
TCP连接中time_wait在开发中的影响-搜人以鱼不如授之以渔
查看>>
Oracle数据库机出新帮助不同规模企业迈向云端
查看>>
前端通信:ajax设计方案(六)--- 全局配置、请求格式拓展和优化、请求二进制类型、浏览器错误搜集以及npm打包发布...
查看>>
Android捕获监听Home键、最近任务列表键
查看>>
微服务分布式企业框架 Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa
查看>>
word2vec原理(三) 基于Negative Sampling的模型
查看>>
被《时代周刊》选为年度最佳发明,PS VR靠的竟然是价格
查看>>
通用唯一标识码UUID的介绍及使用。
查看>>
spring笔记--依赖注入之针对不同类型变量的几种注入方式
查看>>
Java爬虫——网易云热评爬取
查看>>
Ajax的简单学习
查看>>
无华为,不智慧:智慧城市建设为何少不了华为?
查看>>
高性能网络通信框架Netty-基础概念篇
查看>>