`
zhoushijun
  • 浏览: 267558 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

分析JAVA应用CPU占用过高的问题

阅读更多

使用jstack分析java程序cpu占用率过高的有关问题
使用jstack分析java程序cpu占用率过高的问题
1,使用jps查找出java进程的pid,如3707

2,使用top -p 14292 -H观察该进程中所有线程的CPU占用。

[root@cp01-game-dudai-0100.cp01.baidu.com ~]# top -p 14292 -H  
top - 22:14:13 up 33 days,  7:29,  4 users,  load average: 25.68, 32.11, 33.76  
Tasks: 113 total,   2 running, 111 sleeping,   0 stopped,   0 zombie  
Cpu(s): 68.3%us,  6.3%sy,  0.0%ni, 20.2%id,  0.1%wa,  0.2%hi,  4.9%si,  0.0%st  
Mem:  65965312k total, 65451232k used,   514080k free,    82164k buffers  
Swap:   975864k total,   972052k used,     3812k free,  9714400k cached  
  
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                                                         
15844 root      15   0 6889m 5.7g 4864 S 20.6  9.1 814:13.29 java                                                                                                                                                                            
15848 root      15   0 6889m 5.7g 4864 S 13.0  9.1 460:25.17 java                                                                                                                                                                            
15611 root      15   0 6889m 5.7g 4864 S 12.7  9.1 468:17.77 java                                                                                                                                                                            
15613 root      15   0 6889m 5.7g 4864 S 11.7  9.1 479:40.45 java                                                                                                                                                                            
15743 root      15   0 6889m 5.7g 4864 S 11.7  9.1 443:04.80 java                                                                                                                                                                            
15612 root      15   0 6889m 5.7g 4864 S 11.0  9.1 453:43.68 java                                                                                                                                                                            
15965 root      15   0 6889m 5.7g 4864 S 10.3  9.1 371:00.33 java                                                                                                                                                                            
15490 root      15   0 6889m 5.7g 4864 S  7.7  9.1 255:32.74 java                                                                                                                                                                            
15587 root      15   0 6889m 5.7g 4864 S  7.3  9.1 282:27.58 java                                                                                                                                                                            
15590 root      15   0 6889m 5.7g 4864 S  7.3  9.1 205:48.37 java                                                                                                                                                                            
15491 root      15   0 6889m 5.7g 4864 R  6.3  9.1 279:09.08 java                                                                                                                                                                            
15689 root      15   0 6889m 5.7g 4864 S  5.7  9.1 251:42.36 java                                                                                                                                                                            
16935 root      15   0 6889m 5.7g 4864 S  5.7  9.1 190:34.37 java                                                                                                                                                                            
15665 root      15   0 6889m 5.7g 4864 S  5.3  9.1 250:07.34 java                                                                                                                                                                            
16920 root      15   0 6889m 5.7g 4864 S  5.3  9.1 241:34.50 java                                                                                                                                                                            
15671 root      15   0 6889m 5.7g 4864 S  5.0  9.1 239:49.97 java                                                                                                                                                                            
15492 root      15   0 6889m 5.7g 4864 S  4.7  9.1 210:23.09 java                                                                                                                                                                            
14322 root      16   0 6889m 5.7g 4864 S  4.3  9.1 107:39.61 java                                                                                                                                                                            
14316 root      16   0 6889m 5.7g 4864 S  4.0  9.1 107:18.43 java                                                                                                                                                                            
14317 root      16   0 6889m 5.7g 4864 S  4.0  9.1 107:29.13 java                                                                                                                                                                            
15591 root      15   0 6889m 5.7g 4864 S  4.0  9.1 114:34.90 java                                                                                                                                                                            
14313 root      16   0 6889m 5.7g 4864 S  3.7  9.1 107:12.70 java                                                                                                                                                                            
14314 root      15   0 6889m 5.7g 4864 S  3.7  9.1 107:28.05 java                                                                                                                                                                            
14319 root      16   0 6889m 5.7g 4864 S  3.7  9.1 107:27.43 java                                                                                                                                                                            
14321 root      15   0 6889m 5.7g 4864 S  3.3  9.1 108:01.12 java                                                                                                                                                                            
15589 root      15   0 6889m 5.7g 4864 R  3.0  9.1 109:01.91 java                                                                                                                                                                            
15615 root      15   0 6889m 5.7g 4864 S  3.0  9.1 114:55.29 java                                                                                                                                                                            
16808 root      15   0 6889m 5.7g 4864 S  2.7  9.1 279:05.03 java                                                                                                                                                                            
14315 root      15   0 6889m 5.7g 4864 S  2.0  9.1 107:45.00 java                                                                                                                                                                            
14320 root      15   0 6889m 5.7g 4864 S  2.0  9.1 107:48.30 java                                                                                                                                                                            
15489 root      15   0 6889m 5.7g 4864 S  1.7  9.1  57:38.46 java                                                                                                                                                                            
15670 root      15   0 6889m 5.7g 4864 S  1.3  9.1   5:55.43 java                                                                                                                                                                            
14318 root      15   0 6889m 5.7g 4864 S  0.7  9.1 107:45.88 java                                                                                                                                                                            
14826 root      15   0 6889m 5.7g 4864 S  0.7  9.1  25:07.64 java   

 

3,找出CPU消耗较多的线程id,如15844,将15844转换为16进制0x3de4,注意是小写哦
4,使用jstack 14292|grep -A 10 0x3de4来查询出具体的线程状态。

    [root@cp01-game-dudai-0100.cp01.baidu.com ~]# jstack 14292|grep -A 10 0x3de4  
    "pool-52-thread-1" prio=10 tid=0x000000005a08e000 nid=0x3de4 waiting on condition [0x00002ae63d917000]  
       java.lang.Thread.State: WAITING (parking)  
            at sun.misc.Unsafe.park(Native Method)  
            - parking to wait for  <0x00000006f9a0a110> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)  
            at java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)  
            at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987)  
            at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)  
            at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)  
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)  
            at java.lang.Thread.run(Thread.java:662)  

 

通过这些线程状态便可基本定位问题之所在。

 

分享到:
评论
1 楼 ykdsg 2016-07-05  
通过这些线程状态便可基本定位问题之所在,请问怎么定位?

相关推荐

    java应用cpu占用过高问题分析及解决方法

    主要介绍了java应用cpu占用过高问题分析及解决方法,具有一定参考价值,需要的朋友可以参考下。

    Java进程CPU使用率高排查

    近期java应用,CPU使用率一直很高,经常达到,通过以下步骤完美解决,分享一下。  1.jps 获取Java进程的PID。  2.jstack pid &gt;&gt; java.txt 导出CPU占用高进程的线程栈。  3.top -H -p PID 查看对应进程的哪个...

    java 通过jni查看windows的CPU利用率的问题

    博文链接:https://huangpengxiao.iteye.com/blog/96670

    JAVA性能瓶颈和漏洞检测

    计算运行时间或CPU时间占用:跟踪用户体验或计算瓶颈; 9种指标:多角度确定问题根源; 高级过滤和触发器:确定要诊断分析的关键代码区域; 快照对比技术:预测代码修改对性能的影响; 高级打印和输出功能:支持...

    Java实时应用程序中的内存管理

    通常,Java运行时会遍历堆,检查不再被其他对象引用、从而可以安全删除的对象,然而,由于垃圾收集占用CPU周期,所以它可能会影响应用程序代码的执行。实时应用程序有严格的时间要求,即它们必须在确定的、已知的...

    Java实现和维护系统详解.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。只有到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且...

    Java行为参数化功能详解.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java规约和汇总.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java控制流指令解决问题.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java分区功能详解.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。只有到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且...

    java收集器用做高级货归约.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java流和过滤器的性能.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。只有到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且...

    Java新接口,可分迭代器spliterator.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java筛选和切片.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java分支与合并框架详解.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。只有到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且...

    通过日志监控并收集Java应用程序性能数据

    针对JVM的CPU使用及内存占用的性能分析,已经有各种剖析(Profiling)工具可供使用。但是如果想要得具体的调用栈,这些工具往往会给应用程序服务器增加大量额外压力。Perf4j则是通过对自定义监控范围进行日志记录,再...

    Java映射功能使用.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    JAVA性能瓶颈和漏洞检测.JProbe.Suite.v7.0.part2

    计算运行时间或CPU时间占用:跟踪用户体验或计算瓶颈; 9种指标:多角度确定问题根源; 高级过滤和触发器:确定要诊断分析的关键代码区域; 快照对比技术:预测代码修改对性能的影响; 高级打印和输出功能:支持...

    Java Lambda 环绕执行模式.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且判断出...

    Java lambda表达式和JVM字节码功能详解.pdf

    CPU 使用率、I/O 延迟、系统整体的吞吐量都必须测量和分析。只有到那时,我们才能判定到底是哪个组件导致了性能瓶颈。关于这个主题有大量优秀的资源,相关的方法和工具也不只针对Java。假定你已经完成了分析,并且...

Global site tag (gtag.js) - Google Analytics