首页 > 其他分享 >排查JVM问题思路

排查JVM问题思路

时间:2024-03-24 19:00:57浏览次数:25  
标签:分析 dump 对象 排查 fullgc 线程 JVM 思路 CPU

正常运行系统:

1、可以使用jmap来查看JVM中各个区域的使用情况

2、可以通过jstack来查看线程中的运行情况,比如哪些线程阻塞、是否出现了死锁。

3、可以通过jstat命令来查看垃圾回收的情况,特别是fullgc,如果发现fullgc比较频繁,那么就得进行调优了

4、通过各个命令的结果,或者jvisualvm等工具来进行分析

5、首先,初步猜测频繁发送fullgc的原因,如果频繁发送fullgc但又一直没有出现内存溢出,那么表示fullgc实际上是回收了很多对象了,所以这些对象最好能在yonggc过程中就直接回收掉,避免这些对象进入到老年代,对应这种情况,就要考虑这些存活时间不长的对象是不是比较大,导致年轻代放不下,直接进入了老年代,尝试加大年轻代的大小,如果改完之后,fullgc减少,则证明修改有效。

6、还可以找到占用CPU最多的线程,定位到具体的方法,优化这个方法的执行,看是否能避免某些对象的创建,从而节省内存。

对于已经发生了OOM的系统:

1、一般生产系统中都会设置当系统发送OOM时,生成当时的dump文件

2、可以利用jsisualvm等工具来分析dump文件

3、根据dump文件找到异常的实例对象,和异常的线程(占用CPU高),定位到具体的代码

4、然后再进行详细的分析和调试

总之,调优就是一撮而就的,需要分析、推理、实践、总结、再分析,最终定位到具体的问题。

标签:分析,dump,对象,排查,fullgc,线程,JVM,思路,CPU
From: https://blog.csdn.net/ly_7956/article/details/136992708

相关文章

  • 基础优化核心思路:覆盖问题分析思路(RSRP)
    一、通过采样点明确问题分布看红色和黄色覆盖较差的区域。二、明确红色和黄色明确问题点点主服务小区。2.1、该主服务器小区与问题点距离过大导致路径传播损耗严重:1、判断标准:问题点与主服务小区距离大于600米、2、临时优化方案:暂用该小区主覆盖3、最终优化方案:选取更适......
  • JDK、JRE、JVM
    Java三大版本writeOnce、runAnywhere(因Java中有一个jvm虚拟机)JavaSE:标准版(桌面程序,控制台开发)JavaME:嵌入式开发(手机,小家电)JavaEE:E级企业级开发(Web端,服务器开发)JDK、JRE、JVMJDK(JavadevelopmentKit)JRE(JavaRuntimeEnvironment)JVM(JavavirtualMachine)JDK包含JRE......
  • 关于简单序列分组的基本思路
    描述:题目是很简单的题目,大家应该都能秒了,只是也许大家都没有认真琢磨过这个简单的算法是怎么通过逻辑推理出来的,我看了网上很多大佬的解释都是直接给结论,这并不利于我们逻辑思维的成长,记忆并不是懂得。不才力求谁看谁明白。问题:现有一副扑克牌,需要按顺序轮流发给三个玩家,编......
  • skynet框架:关键流程的异常处理思路
    当一个执行流程存在对外调用时,我们讨论如何保证流程的可用和安全;假设流程是关键且强制原子性;--serviceAfunctionmain() step1() skynet.call(serviceB,"lua","step2") step3() returntrueend--serviceBfunctionCMD.step2() ...endcallserviceB动......
  • octave中matlab中的双变量循环的解决思路,不是双层循环,请钢精回避吧
    同时画出K=1,KI=0和K=1,KI=1和K=10,KI=5,传递函数为Ts=(Ks+KI)/(s^3+3*s^2+(2+K)*s+KI)的暂态响应曲线。刚开始用循环时,发现不能像c中的for中双变量循环,很明显,此处也不能双重循环,否则图像就不对了,后来的解决的办法,虽然不是很高明,但总算解决了,记录下,代码的注释已经很详细了,具体就说了......
  • Redis缓存方案设计思路
    Redis缓存方案是一个用于提高系统性能和响应速度的策略,主要通过将数据存储在快速访问的内存数据库中来实现。下面是一个基础的Redis缓存方案的实现步骤和注意事项:一、确定缓存目标1、分析数据:确定哪些数据适合放入缓存,通常是那些读取频繁、更新不频繁的数据。2、热点数据......
  • 2020-8-6-JVM虚拟机
    运行时数据区域、溢出、垃圾收集、问题解决运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域1)程序计数器(1)一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器(2)字节码解释器工作时就是通过改变这个计数器的......
  • 网络故障排查的方法
    网络是一切系统赖以正常工作的基础设施,所以保证主机的连通性是一切工作得以开展的前提。由于网络协议和设备所具有的复杂性,很多故障解决起来是有麻烦的。从大多数情况看,网络故障主要分为硬件故障和软件故障两种。   物理故障又主要分为网卡物理损坏、链路故障等原因。其中网......
  • 源码解析丨一次慢SQL排查
    当long_query_time=1时(表info的id为主键),出现下面的慢日志,可能会让你吃惊#Time:2024-01-28T22:52:24.500491+08:00#User@Host:root[root]@[127.0.0.1]Id:8#Query_time:7.760787Lock_time:7.757456Rows_sent:0Rows_examined:0useapple;SETtimestamp=......
  • nginx故障实例--附带排查思路
    nginx故障实例--附带排查思路一Nginx工作场景Nginx是最受欢迎的HTTP服务器之一,在我们公司扮演着举足轻重的作用,做为我们公司的核心组件之一,在整个访问链路上是不可或缺的一环,而且,Nginx组件、模块、版本众多,所以如何管理好Nginx将显得至关重要.Beforewegetstarted,......