性能查找cpu偏高的原因(找到导致偏高的代码类)

1、如何使用jstack分析线程状态

https://www.cnblogs.com/silentdoer/p/11736498.html

2、top命令查看进程下线程信息以及jstack的使用

https://www.cnblogs.com/heyanan/p/9261695.html

 jstack命令 要装jdk(命令在bin目录里面)    参考: https://www.cnblogs.com/kaibindirver/p/14647110.html

泽嵩老师教的:

排查CPU占用过高的线程步骤:
       (1)先使用 【PS aux |grep +关键字】 查找服务进程ID      这里我用 ps -eaf | grep java 才行
       (2)在使用 【top –Hp +进程ID】取得占用cpu高的线程pid
       (3) 使用命令【 printf "%x "+ pid】将10进制的进程换成16进制Tid
       (4)打印线程信息【jstack(1中的ID)| grep 16进制ID +【-C】10(前后10行)】
       例子:ps -ef|grep java
                top -Hp 3689
              printf "%x " 3763   
              jstack 3689 | grep eb3 -C 20

上面这个只能看java的项目

要看其他语言的项目用  (还没研究)

安装perf
sudo apt-get install linux-tools-common linux-tools-generic linux-tools-`uname -r` // ubuntu
sudo yum install perf // centos

进程中哪个函数导致了 CPU 使用率升高,用 perf 分析
# -g 开启调用关系分析,-p 指定的进程号 21515
# perf top -g -p 21515

原文地址:https://www.cnblogs.com/kaibindirver/p/14679243.html