zoukankan      html  css  js  c++  java
  • 生产环境CPU占用过高分析

    1. 分析思路

    结合Linux和JDK命令一块分析

    1)先用top命令查找cpu占用最高的进程;

    2)ps -ef 或者jps进一步定位进程详情(具体什么程序);

    3)定位到具体的线程或者代码:

    ps -mp 进程 -o THREAD,tid,time
     
    -m:显示所有的线程
    -p:pid进程使用cpu的时间
    -o:该参数后是用户自定义格式
    

    4)将需要的线程ID转换为16进制格式(英文小写格式);

    printf "%x
    " 有问题的线程ID

    5)jstack 进程ID | grep tid(16进制线程ID小写英文) -A60

    jstack 5101 | grep 13ee -A60 //追踪进程5101的线程13ee的详情,并打印前60行

    2. JDK自带的JVM监控和性能分析工具

    1)性能监控工具

    (1) jps(虚拟机进程状况工具)

    (2) jinfo(Java配置信息工具)

    (3) jmap(内存映像工具)

    A. 作用:

    生成Java应用程序的堆快照和对象的统计信息;

    B. 官网
    C. 相关case

    映射堆快照:jmap -heap 进程ID

    抓取堆内存:

    • 生成hprof文件并下载到本地
    • MAT分析插件工具

    (4) jstat(统计信息监控工具)

    A. 作用:

    查看堆内存各部分的使用量,以及加载类的

    B. 官网
    C. 相关case
    • 类加载统计
    • 编译统计
    • 垃圾回收统计
     
  • 相关阅读:
    mysql高级之编程优化
    高性能产品必由之路
    linux下安装xhprof
    linux下安装apc
    linux下安装vld
    python装饰器通俗易懂的解释!
    python函数基础 与文件操作
    python基础入门一(语法基础)
    iOS Keychain,SSKeychain,使用 理解 原理
    起头
  • 原文地址:https://www.cnblogs.com/Terry-Wu/p/12577922.html
Copyright © 2011-2022 走看看