JVM优化之VisualVM


前言

在上一期主要讲到JVM优化的概念及经验。这一节章节去讲述相关工具的基本使用。

VisualVM

JDK自带,VisualVM 是一款免费的,集成了多个 JDK 命令行工具的可视化工具,它能为您提供强大的分析能力,对 Java 应用程序做性能分析和调优。这些功能包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和 CPU 分析,同时它还支持在 MBeans 上进行浏览和操作。

Tomcat Jmx配置

/bin/catalina.sh

1

CATALINA_OPTS=$CATALINA_OPTS-Djava.rmi.server.hostname=jj.xx.yy.zz-Dcom.sun.management.jmxremote-Dcom.sun.management.jmxremote.port=12345-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote.authenticate=true

·替换其中的IP jj.xx.yy.zz 地址

·配置{jdk_path}/jre/lib/management/jmxremote.password

直接复制jmxremote.password.template, 修改默认访问密码

·设置访问属性

1

2

chmod+wjmxremote.password

chmod0400jmxremote.password

概述页面

主要信息

·主机及端口

·jvm参数信息

监视界面

主要信息

·cpu指标

如cpu是多核,如果是n核,这里显示的单核平均占用 在通过top命令,看到的是 乘上n的结果,VisualVM显示10.2/4(核数) =2.5%

·类加载数量

·堆及PerGen的大小

·类加载数量

·线程数

操作

·执行垃圾回收

·堆Dump

线程界面

主要信息

·实时及守护线程数

·线程状态 运行,休眠, 等待, 驻留, 监视

抽样器界面

CPU监控

·哪些方法是热点方法

·各个方法占用CPU时间及其比例

内存监控

每个线程分配内存

VisualVM常用插件

安装插件

工具-插件

检查新版本

需要配置url,不然会报以下出错

在插件-设置页面填入合适的

visualvm.github.io/pluginscent…在这个网站选择合适的插件地址

填入URL地址,确定

配置成功后,在可用插件列表

常用插件

·Visual GC

·Jstatd

·Threads Inspector

·Tracer-Jvmstate , Collection, Jvm Probes

重要插件

VIsual GC

查看服务GC状态,需要配置jstatd并启动

cd/usr/local/src/jdk1.8.0_131/bin/

vimjstatd.all.policy

加入以下代码

grantcodebasefile:${java.home}/../lib/tools.jar

{permissionjava.security.AllPermission;};

如果没有配置{java.home},填写jdk的绝对路径也可行

在jdk.home/bin下启动

./jstatd-J-Djava.security.policy=jstatd.all.policy-J-Djava.rmi.server.hostname=ip.xx.yy.zz-J-Djava.rmi.server.logCalls=true

更改以上Ip ip.xx.yy.zz地址 指定服务的端口号,使用默认端口1099。确认1099没有防火墙拦截

选择目标机器,右键 ,添加jstated连接

VisualGC界面

注意点:

·内存大小分情况

·主要关注 GC Time长短及间隔

Tracer

可以查询Heap,PerGen,Classes, Threads的

如图

Tracer可以监控很多项目

·Heap

·PerGen

·Cleass

·Treads

·等等

利用VisualVm检查full GC

1.VisualGC查看是否old Gen,Eden是否存在持续上升

2.Mbean查看

3.利用sampler的分析内存采集,确定问题代码

内存视图,查看当前哪些业务对象比较多,并存在一直递增的趋势

线程视图,查看哪些线程分配的内存最多

IntelliJ Idea集成VisualVm

1.File -Setting-Plugins-Browsers Repositrories

2.搜索VisualVM Launcher

3.安装, 重启Idea

4.默认Run及Debug旁边,会出现Run With VisulaVm及DebugWith VisulaVm的按钮

方便本地压测监控JVM情况

总结

本节主要讲解VisualVm的使用以及常用插件的使用,好的工具对于找到问题有事半功倍的效果。在实践中理解理论知识。


转载于:https://juejin.im/post/5b8f8e3de51d450e4967a29f

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值