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
    • 类加载统计
    • 编译统计
    • 垃圾回收统计
     
  • 相关阅读:
    垂直水平居中几种实现风格
    重绘(repaint)和回流(reflow)
    对象深拷贝
    PhantomJS not found on PATH
    d3.js 数据操作
    canvas 绘制圆弧
    d3.js 柱状图
    d3.js -- 比例尺 scales scaleLinear scaleBand scaleOrdinal scaleTime scaleQuantize
    d3.js -- select、selectAll
    map映射
  • 原文地址:https://www.cnblogs.com/Terry-Wu/p/12577922.html
Copyright © 2011-2022 走看看