`
david.org
  • 浏览: 155219 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Linux 如何查看进程的各线程的CPU占用

阅读更多
http://www.iteye.com/topic/283992 此文很好很强大,对于爪哇应用来说,估计不能这样搞,我找遍javadoc,没发现可以提供这种手段的方法函数。

不过我们可以转个弯,试试这样做:

1 先用ps + grep找出该死的进程pid,比如 30420
2 top -H -p 30420,所有该进程的线程都列出来了。看看哪个线程pid占用最多,然后将这个pid转换为16进制,如 44bf,注意要小写
3 jstack 30420 | less,然后查找 nid=0x44bf,哦,找到了
"main" prio=10 tid=0x0000000053911400 nid=0x44bf runnable [0x0000000040f5c000..0x0000000040f5ced0] 
   java.lang.Thread.State: RUNNABLE 
        at java.net.SocketInputStream.socketRead0(Native Method) 
        at java.net.SocketInputStream.read(SocketInputStream.java:129) 
        at java.net.SocketInputStream.read(SocketInputStream.java:182) 
        at com.caucho.server.resin.Resin.waitForExit(Resin.java:524) 
        at com.caucho.server.resin.Resin.main(Resin.java:614)

p.s 严重提示:jstack操作有风险,使用虚谨慎,俺不止一次执行jstack操作导致jvm退出,不知为啥,rp啊rp。。。本来使用JMX会安全一些的,但是翻遍ThreadInfo的doc,没有找到有关的方法
2
0
分享到:
评论

相关推荐

    可以查看多线程cpu占用率的工具

    用在嵌入式linux平台上,通常busybox的top无法看到多线程应用的每个线程的cpu占用率,特地编写了这个小工具.

    C++获取特定进程CPU使用率的实现代码

    写一个小程序在后台记录每个进程的CPU使用情况,揪出锁屏后占用CPU的进程,于是自己写了一个C++类CPUusage,方便地监视不同进程的CPU占用情况。本人编程还只是个新手,如有问题请多多指教

    Linux操作系统性能监测:CPU篇

    这里 VPSee 用个例子来简单介绍一下这些概念和他们的关系,CPU 很无辜,是个任劳任怨的打工仔,每时每刻都有工作在做(进程、线程)并且自己有一张工作清单(可运行队列),由老板(进程调度)来决定他该干什么,他需要和...

    记一次tomcat进程cpu占用过高的问题排查记录

    linux系统下,一个tomcat web服务的cpu占用率非常高,top显示结果超过200%。请求无法响应。反复重启依然同一个现象。 问题排查 1、获取进程信息 通过jdk提供的jps命令可以快速查出jvm进程, jps pid 2、查看...

    多核线程绑定

    创建一个线程,并将该线程绑定到多核cpu中,不占用主线程的资源,这样可以在所开的线程中做一些动作,不会影响主线程中的动作。应用:客户将所有的刷新动作交给主线程完成时,可能拖动鼠标,窗口均在不断的刷新,CPU...

    window和linux和android进程内存CPU等监控软件

    1.面向window和linux和android三个平台。 2.线程可监控物理内存,虚拟内存,CPU和GPU等占用情况。 3.输出结果保存为exls或者csv可进行图形化分析。

    Linux系统设计-linux 系统资源监控库,监控进程占用的CPU、内存、磁盘IO、网络IO

    Linux系统是一个免费使用和自由传播的类Unix操作系统,基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux是许多企业...

    Linux中使用Shell脚本查看Java线程的CPU使用情况

    线上Java应用,在业务高峰期的时候经常出现CPU跑高,需要查看实时的线程占用cpu情况,下面是一个很好用的脚本,可以快速导出每个线程的占用CPU情况,结合jstack日志,排查到具体的线程类名。 一、首先获得jvm的进程...

    c语言查看cpu使用率

    平台:linux。 语言:c。 功能:查看当前系统cpu使用率(可多核),1秒刷新一次。

    一种CPU占用过高的故障定位分析方法

     CPU占用过高是LINUX服务器出现常见的一种故障,也是程序员线上排查错误必须掌握的技能,我们经常需要找出相应的应用程序并快速地定位程序中的具体代码行数,本文将介绍一种CPU占用过高的一种处理思路,文中采用四...

    Linux系统中CPU占用率较高问题排查思路与解决方法

    前言 作为 Linux 运维工程师,在...找到占用CPU过高的进程的pid 第二步:使用 top -H -p [进程id] 找到进程中消耗资源最高的线程的id 第三步:使用 echo ‘obase=16;[线程id]’ | bc或者printf “%x\n” [线程id

    Linux Source Monitor(CPU、Mem、IO、Net) (linux 系统资源监控库

    Linux Source Monitor(CPU、Mem、IO、Net) (linux 系统资源监控库,监控进程占用的CPU、内存、磁盘IO、网络IO)所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一...

    linux优化笔记

    在linux系统下只有运行SMP内核才能支持超线程,但是安装的CPu数量越多,从超线程获得的性能提升越少。 另外linux内核会将多核的处理器当做多个单独的CPU来识别,例如,两个4核的CPU会被当成8个单个CPU,从性能角度讲...

    Oracle数据库CPU使用率过高处理记录

    因此希望找到占用CPU较高的进程ID(UNIX或LINUX)或线程ID(Windows)来找到对应的SQL语句,以分析问题的原因。  三、处理步骤  1. 下载process explorer工具,用于查看Windows环境下的进程和线程信息。  ...

    linux多线程编程(五)

     线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。可以把线程看成是操作系统分配CPU时间的基本单元。一个进程可以拥有一个至多个线程。它线程在进程内部共享地址空间、打开的文件描述符等资源。同时...

    linux vps服务器进程kswapd0与events/0消耗大量CPU的问题

    下面的图可以看到,mysql 占用了很大部分的 CPU 使用。apache 单个进程虽然占得不多,但有不少个 apache 进程同时存在,也消耗了不少 CPU 的使用。 当然,这些不足以让服务器的 CPU 直接跑满挂掉,后来发现了两个...

    Linux下高CPU解决方案

     gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14094 root 15 0 315m 10m 7308 S 891% 2.2 1:49.01 ...

    一个进程池的服务器程序

    3,各个子进程accept(listenfd),即所有子进程竞争accept请求。由于listenfd是在fork之前就有的,所以所有子进程都可以访问到,不需用到“进程间文件描述符传递”问题; 4,子进程每accept到一个请求都告诉父进程,...

    操作系统课件和实验

    1)命令执行占用的CPU时间(包括用户态和系统态时间,以毫秒为单位), 2)命令执行的时间, 3)进程被抢占的次数, 4)进程主动放弃CPU的次数, 5)进程执行过程中发生缺页的次数 2.在linux中实现一个简单的命令解释...

    linux操作系统培训资料.pptx

    内容摘要 Linux基础 Linux常用操作命令 Linux设备管理 Linux文件管理 Linux进程调度 Linux多线程编程 Linux进程间通信 linux操作系统培训资料全文共28页,当前为第2页。 Linux基础 操作系统的概念 操作系统是管理...

Global site tag (gtag.js) - Google Analytics