【性能调优】CPU&内存&Core分析

参考:https://blog.csdn.net/kimyundung/article/details/126877023 -- 待继续梳理完

 

MAT:

https://www.jianshu.com/p/931bd0351b78

https://www.cnblogs.com/trust-freedom/p/6744948.html#thread_overview

https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Ftasks%2Frunningleaksuspectreport.html

OQL:  F5执行

  Memory Analyzer allows to query the heap dump with custom SQL-like queries. OQL represents classes as tables, objects as rows, and fields as columns.

  https://help.eclipse.org/latest/index.jsp?topic=%2Forg.eclipse.mat.ui.help%2Ftasks%2Frunningleaksuspectreport.html  

SELECT *
FROM [ INSTANCEOF ] <class name="name">
[ WHERE <filter-expression> ]
</filter-expression></class>

 

一、CPU高分析

1.1   说明(root执行)

建议使用root账号执行命令,使用其他账号登录可能会无法看到部分进程信息。

1.2   查看服务进程ID(ps)

命令格式:  ps –ef | grep XXXX   

1.3   查看机器CPU占用情况(top)

命令格式:  top

执行结果如下,结果会动态刷新

%CPU取值说明:以347949为例,58.7%并不是类似Windows的整体CPU占用率。CPU通常是多核,命令执行机器是8核CPU,则CPU全部可用率为8*100%=800%;

所以:相对Windows整个机器来说:CPU占用率是 58.7% / 800% = 7.35% 

第一行是任务队列信息

   

第二、三行为进程和CPU的信息

  

第四、五行为内存(物理+交换)信息。

 

二.  进程信息

  

1.4   查看指定服务内部线程CPU占用情况(top)

命令格式:  top -p 267396 -H

说明:

1)267396为进程PID信息,参考章节1.2获取;

    2)执行结果会动态刷新

3)执行结果默认只显示下半部分信息,可以按下主键盘区域数字1,增加显示上部信息。

4)左侧PID对应内部线程ID(十进制表示)

1.5   安装JDK

通常部署环境没有JDK命令(即没有jstack,jmap等后续命令),需要找到匹配JDK并安装到环境中。

确认方法:可以先通过root切换到根目录查找jstack

命令格式:#find / -name jstack

如果找不到则需要参考章节“如何获取环境匹配的JDK”进行安装。

1.6   使用jstack命令保存堆栈信息(jstack)

命令格式:  jstack 267396 > /tmp/stack1.txt

说明:

    通常机器不会安装jstack信息,需使用到root账号优先查找本机jstack是否存在,否则需要自行安装。

其中nid字段对应16进制的线程ID(对应章节1.4中10进制线程信息)。

  

 比如如下的垃圾回收线程

 

1.7   根据待分析TOP线程ID到jstack查找获取线程详细信息

注意: jstack中nid线程ID是十六进制;top命令结果中线程ID是十进制,查询前需要提前转换。

 

二、内存高

1、使用top命令查看占用高资源的java项目的进程ID(pid):  top

2、查看该进程中的线程所占用资源的情况:top -Hp pid

3、查看该线程对应的16进制:printf %x 11129

  打印并保存该进程中堆栈的使用信息日志:jstack -l 11095 >> jstack.log

4、查看该进程中使用高资源的线程的具体信息日志:vim jstack.log

  查找上一步的16进制的线程id:/2b79

 jmap -histo 线程PID

# 查看堆的使用情况,各个堆空间的占用情况
// jmap -histo PI | head 20 查看top 20的内存占用

 

posted @ 2020-04-11 17:52  飞翔在天  阅读(436)  评论(0编辑  收藏  举报