在生产上我们经常会碰到一些不好排查的问题,例如线程安全问题,用最简单的threaddump或者heapdump不好查到问题原因。为了排查这些问题,有时我们会临时加一些日志,比如在一些关键的函数里打印出入参,然后重新打包发布,如果打了日志还是没找到问题,继续加日志,重新打包发布。对于上线流程复杂 ...
dump生成:jmp dump:live,format b,file tmp some.bin PID。其中,加上live表示只dump存活的对象。 线程栈信息生成:jstack PID gt tmp file.txt 找出占用CPU最多的线程: top p PID h 找到占用CPU最多的线程号 此命令结果显示为PID,对应jstack里的nid 获取jstack 将上面找到的线id转为十六进 ...
2019-10-13 23:56 0 379 推荐指数:
在生产上我们经常会碰到一些不好排查的问题,例如线程安全问题,用最简单的threaddump或者heapdump不好查到问题原因。为了排查这些问题,有时我们会临时加一些日志,比如在一些关键的函数里打印出入参,然后重新打包发布,如果打了日志还是没找到问题,继续加日志,重新打包发布。对于上线流程复杂 ...
JDK 提供了一系列用于监控、诊断 Java 进程的工具,它们在 JDK 安装目录的 bin 目录下,有 jps、jcmd、jstack、jinfo、jmap 等。其中jmc、jconsole、jvisualvm 是 GUI 工具,其他大部分都是命令行工具。 本篇只是个入门介绍,不涉及 ...
前言 本文介绍服务器内运行的 Java 应用产生的 OOM 问题 和 CPU 100% 的问题定位 1. 内存 OOM 问题定位 某Java服务(比如进程id pid 为 3320)出现OOM,常见的原因为: 内存分配的确实小了,而正常业务使用了大量的内存 某个对象被频繁申请 ...
1. jps 使用 jps -l -m 获取到当前jvm进程的pid,通过上述命令获取到了服务的进程号 2. jstat 使用 jstat 观察jvm状态,因为是OOM异常,所以我们首先重启机器观察了JVM的运行情况; 我们使用 jstat - gc ...
Story background 回望2018年12月,这也许是程序员们日夜不得安宁的日子,皆因各种前线的系统使用者都需要冲业绩等原因,往往在这个时候会向系统同时写入海量的数据,当我们的应用或者数据库服务器反应不过来的时候,就会产生各种各样诡异的问题,诸如表现出来就是系统变得巨卡无比 ...
参考: https://blog.csdn.net/nielinqi520/article/details/78455614 https://www.cnblogs.com/Dhouse/p/78 ...
上午收到报警,某台机器上的CPU负载过高,通过逐步的排查,解决了问题,下面记录一下整个排查的过程。 首先,登录上对应的机器,通过top命令找到占用CPU过高的进程ID,也就是PID,为29126, 然后通过ps命令和grep命令找到PID为29126对应的服务,具体命令 ...
1、配置jvm启动参数--宕机前输出堆转储文件和崩溃日志 首先配置jvm启动参数,找到Tomcat目录下的catalina.sh文件,改下面这句话: p.p1 { margin: 0; font: 11px Menlo; color: rgba(0, 0, 0, 1) } span.s1 ...