1、top命令查看过高cpu的pid,命令:top
[root@test-v3 bin]# top top - 16:44:22 up 173 days, 7:05, 2 users, load average: 0.74, 0.71, 0.61 tasks: 150 total, 1 running, 149 sleeping, 0 stopped, 0 zombie cpu(s): 0.8%us, 0.4%sy, 0.0%ni, 98.1%id, 0.0%wa, 0.0%hi, 0.0%si, 0.7%st mem: 8061116k total, 7924856k used, 136260k free, 234996k buffers swap: 4194300k total, 383972k used, 3810328k free, 1191756k cached pid user pr ni virt res shr s %cpu %mem time command 949 root 20 0 3576m 622m 9852 s 3.3 7.9 1194:48 java 5485 root 20 0 3327m 688m 9804 s 3.3 8.8 1769:07 java 980 root 20 0 3460m 692m 10m s 3.0 8.8 1834:53 java 1012 root 20 0 3393m 668m 10m s 3.0 8.5 1824:38 java 14017 root 20 0 2841m 393m 9564 s 2.7 5.0 2079:06 java 1042 root 20 0 3522m 725m 9m s 0.7 9.2 366:09.83 java
2、定位线程,命令:ps -mp pid -o thread,tid,time | sort -rn
[root@test-v3 bin]# ps -mp 949 -o thread,tid,time | sort -rn user %cpu pri scnt wchan user system tid time root 3.2 19 - futex_ - - 31587 13:37:04 root 2.5 - - - - - - 19:55:11 root 0.1 19 - futex_ - - 1849 01:14:46
3、将线程id转为 16进制格式,命令:printf "%x\n" tid
[root@test-v3 bin]# printf "%x\n" 31587 7b63
4、打印堆栈信息 ,命令:jstack pid |grep 十六进制格式tid -a 10
其中-a 10表示查找到所在行的后10行。
[root@test-v3 bin]# cd /usr/java/jdk1.7.0_80/bin [root@test-v3 bin]# ./jstack 949 |grep 7b63 -a 30 "system clock" daemon prio=10 tid=0x00007f42904b0800 nid=0x7b63 runnable [0x00007f41f6084000] java.lang.thread.state: timed_waiting (parking) at sun.misc.unsafe.park(native method) - parking to wait for <0x00000000eca553a8> (a java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject) at java.util.concurrent.locks.locksupport.parknanos(locksupport.java:226) at java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject.awaitnanos(abstractqueuedsynchronizer.java:2082) at java.util.concurrent.scheduledthreadpoolexecutor$delayedworkqueue.take(scheduledthreadpoolexecutor.java:1090) at java.util.concurrent.scheduledthreadpoolexecutor$delayedworkqueue.take(scheduledthreadpoolexecutor.java:807) at java.util.concurrent.threadpoolexecutor.gettask(threadpoolexecutor.java:1068) at java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1130) at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) at java.lang.thread.run(thread.java:745) "http-bio-8084-exec-10" daemon prio=10 tid=0x00007f422c011000 nid=0x210 waiting on condition [0x00007f41f6684000] java.lang.thread.state: waiting (parking) at sun.misc.unsafe.park(native method) - parking to wait for <0x00000000ec542870> (a java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject) at java.util.concurrent.locks.locksupport.park(locksupport.java:186) at java.util.concurrent.locks.abstractqueuedsynchronizer$conditionobject.await(abstractqueuedsynchronizer.java:2043) at java.util.concurrent.linkedblockingqueue.take(linkedblockingqueue.java:442) at org.apache.tomcat.util.threads.taskqueue.take(taskqueue.java:104) at org.apache.tomcat.util.threads.taskqueue.take(taskqueue.java:32) at java.util.concurrent.threadpoolexecutor.gettask(threadpoolexecutor.java:1068) at java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1130) at java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) at org.apache.tomcat.util.threads.taskthread$wrappingrunnable.run(taskthread.java:61) at java.lang.thread.run(thread.java:745) "http-bio-8084-exec-9" daemon prio=10 tid=0x00007f422c00f800 nid=0x7229 waiting on condition [0x00007f41f6785000] java.lang.thread.state: waiting (parking) at sun.misc.unsafe.park(native method)
相关推荐
因此对于doris来说其实主要的内存和cpu的使用主要集中在be,但是实际运行环境中偶尔也会出现有的同学线上fe环境出现内存使用过高的问题。并且这种情况可能只出现在线上特点的环境上,想要线下复现难度很大,这个是时候...
因此对于doris来说其实主要的内存和cpu的使用主要集中在be,但是实际运行环境中偶尔也会出现有的同学线上fe环境出现内存使用过高的问题。并且这种情况可能只出现在线上特点的环境上,想要线下复现难度很大,这个是时候...
java的分析工具有:1.visualvm,java应用程序性能分析和运行监控工具;...arthas是一个java诊断工具,其采用命令行交互模式,提供了tab键自动补全功能,且支持jdk 6 ,可以自动检测存在的java进程。
功能说明一键式收集java进程的问题定位信息,包括:thread stack和heap dump等。监控java进程使用的cpu,当占用率过高时,自动收集top信息和thread stack。启动、停止、查询、导出飞行记录。使用方法将工具上传到...
linux系统下,java进程使用cpu高,可利用此脚本抓取java进程的那个线程使用cpu高,集合thread dump,找到cpu高的线程编号来定位程序代码。使用方法 sh check_higcpu.sh $pid
java局域网通信——飞鸽传书源代码,大家都知道vb版、vc版还有delphi版的飞鸽传书软件,但是java版的确实不多,因此这个java文件传输实例不可错过,java网络编程技能的提升很有帮助。 java聊天程序,包括服务端和...
java 源码包 applet钢琴模拟程序java源码 2个目标文件,提供基本的音乐编辑功能。编辑音乐软件的朋友,这款实例会对你有所帮助。 calendar万年历 1个目标文件 ejb 模拟银行atm流程及操作源代码 6个目标文件,ejb来...
说明:用于快速排查java的cpu性能问题(top us值过高),自动查出运行的java进程中消耗cpu多的线程,并打印出其线程栈,从而确定导致性能问题的方法调用。
单线程问题定位: 根据进程pid列线程列表top -hp pid; jstack 打印占用资源较多线程代码位置 多线程问题定位:jstack快照所有线程;dump导出;使用jvisualvm分析dump文件 jvm分析:日志开启;gc日志打印;gc...
memoryanalyzer可以分析java进程内存情况,比如每个对象占用内存情况,对象个数,占用百分比,可依此分析后定位到代码哪里不合理; jemter用作压力测试,就是测试系统能够支撑的并发数 jvisualvm是jdk自带工具,...
apt提供了cpu利用率实时曲线图 多维度内存实时曲线图 方便竞品对比测试和定位内存泄露问题;支持进程内存构成分析 支持手工或超过阈值时自动转储 dump 详细堆内存对象信息 支持多进程 支持生成和导出常用格式的的...
支持采集整个系统或指定进程(包括运行中的进程或直接启动的进程)的cpu cycles性能事件,能够快速定位到热点函数,包括应用程序函数、模块函数与内核函数,甚至能够定位到热点指令。 支持热点函数按照cpu核/...
此命令通过结合linux操作系统的ps命令和jvm自带的jstack命令,查找java进程内cpu利用率最高的线程,一般适用于服务器负载较高的场景,并需要快速定位导致负载高的原因。
这样的需求可以说很常见,比如定位死锁,定位一个不工作的线程到底卡在哪里,或者定位为什么 cpu 居高不下等等问题。 现在工作中我用的是 python,需要线上问题定位的缘故,也有了类似的需求——想要知道当前的 ...
java性能定位工具,java -jar arthas-boot.jar启动后选择需要定位的进程序号,然后 最消耗cpu的线程 thread -n 3 收集 5 秒, 然后输出 top 5 的 cpu 消耗的线程 thread -n 5 -i 5000 trace 命令查看方法内各调用...
多进程下为了解决内存地址覆盖的问题,需要记录每个程序的起始地址(基址寄存器),遇到与地址有关的指令,都要把地址加上基址寄存器的值,才是真实地址 分时系统 如果一个进程耗时很长,必须让出cpu去执行其他程序...
� 采用了对有限内存、电池和 cpu 优化过的虚拟机 dalvik , android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...
那就必须采用更加专业的工具来抓取出现问题的程序,主要是程序中执行效率很低的sql语句,weblogic可以采用introscope定位,期间可以注意观察一下jvm的垃圾回收情况看是否正常,我在实践中并发500用户和600用户时曾...
共20个目标文件,cpu管理、内存管理、文件操作、进程监视管理、获取机子信息……等等。 10、android触摸界面产生气泡的源码 如题,共1个目标文件。 11、android读写文件源码 共1个目标文件,文件操作! 12、...