JVM分析工具知识概括
Posted GeorgeLin98
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM分析工具知识概括相关的知识,希望对你有一定的参考价值。
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堆内存。
线上问题如何排查?
- 磁盘空间不足问题
- CPU 与内存使用率过高问题
- 网络延迟
- Java 程序的问题分析
- 链接:临时抱佛脚,线上问题如何排查?
总结
总结:
- 性能分析:
①JDK命令行
②Eclipse :Memory Analyzer Tool
③Jconsole
④visualVM
⑤Jprofiler
⑥Java Flight Recorder
⑦Gcviewer
⑧GC Easy - 反编译:
①JDK命令行
②JClassLib 诊断:Arthas(阿尔萨斯)是阿里巴巴开源的 Java 诊断工具,深受开发者喜爱。
以上是关于JVM分析工具知识概括的主要内容,如果未能解决你的问题,请参考以下文章