记录 Linux环境下 web项目CPU爆表 “事故”,肇事者:GC
来源:互联网 发布:下载截图软件 编辑:程序博客网 时间:2024/04/30 21:04
这是在测试过程中不曾出现的,于是开始查看问题所在。
①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"
- 记录 Linux环境下 web项目CPU爆表 “事故”,肇事者:GC
- 记录 Linux环境下java web项目CPU爆表 “事故”,肇事者:GC
- Linux环境下,部署web项目
- Linux环境下Web项目的安装与部署过程
- Linux环境下Web项目的安装与部署过程
- Linux系统下的web项目环境搭建
- Linux下搭建Web项目运行环境Tomcat+Mysql+Jdk
- Linux下搭建Web项目运行环境Tomcat+Mysql+Jdk
- **Linux环境下部署WEB项目出现的BUG集锦**
- Linux环境下Web项目的安装与部署过程
- linux环境下cpu利用率的计算
- linux环境下cpu利用率的计算
- LINUX 下 WEB环境搭建
- linux下web环境配置
- linux环境下web服务器环境搭建
- Linux环境下项目部署
- linux环境下项目启动
- Linux环境下发布项目
- LiteNote v1.0开发文档
- 空间分配担保
- bzoj2693: jzptab
- UNITY发布安卓APK的整体流程
- debuginfo-install glibc-2.12-1.166.el6_7.3.x86_64类似的问题
- 记录 Linux环境下 web项目CPU爆表 “事故”,肇事者:GC
- 转载的另一篇不错的介绍gdb的文章
- spring实战第三版自学---第一章
- C语言———strtol()详解
- 自实现 XML 与 对象 间的自动转换
- 前端八个常见错误
- CentOS7搭建lamp
- 欢迎使用CSDN-markdown编辑器
- 5 异常、finally、权限、jar包、模板模式