On the Java Posse mailing list, someone posted a question about a JVM that was eating CPU like candy from a baby.
Here's the problem from the mailing list:
I found a java process whose cpu is almost 100% at my notebook.
Here is the top output:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+
6150 root 20 0 1411m 612m 12m R 98.8 15.7 45:49.12
and the jstack output for thread 6150(0x1806):
"VM Thread" prio=10 tid=0x0000000040ca9000 nid=0x1806 runnable
the last is jstat -gc output:
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
64.0 64.0 0.0 0.0 332992.0 0.0 666304.0 73192.5 83968.0 83967.9 6893 17.576 6882 2705.923 2723.499
Before you read further, take a look at this and see if you can tell what the problem is...
Now for the solution. Kirk Pepperdine said this:
YGC (Young gen count) is 6893 and FGCT is 6882 which is a completely ridiculous full GC to GC ratio. As for the times, YGCT is 17.56 where as FGCT is 2705.923 giving a 99.9% Full GC to GC ratio. A normal FGC:GC ratio should be less than 5% and less than 1% is desirable.
Second observation
PC is perm gen configured @ 83968 and PU perm gen used at 83967.9
Diagnosis: Frequent Full GC's due to Perm Gen being full.
Solution: Increase the size of perm gen using -XX:MaxPermSize.
相关推荐
【标题】"nginx-upstream-jvm-route-1.15" 涉及的核心知识点是Nginx的upstream模块与JVM路由的整合,特别针对Nginx 1.15版本。这个项目旨在解决在配置Nginx时遇到的特定错误提示“nginx: [emerg] invalid parameter ...
总之,jstat是JVM性能监控的得力工具,通过熟练运用它可以深入了解JVM的运行状况,从而进行有效的性能优化。在实际工作中,结合JVisualVM、JConsole等可视化工具,可以更全面地分析和调优Java应用的性能。
"Jvm性能优化-JVM内存结构原理分析03" Jvm性能优化是Java虚拟机(JVM)中非常重要的一部分,它对Jvm的性能产生了很大的影响。本文将从Jvm内存结构的角度来分析Jvm性能优化的原理。 Jvm内存结构主要分为五部分:堆...
代码如下:failed to create jvm error code -4 这一般应是内存不够用所致,解决方法参考如下。 打开 Android Studio 安装目录下的bin目录,查找并打开文件 studio.exe.vmoptions,修改代码: 代码如下:-Xmx512m 为...
《JVM性能调优-JVM内存整理及GC回收》是一份深入探讨Java虚拟机(JVM)优化的重要学习资料,特别适合对JAVA编程有经验的开发者。这份文档详细阐述了JVM性能调优的关键概念,包括JVM内存模型、垃圾回收(Garbage ...
JVM 调优是 Java virtual machine 的性能优化,通过调整 JVM 的参数来提高 Java 应用程序的性能。其中,-Xms、-Xmx、-Xmn、-Xss 是四个重要的参数,分别控制 JVM 的初始堆大小、最大堆大小、年轻代大小和每个线程的...
2. **JProfiler**:强大的性能分析工具,支持CPU、内存、线程等多方面调优。 3. **VisualVM**:集成了多种JDK自带工具,提供丰富的性能监控和诊断功能。 五、总结 JVM内存模型和优化是Java性能调优的核心部分,...
JVM性能调优监控工具jps、jstack、jmap、jhat、...jps、jstack、jmap、jhat、jstat 等 JVM 性能调优监控工具对于 Java 程序员来说是必备的,能够帮助我们解决各种 JVM 性能问题,提高 Java 应用程序的性能和稳定性。
### JVM内存管理与jstat工具详解 #### 一、引言 在现代软件开发中,Java虚拟机(JVM)是构建高性能应用的基础之一。为了确保应用能够在各种资源限制下稳定运行,开发者需要掌握如何有效地管理和监控JVM的内存使用...
3. **监控与诊断**:使用JVisualVM、JConsole等工具进行实时监控,分析GC日志,找出性能瓶颈。 4. **对象生命周期管理**:合理设计对象生命周期,避免大量短生命周期对象晋升到老年代,导致不必要的Full GC。 5. *...
4. **分析线程状态**:使用文本编辑器或专用工具(如Windows下的ProcessExplorer)查看生成的`cpu.txt`文件,找到CPU占用高的线程,分析其状态和调用堆栈,定位到引起高CPU占用的方法。 ### 分析线程死锁 线程死锁...
《Nginx、Upstream与JVM Route:构建高效集群Session复制方案》 在现代Web应用架构中,负载均衡和高可用性是不可或缺的组成部分。Nginx作为一款高性能的反向代理服务器,常被用于处理HTTP和HTTPS请求,通过Upstream...
- **VisualVM**:更强大的多合一工具,包含CPU、内存、线程分析,还可以导出性能数据。 - **JDK Mission Control (JMC)**:Oracle推出的高级性能分析工具,支持复杂的分析和调试任务。 5. **线程与并发** - **...
JVM性能优化笔记 ------------------------------------------
JVM性能监控和分析工具是Java开发者在进行性能调优和故障排查时不可或缺的帮手。JVM(Java虚拟机)提供了多种内置的工具以及支持第三方工具,以监控和分析Java应用程序的运行状态和性能指标。这些工具能够帮助开发者...
4. **性能监控与分析**:使用JConsole、VisualVM、JProfiler等工具进行性能监控,理解CPU使用率、内存分配、GC频率等指标。 5. **线程管理**:线程池大小的设定,如何避免死锁和线程饥饿。 6. **编译优化**:JIT...
在Java开发中,JVM(Java虚拟机)的性能优化是一项关键任务,特别是对于大型系统而言,频繁的Full GC(垃圾收集)会导致应用暂停时间过长,影响用户体验。本资料"jvm-full-gc调优-jvm-full-gc.zip"显然是针对如何...
在实际开发中,这些工具通常结合使用,以实现全面的JVM性能分析。例如,首先使用`jstat`监控JVM的实时状态,发现可能的性能问题后,用`jmap`生成heap dump,最后借助MAT进行深入的内存分析。通过这种方式,开发者...
### MSB企业级JVM优化与性能调优课程解读 #### 一、JVM基础知识与原理 ##### 1.1 JVM内存结构 JVM(Java虚拟机)内存模型主要包括堆内存(Heap)、方法区(Method Area)、程序计数器(Program Counter Register...
JVM,MIB,可通过SNMP协议监控JVM运行情况