第一步: 查看消耗CPU最高的进程PID

[lolaage@web2 tomcat-ns]$ top

top - 13:23:32 up 42 days, 19:11,  3 users,  load average: 1.01, 0.86, 0.78

Tasks: 153 total,   2 running, 151 sleeping,   0 stopped,   0 zombie

%Cpu(s): 16.3 us,  0.8 sy,  0.0 ni, 82.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem : 16267172 total,  1135628 free,  6554372 used,  8577172 buff/cache

KiB Swap:        0 total,        0 free,        0 used.  9275688 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

23496 lolaage   20   0 9985736 1.978g  11148 S 104.8 12.7  32:17.81 java

5081 lolaage   20   0 1289012 328804   2012 S   9.7  2.0   2562:11 srs

1958 lolaage   20   0 10.631g 2.809g   7520 S   8.9 18.1   2332:34 java

1 root      20   0   43800   3700   1932 S   0.0  0.0   6:29.39 systemd

2 root      20   0       0      0      0 S   0.0  0.0   0:01.03 kthreadd

3 root      20   0       0      0      0 S   0.0  0.0   2:12.16 ksoftirqd/0

第二步:查看消耗CPU最高的线程TID                                                                                                                                     

[lolaage@video1 mpmt-socket]$  ps -mp 23496 -o THREAD,tid,time

USER     %CPU PRI SCNT WCHAN  USER SYSTEM   TID     TIME

lolaage  51.6   -    - -         -      -     - 00:32:22

lolaage   0.0  19    - futex_    -      - 23496 00:00:00

lolaage   0.3  19    - futex_    -      - 23508 00:00:14

lolaage   0.0  19    - ep_pol    -      - 23530 00:00:00

lolaage   0.0  19    - futex_    -      - 23539 00:00:00

lolaage   4.5  19    - futex_    -      - 23541 00:02:51

lolaage   4.5  19    - futex_    -      - 23543 00:02:51

lolaage   4.5  19    - futex_    -      - 23545 00:02:52

lolaage   4.5  19    - futex_    -      - 23546 00:02:51

lolaage   4.5  19    - futex_    -      - 23547 00:02:51

lolaage   4.6  19    - -         -      - 23548 00:02:55

lolaage   5.3  19    - futex_    -      - 23549 00:03:19

lolaage   5.3  19    - futex_    -      - 23550 00:03:20

lolaage   4.5  19    - futex_    -      - 23551 00:02:50

lolaage   4.5  19    - futex_    -      - 23552 00:02:51

lolaage   0.0  19    - futex_    -      - 23553 00:00:00

第三步:把线程ID转为16进制

[lolaage@video1 mpmt-socket]$ printf "%x\n" 23549

5bfd

第四步:查看堆栈信息

[lolaage@video1 mpmt-socket]$ jstack 23496 |grep 5bfd -A 30

"startQuertz_Worker-7" #25 prio=5 os_prio=0 tid=0x00007fb5fcdf8800 nid=0x5bfd in Object.wait() [0x00007fb5f6629000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)

- locked <0x00000006c8d35208> (a java.lang.Object)

"startQuertz_Worker-6" #24 prio=5 os_prio=0 tid=0x00007fb5fcdf6800 nid=0x5bfc in Object.wait() [0x00007fb5f672a000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)

- locked <0x00000006c8d15290> (a java.lang.Object)

"startQuertz_Worker-5" #23 prio=5 os_prio=0 tid=0x00007fb5fcdf4800 nid=0x5bfb in Object.wait() [0x00007fb5f682b000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)

- locked <0x00000006c8d14fa8> (a java.lang.Object)

"startQuertz_Worker-4" #22 prio=5 os_prio=0 tid=0x00007fb5fcdf2800 nid=0x5bfa in Object.wait() [0x00007fb5f692c000]

java.lang.Thread.State: TIMED_WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:568)

- locked <0x00000006c8d14cc0> (a java.lang.Object)

经检查发现相关的程序代码中使用了locked导致的

Linux中查找最耗CPU的Java代码问题的更多相关文章

  1. Linux中查找最耗性能的JAVA代码

    在这里总结一下查找Linux.Java环境下最耗CPU性能的代码段的方法.基本上原理就是使用top命令查看最耗cpu的进程和线程(子进程).使用jstack把java线程堆栈给dump下来.然后,在堆 ...

  2. linux中查找命令find、locate、whereis、which、type区别

    linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/ ...

  3. linux中查找文件属于那个软件包的方法

    一.linux中查找文件属于那个软件包的方法 [root@salt prod]# whereis htpasswdhtpasswd: /usr/bin/htpasswd /usr/share/man/ ...

  4. linux中查找(find、locate、which、whereis、grep)命令汇总、帮助命令(man、whatis、apropos、info、help)汇总

    (一)find命令详解 find:功能:文件搜索: 语法:find[搜索范围][匹配条件]:  只要匹配条件完全符合才可以被显示,使用通配符*匹配条件*则可以显示匹配条件的所有目录,问号?匹配单个字符 ...

  5. systemd-analyze – 在Linux中查找系统启动性能统计信息

    您是否在使用 systemd 系统和服务管理器,并且您的 Linux 系统需要较长时间才能启动,或者您希望查看系统启动性能的报告? 如果是的话,你已经登陆了正确的地方. 在本文中,我们将向您展示如何使 ...

  6. 如何使用find命令在Linux中查找文件

    Linux Find命令是Linux系统管理员工具库中最强大的工具之一. Find是一个命令行实用程序,它允许您根据用户给定的表达式搜索目录层次结构中的文件和目录,并对每个匹配的文件应用用户指定的操作 ...

  7. linux中表示系统信息如cpu mem disk等内容都在 /proc

    linux中表示系统信息的 内容都在 /proc 要查看系统的任何信息, 如cpu mem 磁盘等等, 都在 /proc下, 如: cpuinfo ,meminfo diskstatus 等等

  8. 在 Linux 中查找和删除重复文件

    原文链接:https://www.linuxprobe.com/linux-FSlint.html FSlint同时具有GUI和CLI模式.因此,对于新手来说,这是一个用户友好的工具.FSlint不仅 ...

  9. 查找占用资源高的JAVA代码

    1. /tmp/hsperfdata_$USER目录 $USER是启动JAVA进程的用户,这里保存的所有用户启动的JAVA进程. 这些都JAVA进程的PID,里面存放的是JVM进程信息.你所用的jsp ...

随机推荐

  1. 分治 FFT学习笔记

    先给一道luogu板子题:P4721 [模板]分治 FFT 今天模拟有道题的部分分做法是分治fft,于是就学了一下.感觉不是很难,国赛上如果推出式子的话应该能写出来. 分治fft用来解决这么一个式子\ ...

  2. TensorFlow(八):tensorboard可视化

    import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data from tensorflow.c ...

  3. fasttext模型 训练THUCNews

    # _*_coding:utf-8 _*_ import fasttext import jieba from sklearn import metrics import random def rea ...

  4. Arts打卡第6周

    Algorithm.主要是为了编程训练和学习. 每周至少做一个 leetcode 的算法题(先从Easy开始,然后再Medium,最后才Hard). 进行编程训练,如果不训练你看再多的算法书,你依然不 ...

  5. legend3---16、网站的安全性问题

    legend3---16.网站的安全性问题 一.总结 一句话总结: 通过客户端传递参数的方式也是有些危险,需要注意 单纯的获取数据的方法还好,但是 修改数据库方法一定要同时做前后端验证 1.php的b ...

  6. SQLite3中的日期时间函数使用小结

    代码如下: import sqlite3conn = sqlite3.connect('/tmp/sqlite.db')cur = conn.cursor() 接下来干嘛呢?建一张表吧.这里需要注意的 ...

  7. Linux系统中rm删除命令

    rm命令 1.可以删除一个目录中的一个或多个文件或目录 2.可以将某个目录及其下属的所有文件及其子目录均删除掉 3.对于链接文件,只是删除整个链接文件,而原有文件保持不变 语法 rm (选项)(参数) ...

  8. MSP与PSP

    摘抄自Triton.zhang——eeworld 1. MSP和PSP 的含义是Main_Stack_Pointer 和Process_Stack_Pointer,在逻辑地址上他们都是R13 2. 权 ...

  9. 使用ConstraintLayout(约束布局)构建响应式UI

    使用ConstraintLayout(约束布局)构建响应式UI 转 https://www.300168.com/yidong/show-2740.html     核心提示:ConstraintLa ...

  10. springboot之多模块化项目打包

    1.目录结构 2.打成war包,只需在web子项目中的pom文件中添加 <packaging>war</packaging> <build> <!-- 为ja ...