java cpu io高_cpu内存磁盘io过高问题处理

CPU占用过高分析

-----------------------------

可以用top命令查看哪一个进程占用cpu高  或者哪一个占用内存大top - 13:55:32 up 59 days, 19:18,  2 users,  load average: 0.00, 0.04, 0.09

Tasks: 161 total,   1 running, 160 sleeping,   0 stopped,   0 zombie

%Cpu(s):  3.7 us,  0.3 sy,  0.0 ni, 96.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

KiB Mem : 16267564 total,   271608 free,  9033932 used,  6962024 buff/cache

KiB Swap:  8388604 total,  8364736 free,    23868 used.  5913400 avail Mem

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

29433 wuuser    20   0 7805852 1.132g  19216 S   0.7  7.3   6:07.13 java

29355 wuuser    20   0 6909304 1.093g  17248 S   0.3  7.0   2:29.96 java

29558 wuuser    20   0 7763476 974788  15860 S   0.3  6.0   1:54.47 java

29945 wuuser    20   0 7793536 1.202g  21344 S   0.3  7.7   4:31.02 java

可以看到占用最高的是29433

用top -H -p pid命令查看进程内各个线程占用的CPU百分比    (  top -Hp 29433)cpu消耗情况top -H -p 29433top - 13:58:57 up 59 days, 19:22,  2 users,  load average: 0.04, 0.07, 0.10

Threads: 132 total,   0 running, 132 sleeping,   0 stopped,   0 zombie

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

KiB Mem : 16267564 total,   271024 free,  9034476 used,  6962064 buff/cache

KiB Swap:  8388604 total,  8364736 free,    23868 used.  5913044 avail Mem

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

29433 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:00.00 java

29436 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:08.91 java

29437 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:00.34 java

29438 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:00.35 java

29439 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:00.34 java

29440 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:00.34 java

29441 wuuser    20   0 7805852 1.132g  19216 S  0.0  7.3   0:00.34 java

上面看到线程29436占用高时长多

接着  使用printf "%x\n" 线程号将异常线程号转化为16进制printf "%x\n" 29436

72fc

接着使用gstack 29433|grep 72fc -A90  来定位出现异常的代码jstack 29433|grep 72fc -A90"main" prio=10 tid=0x00007f16fc00e000 nid=0x72fc in Object.wait() [0x00007f17056d9000]

java.lang.Thread.State: WAITING (on object monitor)

at java.lang.Object.wait(Native Method)

- waiting on <0x0000000778044670> (a java.lang.Class for com.wu.mortgage.service.OrderServiceStartup)

at java.lang.Object.wait(Object.java:503)

at com.wu.mortgage.service.OrderServiceStartup.main(OrderServiceStartup.java:47)

- locked <0x0000000778044670> (a java.lang.Class for com.wu.mortgage.service.OrderServiceStartup)"VM Thread" prio=10 tid=0x00007f16fc14a000 nid=0x7309 runnable

"Gang worker#0 (Parallel GC Threads)" prio=10 tid=0x00007f16fc01f800 nid=0x72fd runnable

"Gang worker#1 (Parallel GC Threads)" prio=10 tid=0x00007f16fc021800 nid=0x72fe runnable

"Gang worker#2 (Parallel GC Threads)" prio=10 tid=0x00007f16fc023000 nid=0x72ff runnable

"Gang worker#3 (Parallel GC Threads)" prio=10 tid=0x00007f16fc025000 nid=0x7300 runnable

"Gang worker#4 (Parallel GC Threads)" prio=10 tid=0x00007f16fc027000 nid=0x7301 runnable

"Gang worker#5 (Parallel GC Threads)" prio=10 tid=0x00007f16fc029000 nid=0x7302 runnable

"Gang worker#6 (Parallel GC Threads)" prio=10 tid=0x00007f16fc02b000 nid=0x7303 runnable

"Gang worker#7 (Parallel GC Threads)" prio=10 tid=0x00007f16fc02d000 nid=0x7304 runnable

"Concurrent Mark-Sweep GC Thread" prio=10 tid=0x00007f16fc106800 nid=0x7307 runnable

"Gang worker#0 (Parallel CMS Threads)" prio=10 tid=0x00007f16fc102000 nid=0x7305 runnable

"Gang worker#1 (Paralle

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值