缓慢的tomcat响应以及如何解决它

时间:2017-06-01 13:08:28

标签: java performance tomcat servlets tomcat8

客户端将请求发送到我们的系统,并显示响应缓慢。例如,客户端看到一个请求的9秒。我们有nginx - tomcat8 - 我们的servlet。 Nginx显示了与tomcat相同的慢响应。但是我创建了围绕servlet的Filter,并在filter和servlet中添加了日志记录。并且java日志记录显示响应为0.6秒。响应非常简单,只有200个带有几个标题的代码,而这一切都是。我检查了GC日志,此时没有什么特别的。

所以现在我不明白剩下的8秒钟。这似乎是tomcat内部的东西,但如何理解和监控呢?

环境:JDK 8,Tomcat 8,Linux Debian Jessie。

Java Run Params:

    echo 'JAVA_OPTS="$JAVA_OPTS -Xmx10500m -Xms10500m"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -Xloggc:/var/log/tomcat8/garbagecollector.log"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+PrintPromotionFailure"' >> $TOMCAT_CONFIG

    echo 'JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8999"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:MaxPermSize=128m"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+UseCodeCacheFlushing"' >> $TOMCAT_CONFIG

    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+CMSClassUnloadingEnabled"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+CMSScavengeBeforeRemark"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:MinHeapFreeRatio=50"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=80"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:CMSWaitDuration=30000"' >> $TOMCAT_CONFIG

    echo 'JAVA_OPTS="$JAVA_OPTS -XX:MaxNewSize=2512m -XX:NewSize=2512m -XX:+UseParNewGC"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=14"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=1"' >> $TOMCAT_CONFIG

    echo 'JAVA_OPTS="$JAVA_OPTS -XX:-OmitStackTraceInFastThrow"' >> $TOMCAT_CONFIG

    echo 'JAVA_OPTS="$JAVA_OPTS -Dsun.net.inetaddr.ttl=60"' >> $TOMCAT_CONFIG
    echo 'JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/tomcat8/OOME.hprof"' >> $TOMCAT_CONFIG

    echo 'ulimit -n 65535' >> $TOMCAT_CONFIG

0 个答案:

没有答案