zoukankan      html  css  js  c++  java
  • 性能查找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

  • 相关阅读:
    String、Stringbuilder、StringBuffer之间的练习与区别
    JAVA——重点非阻塞模型:NIO模型及IO操作步骤
    JAVA——IO模型分类
    SpringBoot(六) SpringBoot使用汇总(持续更新)
    Java高级(一) Future机制
    SpringBoot(二) 事务
    Java8(七) 新的DateTime API
    Java8(六) Optional
    Java8(五) 接口默认方法
    Java8(四) StreamAPI
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/14679243.html
Copyright © 2011-2022 走看看