在Linux中当Tomcat启动后,我们只是去查看应用是否能够正常访问来判断Tomcat启动是否正常。一般情况下这样看是没有问题的,但是有时候我们会发现当Tomcat使用了一段时间后,开始出现CPU或者内存飙升。此时,查看Tomcat日志也许无法看到有效信息,因此有必要了解一下Linux和jdk给我们提供的相关工具。
1、查看内存和CPU使用较高的进程信息
输入top,我们可以看到下面的信息
2、如果我们想查看PID为3583的进程信息,则可以执行
top -H -p 3582
说明:3582为进程ID,一个进程可以有多个线程。这个基础知识科普给刚入门的小伙伴。
此时,我们可以看到进程3582下面的相关线程信息。占用资源较多的线程会排在前几个。OK,截图如下。
3、既然都找到线程消耗信息了,但是我们还没找到原因。别着急,下面我们来查看一下某个线程的堆栈信息,
如PID为3590的线程。至于说为什么要看堆栈信息,这个就不用我多说了。如果不清楚的,估计也接触不到这个东东了。OK,回归正题。要查看某个java线程的堆栈信息,我们当然得使用jdk自带的jstack工具。
使用方法:
jstack [进程] | grep -A 10 [线程的16进制]
-A 10表示查找到所在行的后10行。3590用计算器转换为16进制e06,注意字母是小写。
OK,下面我们执行下面的命令。
jstack 3582|grep -A 10 e06
执行完毕,我们会看到如图所示的堆栈信息,此时我们就能结合相关线程提示的信息来做自己的判断了。
---------------------
作者:洛枫偃月
来源:CSDN
原文:https://blog.csdn.net/zgs_shmily/article/details/51019933
版权声明:本文为博主原创文章,转载请附上博文链接!