zoukankan      html  css  js  c++  java
  • JVM定位程序假死或cpu占用高的线程

    linux系统:

    参考:https://blog.csdn.net/qq_40197576/article/details/80287515

    1>使用top命令查看占用cpu进程情况,得到java进程pid

    2>使用jps命令简单的列出java进程pid与类名

    3>根据java进程pid,使用pidstat定位是那些线程的原因

    pidstat -p 进程id 采样间隔时间与次数 -u(-u是监控cpu) -t (-t显示线程)

    看占用cpu最高的线程id

    4> 使用jstack命令输出线程信息

    jstack java进程pid

    5>将第<3>步得到的线程id转换为16进制,与第<4>步中的线程id对比,定位到问题线程和问题类

    window系统:

    方法一:可以在java/jdk/bin目录中找到jconsole(java监视管理控制台),在里面查看内存,线程,类,从而找到问题

    方法二:参考:https://blog.csdn.net/qq_29664253/article/details/81111717

    1>通过任务管理器,找到java进程pid

    2>然后把java进程导出快照,直接运行命令 jstack  -l pid >c:a.txt

    3>在windows下只能查看进程的cpu占用率,要查看线程的cpu占用率要借助其他的工具,我这里用的是微软提供的 Process Explorer

    4>找到java进程pid-->properties-->threads-->找到占用cpu最高的线程id

    5>将第四步的线程id转换为16进制,与a.txt文件中的线程id对比,找到问题线程和问题类

  • 相关阅读:
    链接、装载与库
    mysql 调用外部程序
    SAMBA 共享服务器搭建
    Django 部署
    python基础教程1
    django 文件上传
    Django URLconf
    django view
    admin site
    django book
  • 原文地址:https://www.cnblogs.com/xc-chejj/p/10823997.html
Copyright © 2011-2022 走看看