JVM分析工具知识概括

Posted GeorgeLin98

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM分析工具知识概括相关的知识,希望对你有一定的参考价值。

JClassLib 插件

简介:

  • JClassLib是一款java 字节码分析工具
  • 打开idea 中的settings > plugins 搜索 jclasslib 插件 进行安装 重启生效
  • 重启后点击view > 选择show bytecode with jclasslib,可以看到字节码视图了。
    在这里插入图片描述

jvisualvm

简介:

  • JDK中还藏着一个宝贝,它的名字叫做VisualVM,自从 JDK 6 Update 7 以后已经作为 Oracle JDK
    的一部分,它主要用来监控JVM的运行情况,可以用它来查看和浏览Heap Dump、Thread Dump、内存对象实例情况、GC执行情况、CPU消耗以及类的装载情况。
  • 该工具位于 JDK 根目录的 bin文件夹下,无需安装,正常安装完jdk后,至jdk的bin目录下直接运行jvisualvm.exe即可。
  • jvisualvm可以监控所有的java进程,本地机器的程序直接可以监听到,远程机器的程序需要加上JVM参数。
  • 链接:必须要会的JVM性能监测工具(JVisualVM)

使用:

  • 添加远程主机
  • 打开JMX连接
  • 点击进行监测数据

Jprofiler

简介:

  • JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开发部署工具)。
  • 其特点:
    ①使用方便
    ②界面操作友好
    ③对被分析的应用影响小
    ④CPU,Thread,Memory分析功能尤其强大
    ⑤支持对jdbc,noSql, jsp, servlet, socket等进行分析
    ⑥支持多种模式(离线,在线)的分析
    ⑦跨平台
    在这里插入图片描述

JVM优化实操

tomcat启动项目时一直卡住无反应的解决方案:

  • 系统没有打开telnet
    ①Telnet:搭建或配置网络环境时,经常会使用ping命令检查网络是否可达。有些时候Ping命令也不好使,比如因防火墙禁止或访问策略限制等。则可使用telnet测试映射端口或远程访问主机。
    ②Telnet协议是TCP/IP协议族的其中之一,是Internet远程登录服务的标准协议和主要方式,常用于网页服务器的远程控制,可供使用者在本地主机运行远程主机上的工作。
    ③启用telnet操作过程:点击"开始"→"控制器面板"→" 查看方式:类型"则点击"程序"(“查看方式:大图标"则点击"程序和功能”)→ "启动或关闭windows功能"→ 在"Windows功能"界面勾选Telnet服务器
  • 加入log4j日志,debug级别
  • 启动tomcat , 控制台停在某个日志信息不动了
    ①既然是卡住了,那就是在访问某个东西的时候一直没有响应,而tomcat 却不放弃,一直重试。
    ②可能是数据库、缓存以及消息中间件等。
    ③于是想到用 JVisualVm 查看线程情况。
    ④例如:数据库请求看到Druid 有多个线程,状态为休眠和驻留。
  • 消息队列 ActiveMQ 造成 Tomcat 启动卡住。
  • 链接:tomcat启动项目时一直卡住无反应的解决方案述

java 内存不足解决方案:

  • 原因:服务器上物理内存太小,大部分都是应为程序太多,内存吃紧,而给jvm分配的内存太大(java程序启动需要的内存,linux不能给),最好调整java程序jvm内存。
  • 解决方案:
    ①linux上利用top命令查看所有进程,看看那些进程占用的内存太大了,选择性的kill,释放内存,但这个需要了解清楚,安歇进程是不需要的。
    ②调整tomca中对jvm内存的配置,因为jvm主要内存就是指jvm堆内存。

线上问题如何排查?

总结

总结:

  • 性能分析:
    ①JDK命令行
    ②Eclipse :Memory Analyzer Tool
    ③Jconsole
    ④visualVM
    ⑤Jprofiler
    ⑥Java Flight Recorder
    ⑦Gcviewer
    ⑧GC Easy
  • 反编译:
    ①JDK命令行
    ②JClassLib
  • 诊断:Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。

以上是关于JVM分析工具知识概括的主要内容,如果未能解决你的问题,请参考以下文章

JVM零碎知识

分析定位占用CPU资源高的JVM线程

jvm系列:Java GC 分析

JVM垃圾回收篇(扩展知识)

JVM垃圾回收篇(扩展知识)

Ant构建工具知识概括