美文网首页
Tomcat夯死, JVM参数优化

Tomcat夯死, JVM参数优化

作者: __Liu__ | 来源:发表于2017-12-08 20:43 被阅读0次

今天,浙江同事求救,说某一个节点上的某一个端口Tomcat很慢,但其他端口、节点的Tomcat没问题

  1. 现象
    0.1 前台请求偶尔很慢很慢,但服务也没挂
    0.2 具体到某一个Tomcat时,总是很慢,但进程还在

  2. top
    1.1 看下当前系统负载 load average 通常在较小,经验值0.x-2.x
    夯死的时候,load average 8+
    1.2 看tomcat进程的系统资源使用情况,通常CPU<100%,内存情况看各地
    夯死的时候,CPU 800%+
    1.3 netstat -anp|grep tomcat-pid 观察网络情况
    夯死的时候,大量CLOSE_WAIT连接未释放

  3. jstat -gcutil PID
    查看这个进程的gc情况
    jstat -gcutil 7317

S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 11.41 37.17 57.94 98.47 97.47 39 1.448 4 0.498 1.945
  1. 看具体进程内存情况 top -p PID
    RES如果高于Xmx,势必会GC

  2. 看tomcat的JVM参数
    [root@XXX-WEB-01 admin]# ps -ef|grep tomcat
    xxxx 7317 1 0 Nov20 ? 00:07:38 /home/dacp/jdk1.8.0_51/jre/bin/java -Djava.util.logging.config.file=/home/dacp/Tomcat-18080/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms1g -Xmx2g -XX:+UseParallelOldGC -Djava.security.egd=file:/dev/../dev/urandom -Djava.endorsed.dirs=/home/dacp/Tomcat-18080/endorsed -classpath /home/dacp/Tomcat-18080/bin/bootstrap.jar:/home/dacp/Tomcat-18080/bin/tomcat-juli.jar -Dcatalina.base=/home/dacp/Tomcat-18080 -Dcatalina.home=/home/dacp/Tomcat-18080 -Djava.io.tmpdir=/home/dacp/Tomcat-18080/temp org.apache.catalina.startup.Bootstrap start

比较Xmx与当前内存RES情况

  1. 如果CPU过高,找到该进程后,定位具体线程或代码,首先显示线程列表,并按照CPU占用高的线程排序:
    ps -mp PID -o THREAD,tid,time | sort -rn | head -10
USER %CPU PRI SCNT WCHAN USER SYSTEM TID TIME
xxxx 0.6 - - - - - - 00:07:58
xxxx 0.2 19 - futex_ - - 3270 00:02:49
xxxx 0.0 19 - inet_c - - 3277 00:00:00
xxxx 0.0 19 - inet_c - - 3273 00:00:00
xxxx 0.0 19 - inet_c - - 3271 00:00:00
xxxx 0.0 19 - inet_c - - 3203 00:00:05
xxxx 0.0 19 - futex_ - - 7644 00:00:00
xxxx 0.0 19 - futex_ - - 3420 00:00:00
xxxx 0.0 19 - futex_ - - 3288 00:00:06
  1. 将需要的线程ID转换为16进制格式:printf "%x\n" TID

  2. 最后打印线程的堆栈信息:jstack PID |grep TID -A 30
    示例:
    jstack 2633 |grep e18 -A 30


浙江这次,cpu占用高的线程,均为parallel gc...
结合内存情况,JVM参数,判断为JVM内存设置太低,导致频繁gc。

方案:
推荐加大tomcat JVM中的Xmx,结合服务器内存配置,给出合理值。
如目前加大Xmx至4g

相关文章

  • Tomcat夯死, JVM参数优化

    今天,浙江同事求救,说某一个节点上的某一个端口Tomcat很慢,但其他端口、节点的Tomcat没问题 现象0.1 ...

  • Tomcat优化方案

    1.Tomcat的优化分成两块: Tomcat启动命令行中的优化参数即JVM优化 Tomcat容器自身参数的优化 ...

  • tomcat性能调优

    tomcat性能调优一般从两个方面进行调优: tomcat启动参数优化:即JVM优化(内存) Tomcat 容器自...

  • G1回收器对应jvm和tomcat参数配置

    参数配置 jvm参数配置 tomcat参数配置

  • Java Web之Tomcat调优

    Tomcat调优是一个老话题,目的都是为了提高站点的吞吐和并发。这里面涉及到Tomcat本身参数的优化和JVM优化...

  • tomcat优化

    tomcat内存优化 Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚...

  • Tomcat内存优化

    Tomcat内存优化主要是对 tomcat 启动参数优化参数。 1.linux 下调整tomcat的内存设置 wi...

  • Tomcat性能调优(windows)

    1、目录:a、基础调优b、JVM 优化c、高级调优2、基础调优:2.1、tomcat的各版本的优化参数有点不一样,...

  • JVM与tomcat参数与优化

    1,JVM参数 官网:『https://docs.oracle.com/javase/10/jrockit-hot...

  • tomcat8.5修改默认jvm内存参数&解决shutdown关

    修改tomcat8.5默认jvm内存参数 1.查看java进程jvm参数 结果发现默认启动时,并没有配置jvm参数...

网友评论

      本文标题:Tomcat夯死, JVM参数优化

      本文链接:https://www.haomeiwen.com/subject/wgryixtx.html