【JVM】问题排查】的更多相关文章

Story background 回望2018年12月,这也许是程序员们日夜不得安宁的日子,皆因各种前线的系统使用者都需要冲业绩等原因,往往在这个时候会向系统同时写入海量的数据,当我们的应用或者数据库服务器反应不过来的时候,就会产生各种各样诡异的问题,诸如表现出来就是系统变得巨卡无比,无法使用,或者周期性卡顿,令人发指,用户轻则问候系统全家,重则心脏病发.总而言之每天都脑壳疼!归根到底是我们的应用服务器或数据库服务器因为扛不住流量造成的系统BUG问题暴露,诸如OOM等,呈现出机器的三高,这里说的…
为方便自己查看,根据工作遇到的问题,转载并整理以下jvm优化内容 有次接到客服反馈,生产系统异常,无法访问.接到通知紧急上后台跟踪,查看了数据库死锁情况--正常,接着查看tomcat 内存溢出--正常,再去跟踪流量--正常.没折了,把生产系统重起,刚开始几分钟,监控显示一切正常,过几分钟情况恢复正常.再去检查apache代理机,发现代理机长时间没有返回造成阻塞宕机.问题由此确定.接着查看了xxx.com/proxoolAdmin?alias=ec&tab=snapshot 数据连接池情况,发现连…
JDK 提供了一系列用于监控.诊断 Java 进程的工具,它们在 JDK 安装目录的 bin 目录下,有 jps.jcmd.jstack.jinfo.jmap 等.其中jmc.jconsole.jvisualvm 是 GUI 工具,其他大部分都是命令行工具. cd $JAVA_HOME/bin ls 本篇只是个入门介绍,不涉及深入分析.每一个工具都有它专门的作用,掌握使用方法只是很简单的入门阶段,更重要的是根据工具得到的信息去分析系统存在的问题以及性能瓶颈,每一个工具的使用和分析都可以单独成文.…
本文首发于微信公众号:javaadu 简单介绍 构建高性能的Java应用过程中,必然会遇到各种各样的问题,像CPU飙高.内存泄漏.应用奔溃,以及其他疑难杂症,这时可以使用Serviceability Agent(SA).SA是JDK提供的一个强大的调试工具集,适用于语言层和虚拟机层,支持调试运行着的Java进程.core文件和虚拟机crash之后的dump文件. SA的优点:可以呈现出类对象.能够识别出Java堆.堆边界.堆内对象.载入的类描述.栈内存.线程状态等信息. 安装 首先,我使用的操作…
1.jstat jstat -gcutil pid 5s    //pid进程号 每隔5s监控一次内存回收情况 E 代表 Eden 区使用率:O(Old)代表老年代使用率    :P(Permanent)代表永久代使用率: CCS 压缩使用比例 M 元空间(MetaspaceSize)已使用的占当前容量百分比YGC(Young GC)代表Minor GC 次数:YGCT代表Minor GC耗时:FGC(Full GC)代表Full GC次数:FGCT(Full GC)代表Full GC耗时:GC…
一. jmap // 打印jvm的堆状况,主要是年轻代和老年代信息 jmap -heap <pid> 如: Heap Configuration: MinHeapFreeRatio = MaxHeapFreeRatio = MaxHeapSize = (.0MB) NewSize = (.25MB) MaxNewSize = MB OldSize = (.1875MB) NewRatio = SurvivorRatio = PermSize = (.75MB) MaxPermSize = (.…
dump生成:jmp -dump:live,format=b,file=/tmp/some.bin PID.其中,加上live表示只dump存活的对象. 线程栈信息生成:jstack PID > /tmp/file.txt 找出占用CPU最多的线程: top -p PID -h 找到占用CPU最多的线程号(此命令结果显示为PID,对应jstack里的nid) 获取jstack: 将上面找到的线id转为十六进制形式,通过grep命令可以从jstack里找到相应的线程信息 grep 'nid' -B…
Live Memory 1.Class Tracker 展示类或包的实例个数与时间的关系.需要录制才可以看到. 1)可以添加指定的类或包. 2.All Objects 查看所有类的实例个数和大小.可以过滤自己关注的类或包名.显示实时数据 1)可以通过"Mark Current Values"来对比实例个数的变化情况 2)可以通过"Show Selection in Heap Walker"向下查看某个类的实例中引用了哪些内容,也可以向上查看哪些类引用了次对象实例 3…
参考:http://blog.sina.com.cn/s/blog_61d758500102wnus.html…
参考:http://blog.csdn.net/chenleixing/article/details/44227327/ 1.  在IE地址栏中输入:http://localhost/test/init1.jsp,执行一次,我们可以在内存视图中看到cn.test.TestBean对象被创建了10000次: 2.标记现在的状态,然后再执行init1.jsp和,init2.jsp可以让我们找到哪些类在调用后没有被释放(很重要!!!) 查看哪些类被发生了变化: 红色的变成是发生变化的对象及其数量.…