Tomcat 简单配置(JAVA8 VM Args)

    Tomcat用了two years+,没有深究过配置信息,只是简单的改改端口,最近在搭建测试Server的时候,单机有四个Tomcat实例,发现8G的内存不知不觉的就被用完了,甚至是20G的硬盘都被一次意外吃完了,内存是由于Tomcat中添加了最大内存2G最小1G,硬盘是由于Jenkins的Tomcat出现大量异常,打印了10+G的log(contains catalina.out),后来去掉内存设置,感受当时内存倒是少了很多,Tomcat的自带日志也直接关闭,后来日志打印是正常关闭了,可是内存,仍是认为偏高,由于是测试,因此对性能要求不是很高,后来开始了解Tomcat的参数配置,网上的信息太繁杂,没有获得一个满意的answer,另外,其实我的比较偏向于官方的默认配置,并且网上的资料大都是人云亦云,就简单的JAVA_OPTS/CATALINA_OPTS配置来讲,网上都说添加配置到catalina.sh,可是与Tomcat官方的说法,有两点出入(${CATALINA_HOME}/html

RUNNING.txtjava

):
spring

0配置信息添加到${CATALINA_HOME}/bin/setenv.shmvc

1不推荐使用JAVA_OPTS,由于stop等命令也会使用该配置,应使用CATALINA_OPTSoracle

另外关闭Tomcat的自带日志,经过spring mvc的interceptor来记录RuntimeException,避免丢失未捕获的异常纪录。jvm


    JAVA VM args:-server性能

0查看默认参数:测试

$ java -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
uintx AdaptivePermSizeWeight               = 20               {product}
uintx ErgoHeapSizeLimit                    = 0                {product}
uintx InitialHeapSize                     := 66328448         {product}
uintx LargePageHeapSizeThreshold           = 134217728        {product}
uintx MaxHeapSize                         := 1063256064       {product}
uintx MaxPermSize                          = 67108864         {pd product}
uintx PermSize                             = 16777216         {pd product}
java version "1.6.0_24"

$ java -client -XX:+PrintFlagsFinal -version 2>&1 | grep -i -E 'heapsize|permsize|version'
uintx AdaptivePermSizeWeight               = 20               {product}
uintx ErgoHeapSizeLimit                    = 0                {product}
uintx InitialHeapSize                     := 16777216         {product}
uintx LargePageHeapSizeThreshold           = 134217728        {product}
uintx MaxHeapSize                         := 268435456        {product}
uintx MaxPermSize                          = 67108864         {pd product}
uintx PermSize                             = 12582912         {pd product}
java version "1.6.0_24"


    经过JMC查看Tomcat运行的内存占用,如图:
ui

    JAVA8后,内存结构发生变化,具体的暂时没有进行调研,走一个简单的记录,分别对应以下参数:
spa

-Xmx768M -Xms768M 设定初始化和最大的Heap
-XX:ReservedCodeCacheSize=128M 设定Code Cach
-XX:MaxMetaspaceSize=128M 设定Metaspace
-XX:CompressedClassSpaceSize=256M 设定Compressed Class Space

    具体参数的大小与性能的影响,暂时不肯定,待更新




    PS:default-jvm-and-java-arguments

相关文章
相关标签/搜索