JAVA程序导致CPU高原因排查

公司的一个应用系统在某一个时间,突然CPU占比很高,网络,负载等都很高,应用系统是做集群的,当流量有负载均衡,但是其中一台CPU还是降低不了。

▶Zabbix监控,从监控图可以很明细看出CPU,网络,负载等异常。



▶系统top命令查看

top   //查看哪个java进程ID占用CPU高
top -Hp javapid  //查看线程占用情况

从top -Hp可以看出有几个线程占用CPU很高,并且时间很长,一直没有释放

▶将线程PID转16进制

如17827

printf "%x" 17827       //十六进制 45a3
jstack 45a3             

将相关异常信息提交给开发分析即可。

▶主进程日志(一般是通过主进程的子进程进行排查):


"resin-6093" #6093 daemon prio=5 os_prio=0 tid=0x00007f61bc34c000 nid=0x633c waiting on condition [0x00007f6186cfd000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
	at com.caucho.env.thread2.ResinThread2.park(ResinThread2.java:196)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:147)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

"DependencyCheckWorker[]-17" #5910 daemon prio=5 os_prio=0 tid=0x00007f61bc31c800 nid=0x62c9 runnable [0x00007f613f5fa000]
   java.lang.Thread.State: RUNNABLE
	at java.lang.ClassLoader.findLoadedClass0(Native Method)
	at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:1038)
	at com.caucho.loader.DynamicClassLoader.loadClassImpl(DynamicClassLoader.java:1588)
	at com.caucho.loader.DynamicClassLoader.loadClassImpl(DynamicClassLoader.java:1617)
	at com.caucho.loader.DynamicClassLoader.loadClassImpl(DynamicClassLoader.java:1617)
	at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1548)
	at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1529)
	at com.caucho.vfs.Depend.isModified(Depend.java)
	at com.caucho.loader.ClassEntry.isModified(ClassEntry.java:214)
	at com.caucho.make.DependencyContainer.checkImpl(DependencyContainer.java:298)
	at com.caucho.make.DependencyContainer.access$100(DependencyContainer.java:47)
	at com.caucho.make.DependencyContainer$DependencyCheckWorker.runTask(DependencyContainer.java:374)
	at com.caucho.env.thread2.AbstractTaskWorker2.run(AbstractTaskWorker2.java:247)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

"resin-5909" #5909 daemon prio=5 os_prio=0 tid=0x00007f61bc30d000 nid=0x62c8 runnable [0x00007f613fafb000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
	at com.caucho.env.thread2.ResinThread2.park(ResinThread2.java:196)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:147)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

"resin-5908" #5908 daemon prio=5 os_prio=0 tid=0x00007f61bc340000 nid=0x62c7 waiting on condition [0x00007f61496c4000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
	at com.caucho.env.thread2.ResinThread2.park(ResinThread2.java:196)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:147)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)

"resin-5907" #5907 daemon prio=5 os_prio=0 tid=0x00007f61bc35b800 nid=0x62c6 waiting on condition [0x00007f613fcfd000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:304)
	at com.caucho.env.thread2.ResinThread2.park(ResinThread2.java:196)
	at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:147)
	at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118)
展开阅读全文

页面更新:2024-04-13

标签:明细   负载   集群   线程   流量   进程   异常   原因   时间   程序   系统   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top