系统优化怎么开-JVM优化的VisualVM

大家好,这里是「聊聊系统优化 」,并当下列地点并创新

下微信客户发送好贷广告?

  • 博客园:http://www.cnblogs.com/changsong/
  • 知乎专栏:https://zhuanlan.zhihu.com/youhua 
  • 思否专栏:https://segmentfault.com/blog/youhua
  • 全网私活,免费订阅: http://www.zsihuo.com

客户朋友沟通电话定填两单,过客目标

每当此地我会从基于J2EE系统和互联网架构方面,来讨论系统优化的各个方面,干货满盈,欢迎订阅及体贴!

设想集团客户安全银行迁移合作

前言

在达标同样冀要出口到JVM优化的定义与涉。这无异于省节节去描述相关工具的中心使用。

季只样子,大数额+客户画像,风控,获客,

VisualVM

JDK自带,VisualVM 是平等悠悠免费的,集成了多只 JDK
命令行工具的可视化工具,它会为公提供强有力的分析能力,对 Java
应用程序做性能分析与调优。这些作用包括生成和分析海量数据、跟踪内存泄漏、监控垃圾回收器、执行内存和
CPU 分析,同时其还支持以 MBeans 上开展浏览和操作。

Tomcat Jmx配置

  • 编辑/bin/catalina.sh

    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, 修改默认访问密码

  • 设置访问属性

    chmod +w jmxremote.password
    chmod 0400 jmxremote.password

概述页面

图片 1

关键信息

  • 长机及端口
  • jvm参数信息

监视界面

图片 2

重在信息

  • cpu指标

假使cpu是多对,如果是n核,这里显示的单独核平均占
以经top命令,看到底凡 乘上n的结果,VisualVM显示 10.2/4(核数) =2.5%

图片 3

  • 类加载数量
  • 堆及PerGen的大小
  • 好像加载数量
  • 线程数

操作

  • 实践垃圾回收
  • 堆Dump

线程界面

图片 4

重大信息

  • 实时和守护线程数
  • 线程状态 运行,休眠, 等待, 驻留, 监视

抽样器界面

图片 5

CPU监控

  • 怎么措施是红方法
  • 各个艺术占用CPU时间及其比例

内存监控

图片 6

每个线程分配内存

图片 7

VisualVM常用插件

设置插件

工具->插件

图片 8

自我批评新本子

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

图片 9

以插件->设置页面填写入合适的

https://visualvm.github.io/pluginscenters.html 在这个网站精选相当的插件地址

图片 10

填入URL地址,确定

图片 11

布成功后,在可用插件列表

图片 12

常用插件

  • Visual GC
  • Jstatd
  • Threads Inspector
  • Tracer-Jvmstate , Collection, Jvm Probes

重大插件

VIsual GC

查看服务GC状态,需要安排jstatd并启动

cd /usr/local/src/jdk1.8.0_131/bin/ 
vim jstatd.all.policy  

进入以下代码

grant codebase "file:${java.home}/../lib/tools.jar" 
{ permission java.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连接

图片 13

VisualGC界面

图片 14

注意点:

  • 内存大小分情况
  • 最主要关心 GC Time长短和间隔

Tracer

可查询Heap,PerGen,Classes, Threads的

图片 15

如图

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的按钮

图片 16

方便当地压测监控JVM情况

总结

本节重点讲解VisualVm的利用和常用插件的采用,好之工具对找到题目发经济之机能。在实践中理解理论知识。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图