出现内存泄漏或者运行缓慢场景有时候无法直接从业务日志看出问题时候,需要分析jvm内存和线程堆栈
线程堆栈信息主要记录jvm线程在某时刻线程执行情况分析线程状态鈳以跟踪到程序出问题的地方
内存堆栈信息主要记录jvm堆中在某时刻对象使用情况,主要用于跟踪是哪个对象占用了太多的空间从而跟踪導致内存泄漏的地方
当服务cup飙升或者出问题需要从主机层面定位时候,使用top -c 命令查看对应哪个进程占用了过高资源
明确需要定位的进程通過如下命令找到对应的进程id
接下来通过jstack导出对应的线程堆栈
可以通过如下命令定位具体高load线程:
查询进程具体哪个线程占用高load
thread id为十六进制格式转十六进制值
服务器线程相对较多文件大小较大,一般不会考虑在服务器看另外这样查也会导致忽略了一些统计信息
通过如下命囹导出文件,下载到本地查
如何查看分析dump文件请看下文