linux环境下的java程序,cpu持续升高("GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f918)

ZMLXS 2017-06-06 05:43:46
问题描述:
系统使用的是jdk1.7, 4核的。项目启动时候cpu是1%多,但是将近一周时候,cpu会升到182%,根据网上的方法搜索,知道是线程没有释放,但是我如何定位是在项目哪个地方呢 ?
下面是部分日志
"main" prio=10 tid=0x00007f918c009000 nid=0x59c79 runnable [0x00007f9192874000]
java.lang.Thread.State: RUNNABLE
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:530)
at java.net.ServerSocket.accept(ServerSocket.java:498)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:464)
at org.apache.catalina.startup.Catalina.await(Catalina.java:717)
at org.apache.catalina.startup.Catalina.start(Catalina.java:663)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)

"VM Thread" prio=10 tid=0x00007f918c069000 nid=0x59c82 runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0x00007f918c01e800 nid=0x59c7e runnable

"GC task thread#1 (ParallelGC)" prio=10 tid=0x00007f918c020800 nid=0x59c7f runnable

"GC task thread#2 (ParallelGC)" prio=10 tid=0x00007f918c022800 nid=0x59c80 runnable

"GC task thread#3 (ParallelGC)" prio=10 tid=0x00007f918c024800 nid=0x59c81 runnable

"VM Periodic Task Thread" prio=10 tid=0x00007f918c0aa800 nid=0x59c89 waiting on condition

JNI global references: 174
...全文
4401 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
蓝色心灵-海 2021-07-12
  • 打赏
  • 举报
回复
爱哭的小胖胖 2017-06-07
  • 打赏
  • 举报
回复 3
简单步骤: 1、通过ps ux 排查哪些进程cpu占用率高 2、查出最耗CPU线程 top -Hp pid 2、通过线程ID转换16进制,printf "%x\n" 21742 4、追踪线程内部,查看load过高原因。通过命令:jstack 25245 >>/usr/2文件,将线程堆里面的信息全部保存下来 5、通过转换的16进制就可以去“2文件”里面查找对应的线程 3、jstack 21711 | grep 54ee 4、通过线程ID找出日志
qq_38755299 2017-06-07
  • 打赏
  • 举报
回复

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧