🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 一、进程线程基本情况 找到主进程和其对应线程情况,能够找到进程中各具体线程,对CPU和内存的利用情况: ``` top -H -p ${javaPID} ``` ![](https://img.kancloud.cn/c7/d4/c7d4456d5ed7bcae149f83d1cc8e36bf_1323x860.png) ## 二、进程状态分析 jps主要用来输出JVM中运行的进程状态信息; ``` jps -m -l ``` ## 三、线程堆栈分析 jstack主要用来查看某个Java进程内的线程堆栈信息; ``` jstack ${javaPID}|grep ${javaThreadID} ``` `prio`: 表示线程优先级,就是Thread中定义的这个; `os_prio`: 表示操作系统级别的优先级; `tid`: 表示Java内的线程ID,同样在Thread类中; `nid`:表示操作系统级别的线程ID的16进制形式; ## 四、内存分析 jmap用来查看堆内存使用状况,一般结合jhat(一般用更专业的MAT、VisualVM等工具)使用; 内存分析能发现内存泄露等严重的问题;具体的方法,参考专门的章节: [项目实战/运行维护/内存堆栈分析](%E5%86%85%E5%AD%98%E5%A0%86%E6%A0%88%E5%88%86%E6%9E%90.md) ## 五、统计检测 jstat是JVM统计检测工具,Jstat可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量;