java cpu100 解决办法_[Java] CPU 100% 原因查找解决

CPU 100%肯定是出现死锁,这个时候观察内存还是够用的,但是CPU一直100%,以下几步解决:

1. 找到进程消耗cpu最大的

$top

top - :: up days, :, user, load average: 0.75, 0.60, 0.53

Tasks: total, running, sleeping, stopped, zombie

Cpu(s): 11.6%us, 7.0%sy, 0.0%ni, 81.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st

Mem: 8388608k total, 8381460k used, 7148k free, 0k buffers

Swap: 1999864k total, 0k used, 1999864k free, 4089340k cached

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

admin - 5631m .0g 102m S : java

2. 打出进程中线程占用情况:

$top -p -H

top - :: up days, :, user, load average: 0.63, 0.59, 0.54

Tasks: total, running, sleeping, stopped, zombie

Cpu(s): 0.7%us, 0.3%sy, 0.0%ni, 98.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.2%st

Mem: 8388608k total, 8382160k used, 6448k free, 0k buffers

Swap: 1999864k total, 0k used, 1999864k free, 4089636k cached

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

admin - 5631m .0g 102m S :21.02 java

admin - 5631m .0g 102m S :56.39 java

3. dump文件:

$ jstack > Desktop/jstack.log

4. 找到#2步的PID对应的16进制

$printf %x

269d6

5. 在#3的dump文件中找到#4对应的线程堆栈(0x269d6):

zhangdeMacBook-Air:~ zhang$ more Desktop/jstack.log

2016-07-17 11:45:20

Full thread dump Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode):

"Attach Listener" daemon prio=5 tid=0x00007f9aab82a800 nid=0x580b waiting on condition [0x0000000000000000]

java.lang.Thread.State: RUNNABLE

"SocketConnectorIoProcessor-0.2" daemon prio=5 tid=0x00007f9aab43b800 nid=0x7003 runnable [0x00000001699a4000]

java.lang.Thread.State: RUNNABLE

at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)

at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:200)

at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:103)

at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)

- locked <0x00000001585a8078> (a sun.nio.ch.Util$2)

- locked <0x00000001585a8088> (a java.util.Collections$UnmodifiableSet)

- locked <0x00000001585a8028> (a sun.nio.ch.KQueueSelectorImpl)

at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)

at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(SocketIoProcessor.java:480)

at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

at java.lang.Thread.run(Thread.java:745)

6. 结合dump和代码分析问题原因,一般都能找到原因

Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u …

Java并发编程:Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector.ArrayList在迭代的时候如果同时对其进行修改就会抛出java.u …

【转】Java ConcurrentModificationException异常原因和解决方法

原文网址:http://www.cnblogs.com/dolphin0520/p/3933551.html Java ConcurrentModificationException异常原因和解决方法 …

what linux java cpu 100% ?

1.用top找到最耗资源的进程id [ bin]# toptop – 16:56:14 up 119 days, 6:17, 7 users, load average: 2.04, 2.07, 2. …

linux java cpu 100%

1.用top找到最耗资源的进程id [ bin]# toptop – 16:56:14 up 119 days, 6:17, 7 users, load average: 2.04, 2.07, 2. …

w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法

对于IIS 管理员来说,经常会碰到 Web 服务器 CPU 占用 100% 的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析 w3wp.exe(IIS )  占用 CPU 100% 的一些 …

SQL Server Cpu 100% 的常见原因及优化

SQL Server Cpu 100% 的情况并不太常见,一般引起 SQL Server 产生性能问题的,都是 阻塞.连接数.IO 磁盘等.所以,一般SQL Server 的使用率都是比较低的.但是, …

atitit.为什么java体系开发效率这样低的原因and解决

atitit.为什么java体系开发效率这样低的原因and解决 #—开发理念问题(影响度:很大的,2-3倍效率) mvc<>webform server control ajax< …

[项目机会]citrix 虚拟桌面对于java等高CPU占用率如何解决

citrix 虚拟桌面对于java等高CPU占用率如何解决 问题1:java等客户端对于虚拟桌面cpu影响较大,但是有些用户的确需要使用java支持的程序,是否可以通过其他途径来解决? 问题2:对于其 …

随机推荐

在开源中国(oschina)git中新建标签(tags)

我今天提交代码到主干上面,本来想打个标签(tags)的. 因为我以前新建过标签(tags),但是我现在新建的时候不知道入库在哪了.怎么找也找不到了. 从网上找资料也没有,找客服没有人理我,看到一个交流 …

ABP源码分析四十一:ZERO的Audit,Setting,Background Job

AuditLog: 继承自Entity的实体类.封装AuditLog的信息. AuditingStore: 实现了IAuditingStore接口,实现了将AuditLog的信 …

记录一次Quartz2D学习(二)

(一)内主要就是讲了线条的绘制以及绘制状态的保存与恢复 本次就讲一些图形的画法 2 图形的绘制 2.1  三角形的绘制 :(就是绘制三条线) – (void)drawRect:(CGRect)rect …

tomcat -ROOT 与webapps 的关系,关于部署的一些问题

现象:之前遇到很奇怪的问题,发完版之后没有效果,页面还是读取上一版的. 反复查找原因发现  http://localhost:8080/mobie 这个路径下的页面是正常的, 而  http://lo …

greenDAO3 基本使用

greenDAO3基本使用 greenDAO3开始使用注解的方式定义实体类(entity),并且是通过安装gradle插件来生成代码.之前的版本则是通过建立一个独立的Java-lib工程来存放生成的文 …

MOTION-MATCHING IN UBISOFT’S FOR HONOR翻译

http://www.gameanim.com/2016/05/03/motion-matching-ubisofts-honor/ Introducing For Honor with a vide …

Android数据格式解析对象JSON用法(转)

地址:http://www.cnblogs.com/devinzhang/archive/2012/01/09/2317315.html 里面的重点: JSON解析案例     (1)解析Object …

python基础——获取对象信息

python基础——获取对象信息 当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type( …

SQL2005中的事务与锁定(九)- 转载

———————————————————————— — Author : HappyFlyStone – …

Lingo 做线性规划 – Asset allocation and Portfolio models

Reference:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值