Tomcat性能调优

修改catalina.sh中JAVA_OPS参数如下:

 

-Djava.awt.headless=true#使用java-PJA处理图片

-Djava.net.preferIPv4Stack=true#在支持 IPv4 映射地址的 IPv6 网络堆栈中可以使用 IPv6 套接字来连接到 IPv4 和 IPv6 主机以及接受来自这些主机的连接。

-Dcom.tc.productkey.path=/opt/tomcat/terracotta-license.key#BigMemory启用本地缓存避免触发gc,存放地址

-Dlocal.ip=10.10.4.35#本机ip

-Djava.util.Arrays.useLegacyMergeSort=true#兼容老版本中的排序算法

-Djava.rmi.server.hostname=10.10.4.35#配置RMI监控,多网卡的服务器开启RMI时指定IP用

-Dcom.sun.management.jmxremote#打开tomcat jmx支持

-Dcom.sun.management.jmxremote.port=1199#指定jmx端口号

-Dcom.sun.management.jmxremote.ssl=false#设置不支持ssl

-Dcom.sun.management.jmxremote.authenticate=false#设置不需要身份验证

-server

-Xmx8g#设置最大堆大小

-Xms8g#设置初始堆大小

-Xmn1024m#年轻代大小    整个JVM内存大小=年轻代大小 + 年老代大小 + 持久代大小

-XX:SurvivorRatio=64m#设置年轻代中持久化区与幸存者区的比值

-XX:MetaspaceSize=256m#设置本地内存分配给类元数据的大小

-XX:MaxMetaspaceSize=256m#限制本地内存分配给类元数据的最大上限

-Xss256k#设置每个线程堆栈的大小,值小线程多,值大线程少

-XX:MaxDirectMemorySize=2G#BigMemory启用本地缓存避免触发gc,最大2G

-XX:+HeapDumpOnOutOfMemoryError#当发生内存溢出时,保存当前堆盗一个文件中,方便日后排查

-XX:+PrintGCDetails #打印GC发生的详细信息

-XX:+PrintGCDateStamps #打印GC发生的时间信息

-Xloggc:/opt/tomcat/logs/gc.log #日志产生的路径

-XX:+UseGCLogFileRotation #启用GC日志文件的自动转储

-XX:NumberOfGCLogFiles=5  #GC日志文件的循环数目

-XX:GCLogFileSize=50M #GC日志文件大小

-XX:HeapDumpPath=/opt/tomcat/logs/java.hprof#指定堆的存放路径

-XX:+DisableExplicitGC#禁止代码手动调用gc

-XX:+UseConcMarkSweepGC#设置并发收集器

-XX:+CMSParallelRemarkEnabled#降低标记停顿

-XX:+CMSConcurrentMTEnabled#使用并发的CMSGC收集器

-XX:+UseCMSCompactAtFullCollection#使用并发收集器时,开启对年老代的压缩

-XX:CMSFullGCsBeforeCompaction=1 #上面配置开启的情况下这里设置多少次Full GC后,对年老代进行压缩

-XX:LargePageSizeInBytes=64m#内存分页-单个页大小设置-即设置大内存分页

-XX:+UseFastAccessorMethods#快速优化-启用原始类型的getter方法优化

-XX:+UseCMSInitiatingOccupancyOnly#设置CMSGC收集器一直处于运行

-XX:CMSInitiatingOccupancyFraction=70#设置CMSGC70%占满时进行垃圾回收

-XX:-OmitStackTraceInFastThrow#当JVM检测到程序再重复抛异常时,在执行若干次后吞掉该异常.指定后禁用

-XX:+PrintCommandLineFlags#打印配置到日志文件上

-XX:+UnlockCommercialFeatures#开启JFR,启用资源管理,开启J2SE商业特性

-XX:+FlightRecorder#开启JFR

猜你喜欢

转载自harborchung.iteye.com/blog/2341039