$ps -Lp 179093 cu | more

USER        PID    LWP %CPU NLWP %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
admin 179093 179093 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:00 java
admin 179093 179097 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:01 java
admin 179093 179100 0.0 383 54.5 5803448 4572012 ? Sl Aug05 8:43 java
admin 179093 179101 0.0 383 54.5 5803448 4572012 ? Sl Aug05 8:43 java
admin 179093 179102 0.0 383 54.5 5803448 4572012 ? Sl Aug05 8:44 java
admin 179093 179103 0.0 383 54.5 5803448 4572012 ? Sl Aug05 8:45 java
admin 179093 179104 0.0 383 54.5 5803448 4572012 ? Sl Aug05 2:21 java
admin 179093 179105 0.0 383 54.5 5803448 4572012 ? Sl Aug05 55:50 java
admin 179093 179106 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:03 java
admin 179093 179107 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:15 java
admin 179093 179108 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:00 java
admin 179093 179109 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:00 java
admin 179093 179110 0.0 383 54.5 5803448 4572012 ? Sl Aug05 1:02 java
admin 179093 179111 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:58 java
admin 179093 179112 0.0 383 54.5 5803448 4572012 ? Sl Aug05 0:00 java
admin 179093 179113 0.0 383 54.5 5803448 4572012 ? Sl Aug05 29:21 java ......

$printf "%x\n" 179105

2bba1


$jstack -l 179093 > jstack.log

$vi jstack.log

search 2bba1

"Reference Handler" daemon prio=10 tid=0x00002aaaab073800 nid=0x2bba2 in Object.wait() [0x00000000405cd000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
- locked <0x0000000772d40fd8> (a java.lang.ref.Reference$Lock) Locked ownable synchronizers:
- None "main" prio=10 tid=0x00002aaaab072000 nid=0x2bb99 runnable [0x0000000041e45000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:530)
at java.net.ServerSocket.accept(ServerSocket.java:498)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:466)
at org.apache.catalina.startup.Catalina.await(Catalina.java:787)
at org.apache.catalina.startup.Catalina.start(Catalina.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:320)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454) Locked ownable synchronizers:
- None "VM Thread" prio=10 tid=0x00002aaaab10d000 nid=0x2bba1 runnable "Gang worker#0 (Parallel GC Threads)" prio=10 tid=0x00002aaaab108800 nid=0x2bb9c runnable "Gang worker#1 (Parallel GC Threads)" prio=10 tid=0x00002aaaab109800 nid=0x2bb9d runnable "Gang worker#2 (Parallel GC Threads)" prio=10 tid=0x00002aaaab10a000 nid=0x2bb9e runnable "Gang worker#3 (Parallel GC Threads)" prio=10 tid=0x00002aaaab10a800 nid=0x2bb9f runnable "Concurrent Mark-Sweep GC Thread" prio=10 tid=0x00002aaaab10c000 nid=0x2bba0 runnable
"VM Periodic Task Thread" prio=10 tid=0x00002aaaab10d800 nid=0x2bba9 waiting on condition JNI global references: 343 ......

here is a script:

#!/bin/sh
# write by : oldmanpushcart@gmail.com
# date : 2014-01-16
# version : 0.07
typeset top=${1:-10}
typeset pid=${2:-$(pgrep -u $USER java)}
typeset tmp_file=/tmp/java_${pid}_$$.trace /opt/taobao/java/bin/jstack $pid > $tmp_file
ps H -eo user,pid,ppid,tid,time,%cpu --sort=%cpu --no-headers\
| tail -$top\
| awk -v "pid=$pid" '$2==pid{print $4"\t"$6}'\
| while read line;
do
typeset nid=$(echo "$line"|awk '{printf("0x%x",$1)}')
typeset cpu=$(echo "$line"|awk '{print $2}')
awk -v "cpu=$cpu" '/nid='"$nid"'/,/^$/{print $0"\t"(isF++?"":"cpu="cpu"%");}' $tmp_file
done rm -f $tmp_file

java cpu load的更多相关文章

  1. Linux内核分析:页回收导致的cpu load瞬间飙高的问题分析与思考--------------蘑菇街技术博客

    http://mogu.io/156-156 摘要 本文一是为了讨论在Linux系统出现问题时我们能够借助哪些工具去协助分析,二是讨论出现问题时大致的可能点以及思路,三是希望能给应用层开发团队介绍一些 ...

  2. cpu load过高问题排查

    load average的概念 top命令中load average显示的是最近1分钟.5分钟和15分钟的系统平均负载. 系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少 ...

  3. linux loadavg详解(top cpu load)

    目录 [隐藏] 1 Loadavg分析 1.1 Loadavg浅述 1.2 Loadavg读取 1.3 Loadavg和进程之间的关系 1.4 Loadavg采样 2 18内核计算loadavg存在的 ...

  4. CPU利用率和CPU负荷(CPU usage vs CPU load)

    对于CPU的性能监测,通常用top指令能显示出两个指标:cpu 利用率和cpu负荷. 其中%Cpu相关的内容: us表示用户进程cpu利用率,sy表示系统内核进程cpu利用率,ni表示运行正常进程消耗 ...

  5. 浅谈cpu.idle和cpu.load

    1.概述 大家经常对一个系统的容量进行评估时,会参考cpu.idle和cpu.load指标,但是这两个指标到底在什么区间,表示系统是正常或者异常呢,业内有不同的说法.因此本文搜集一些资料,并对一个系统 ...

  6. CPU load高而使用率低的问题分析

    最近服务器上出现了一个很诡异的问题,症状如下图所示: 查看进程发现: 如上图所示,非常多的df -h进程没有退出.于是手工kill掉这些 df -h进程.cpu load恢复正常. 至于为什么会有这么 ...

  7. Java死锁排查和Java CPU 100% 排查的步骤整理

    ================================================= 人工智能教程.零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助! 点击查看高清无码教程 == ...

  8. 理解linux cpu load - 什么时候应该担心了

    译文原文: http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages 你可能已经很熟悉linux的平均load. ...

  9. Linux CPU Load Average

    理解Linux系统负荷 LINUX下CPU Load Average的一点研究 Linux load average负载量分析与解决思路 Understanding Linux CPU Load - ...

随机推荐

  1. 深入学习JavaScript对象

    JavaScript中,除了五种原始类型(即数字,字符串,布尔值,null,undefined)之外的都是对象了,所以,不把对象学明白怎么继续往下学习呢? 一.概述 对象是一种复合值,它将很多值(原始 ...

  2. 接口是干爹, 继承是亲爹 ---JAVA

    接口(interface)是干爹, 因为你可以有很多很多的干爹爹... 继承(extends)是亲爹, 因为你只能有一个父类, 只有一个亲生的父亲. 单继承,多接口?./>./..

  3. 读数据库表填充DataTable

    我一般用的有2中方法: 1.数据填充 string sqlcmd="select * from table"; SqlDataAdapter adapder = new SqlDa ...

  4. Base64把图片、文件转码成字符串(互转)

    文件Base64以后会翻倍的涨,例如一张52kb的图片 base64以后string文件大小为185kb,在通过string转回图片为135kb   图片转文字: UIImage *_originIm ...

  5. ASP.net 服务器监控

    参考代码: 1,页面 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="SMP ...

  6. 认识position=fixed

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期2014-01-13) position=fixed是相对于浏览器边框的位置.

  7. libcurl API:CURLOPT_REFERER的用法

    1.当你用libcurlAPI来请求某些数据时,发现返回的数据是0,这时候你就要去尝试用CURLOPT_REFERER来伪造一个来路页面:具体设置什么值可以通过浏览器来获取:按f12,在network ...

  8. cocos2d_x iconv转码

    作者:何卫 转载请注明,原文链接:http://www.cnblogs.com/hewei2012/p/3374147.html iconv下载(Android) 源码下载地址,已编译完的iconv包 ...

  9. javascrpt随笔

    function member(name, gender) { this.name = name; this.gender = gender; this.display = display; //指定 ...

  10. Java多线程技术学习笔记(二)

    目录: 线程间的通信示例 等待唤醒机制 等待唤醒机制的优化 线程间通信经典问题:多生产者多消费者问题 多生产多消费问题的解决 JDK1.5之后的新加锁方式 多生产多消费问题的新解决办法 sleep和w ...