java项目事故_记录 Linux环境下java web项目CPU爆表 “事故”,肇事者:GC
发布日期:2021-06-24 15:57:39 浏览次数:2 分类:技术文章

本文共 3975 字,大约阅读时间需要 13 分钟。

笔者今天将新开发的项目部署到新服务器的时候,出现了个“奇怪”的现象。项目启动完毕后,一切正常。在运行其中一个项目的时候,突然出现卡格的现象,很久没有响应。于是通过top查看,发现tomcat进行的cpu竟然达到100+%!!

这是在测试过程中不曾出现的,于是开始查看问题所在。

①top查看cpu情况,获取cpu爆表的进程id(pid)

②top -H -p 8413  查看导致cpu爆表的线程id(pid):8423

将对于pid从十进制转换成十六进制

③使用jstack pid(进程号) > jstack_log.log

jstack 6989 > a.txt

将堆栈信息导出。查找nid=Ox20e7的信息

"VM Thread" prio=10 tid=0xf68e9400 nid=0x20e7 runnable

"GC task thread#0 (ParallelGC)" prio=10 tid=0xf680c400 nid=0x20df runnable

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

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

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

"GC task thread#4 (ParallelGC)" prio=10 tid=0xf6812000 nid=0x20e3 runnable

"GC task thread#5 (ParallelGC)" prio=10 tid=0xf6813400 nid=0x20e4 runnable

"GC task thread#6 (ParallelGC)" prio=10 tid=0xf6814c00 nid=0x20e5 runnable

"GC task thread#7 (ParallelGC)" prio=10 tid=0xf6816000 nid=0x20e6 runnable

发现是GC导致的cpu过高的问题。

④然后笔者使用jstat -gc 8413 5000 进行观察

[root@cncln ~]# jstat -gc 8647 5000

S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT

64.0   64.0   16.0   0.0   349376.0   0.0     699072.0   25557.0   65536.0 65536.0    344    0.748  331    73.973   74.721

64.0  128.0   64.0   0.0   349248.0   0.0     699072.0   25556.1   65536.0 65536.0    366    0.781  353    78.904   79.685

128.0  128.0   48.0   0.0   349248.0   0.0     699072.0   25557.4   65536.0 65536.0    388    0.817  375    83.834   84.650

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25559.9   65536.0 65536.0    411    0.852  398    88.979   89.831

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25559.2   65536.0 65536.0    433    0.895  420    93.903   94.797

64.0   64.0   0.0    0.0   349312.0   0.0     699072.0   25559.8   65536.0 65536.0    455    0.930  442    98.823   99.753

64.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25558.9   65536.0 65536.0    477    0.972  464   103.743  104.715

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25557.8   65536.0 65536.0    499    1.009  486   108.653  109.662

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25556.1   65536.0 65536.0    521    1.052  508   113.594  114.647

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25554.7   65536.0 65536.0    543    1.099  530   118.535  119.634

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25553.5   65536.0 65536.0    565    1.143  552   123.468  124.610

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25551.9   65536.0 65536.0    587    1.184  574   128.418  129.602

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25550.2   65536.0 65536.0    609    1.220  596   133.351  134.571

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25559.7   65536.0 65536.0    631    1.257  618   138.331  139.588

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25555.9   65536.0 65536.0    653    1.299  640   143.263  144.561

128.0  128.0   0.0    0.0   349248.0   0.0     699072.0   25554.4   65536.0 65536.0    675    1.349  662   148.128  149.477

64.0   64.0   64.0   0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    696    1.389  683   152.811  154.200

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.3   65536.0 65536.0    717    1.426  704   157.497  158.923

64.0   64.0   48.0   0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    738    1.461  725   162.145  163.606

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    759    1.495  746   166.845  168.340

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    779    1.526  766   171.358  172.884

64.0   64.0   16.0   0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    800    1.563  787   176.054  177.617

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.3   65536.0 65536.0    821    1.607  808   180.676  182.282

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    842    1.646  829   185.267  186.913

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.2   65536.0 65536.0    863    1.692  850   190.063  191.755

64.0   64.0   0.0    0.0   349376.0   0.0     699072.0   25554.3   65536.0 65536.0    885    1.726  872   194.630  196.356

发现所有的年轻代,老年代以及持久代的容量一直不断在上升,直至持久代被占满,频繁的触发FGC。

⑤同时查看了gc日志,也证实了这一点,发现GC的频率很高。

发现一秒内竟然触发了5次Full GC

终于在确定了是tomcat内存不足导致的问题后,配置了tomcat的内存后重新启动,项目运行正常:)

附:

linux  tomcat  GC、内存配置

vim apache-tomcat-6.0.32/bin/catalina.sh

#JAVA_OPTS="-Xloggc:/usr/local/space/logs/gc_tomcat.log -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC "

JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=256m -XX:MaxPermSize=512m"

转载地址:https://blog.csdn.net/weixin_33682804/article/details/114739523 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql 存储过程 select insert_存储过程执行select与insert同一个表sql语句
下一篇:java timer并发_Java并发编程笔记之Timer源码分析

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月06日 18时18分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章