我这个人挺懒的,所以我只写下大概的步骤,具体大家可以再去baidu或者google。
Linux环境下:
CPU高问题的查找方法
1:通过jstack命令将对应cpu高的进程的线程堆栈打印出来
2:通过top -H -p 将当时java进程的CPU线程列举出来,找到占用高的线程的PID
3:将PID通过计算器转换成16进制数
4:将得到的16进制数在第1步导出的jstack文件中进行查找定位到具体的调用堆栈
内存高问题的查找方法
1:通过jmap命令将对应内存高的进程的dump文件输出,得到的是.hprof文件
2:使用IBM的MAI工具,注意用这个版本MemoryAnalyzer-Incubation-0.8.0.20100120-win32.win32.x86;使用该工具将前面得出的dump文件导进去
3:MAI工具能够帮你分析出哪个地方占用的内存较多