Java VisualVM使用简单教程

11,270 阅读1分钟

      开发大型Java项目时,我们难免会遇到内存泄漏、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。如果不作出处理,随着开发的进行,这些会是一个非常严重的隐患。今天介绍一下VisualVM的使用。(具体的检测数据分析在此不做过多阐述,只介绍工具的使用和基础分析) 我将从以下几个方面介绍该工具的使用:

  • 准备工作
  • 插件使用
  • 基础分析

一、准备工作

1. 服务所在的linux环境

[root@localhost ~]# cd /usr/java/jdk1.8.0_162/bin/

[root@localhost bin]# vim jstatd.all.policy

添加如下代码:

grant codebase "file:/usr/java/jdk1.8.0_162/lib/tools.jar" { permission java.security.AllPermission; };

注意

jstatd.all.policy 这个文件名可以自己命名,但是以.policy命名
/usr/java/jdk1.8.0_162/bin/ 和 /usr/java/jdk1.8.0_162/lib/tools.jar是我的java的路径,请替换成你们自己的路径

2.启动jstard

[root@localhost bin]#./jstatd -J-Djava.security.policy=jstatd.all.policy-J-Djava.rmi.server.hostname=192.168.134.128 -p 3333 -J-Djava.rmi.server.logCalls=true

注意

hostname=192.168.134.128 请替换成自己的服务IP地址
-p 3333 可以替换成自己设置的端口

3.下载VisualVM

下载地址:visualvm.github.io/

4.运行VisualVM

4.1添加远程服务

特别注意:

  1. 连接不上服务器时,请检查一下jstard 是否启动
  2. 连接不上服务器时,请检查防火墙是否屏蔽了该端口

二、插件使用

1.设置插件资源链接

我当前使用的VisualVM是1.4.1版本,所以这里使用的插件资源链接是:visualvm.github.io/uc/release1…
根据自己使用的版本自行添加:visualvm.github.io/pluginscent…

2.示例

  • Visual GC是我添加的插件

三、基础分析

图片中我们看到的,Heap、Metaspace、Classes、Threads,分别是堆、元空间(jdk1.8之后)、类加载、线程