关于jvm 中vmthread的问题
来源:互联网 发布:淘宝白猪商店有假货吗 编辑:程序博客网 时间:2024/06/08 03:01
最近一个同事性能测试,20个并发,压了3分钟,tps急剧下降,jvm开始不响应
通过排查发现,此时old区已满,并且cpu 100%完全被vmthread占用
如果此时停止施压,那么过几分钟,jvm会回复。
也就是说垃圾回收停滞了。
通过MAT查看heap dump发现,有20多万的hibernate session 产生了超过1G的hashmap
无法回收
也就是在并发的情况,如果短时间产生大量的对象,会导致jvm vmthread出问题
于是采用缓存,减少直接的hibernate调用,症状消失
这使我又联想到之前的一个问题
同事的项目刚上线就出了问题,排查下来看到一个task(一个mq消费进程)一启动就cpu 100%
然后task完全不消费,进程停滞
于是通过jstack看到 vmthread 占用了 100% cpu
于是通过jstat 查看垃圾回收时发现heap占用100%
于是检查代码发现,由于多线程的原因,导致并发了加载了字典多次,导致heap 瞬间产生了
很多对象,导致vm thread工作不正常
修改程序确保只加载一次字典,症状消失
总体来说
cpu 100% 通常的思路是查看runnable的线程,但如果发现是耗尽cpu的是vmthread
多半会伴随old区已满(此时垃圾回收已停止),通常这是由于在并发下短时间内创建很多对象造成。
- 关于jvm 中vmthread的问题
- 关于jvm 中vmthread的问题
- 关于JVM中堆内存大小的分配问题
- 关于JVM的设置问题
- 关于设置JVM内存大小的问题
- 关于JVM中参数问题 JVM系列三:JVM参数设置、分析
- 关于jvm中字符串的编码解码导致的乱码问题
- 关于 JVM 参数中 ExplicitGCInvokesConcurrent的用途
- 关于jvm优化问题
- jvm面试中遇到的问题
- 关于jvm的内存限制的问题的解决办法
- 关于jvm的内存限制的问题的解决办法
- 关于hashcode在不同的jvm不同的问题
- 关于遇到的JVM内存的相关问题
- 关于SQL Server Native Client和JVM的问题
- JVM 关于垃圾回收一个有趣的问题
- 关于一个CS项目,jvm内存溢出问题的解决方案
- 关于设置Java虚拟机(JVM)的内存问题
- LAMP环境搭建
- Windows脚步开发工具Autoit及网页刷新实例介绍
- Windows Phone 7 点击按钮退出当前应用
- 三星 Galaxy Nexus,4.0.3/华为荣耀U8860 从程序自动创建快捷方式进入报 [没有找到Activity]
- Delphi中DLL封装对象的几种方法整理及体会
- 关于jvm 中vmthread的问题
- Java类的引用示例
- s3c2440的GPIO上电初始值
- 黑马程序员 学习笔记——Java 二十三设计模式之单例
- JAVA操作XML的完整例子——W3C DOM篇
- 设置Activity进入退出动画
- 调用webservice
- 壆消費作者黄同君
- Palm 和 webOS 的故事(上)