Jprofiler是我知道的目前最牛逼的一个JVM性能监控工具。
有些问题还是使用jdk提供命令工具方便,得要根据具体情况选择合适的工具。
上图是我此次用来查找慢Sql的截图。
Jprofiler的本地GUI工具安装
使用Jprofiler需要先安装本地GUI工具,如何安装Jprofiler网上有很多教程。
远程服务器的下载安装
需要特别注意的一点是,本地安装的Jprofiler图形界面工具一定要与远程服务器安装的版本号一致。否则远程连接就连接不了。
我就遇到这个坑,本地装的9.2,远程装了9.1,结果还试了半天,在Linux上换个9.2的版本就行了。服务器Jprofiler版本去官网下载,本地去网上找个破解版。
先安装本地,因为本地需要找破解版。官网下载页面如下。
注意选择版本号。
Linux服务器选择Linux版本,获取下载链接使用wget下载,或者先下载到本地再用ssh上传到服务器。
下载完成后使用RPM安装。如rpm -ivh jprofiler_linux_9_2_1.rpm。也可以下载gz压缩包,直接解压缩就行,怎么方便怎么来。
如果你的Jdk不是使用yum命令安装的,那么你需要自己配置jdk环境变量,这步我觉得是废话。
使用Jpenable配置远程监控
在jprofiler的安装目录下,进入bin目录有个jpenable工具,运行它,然后选择你需要监控的java进程,如果当前只有一个java进程,默认会选择这个进程,有多个java进程才会让你自己选择。
接着选择profiling模式,输入1选择GUI,按回车。最后输入一个端口号,该端口号是用于你本地Jprofiler与远程jprofiler进程通信的端口。如果是阿里云或者亚马逊的服务器,记得给端口配置安全组规则。如果有开启防火墙记得开放该端口。具体步骤如图所示。
本地监控远程
按照步骤走。第一步创建一个会话,就是本地与远程jprofiler的连接,通过建立连接,读取远程jprofiler监控目标java进程的信息。选择new remote integration。
第二步,选择本地还是远程。选择远程机器,然后选择服务器的系统和cpu架构。一般服务器都是x86或者amd的cpu。
第三步,配置远程服务器使用的是哪个版本的jdk。
第四步,选择先配置,后面再连接。
第五步,配置远程服务器的ip地址
第六步,配置远程机器jprofiler的安装目录
第七步:
第八步,输入远程机器jprofiler监听的端口,前面jpenable后配置的那个端口号。
接着Finish就配置好了。
连接失败情况
1.远程机器上执行./jpenable时,提示No unprofiles JVMs found?
分析:该Java进程已经开启过监控了,需要将目标java进程kill掉然后重启。
2.怎么关闭Jprofiler的远程监控?
只有一种方式,就是重启被监控的java进程,Jprofiler就会失效。重新监控需要重启java进程后重新执行jpenable。