tomcat优化

gc回收模式:
串行      -XX:+UseSerialGC
并行      -XX:+UseParallelGC
并发标记  -XX:+UseConcMarkSweepGC
G1        -XX:+UseG1GC



-Xms            初始堆内存大小
-Xmx            堆内存最大值
-Xmn            新生代大小
-XX:PermSize    初始持久代大小
-XX:MaxPermSize 永久代大小


例:
java -Xmx12m -Xms3m -XX:PermSize=20m -XX:+UseSerialGC -jar test.jar


tomcat实例化(内存管理与并发)
a:内存    tomcat/bin/catalina.sh
1、优化jvm工作模式(client/server)
java -veision
2、计算堆内存最大使用量
java -Xmx2000m -version
3、设计栈内存空间(512K-1M)
4、设计持久代空间(512M)
5、垃圾回收算法(CMS并发)

配置内容如下:
export JAVA_OPTS="-server
-Xms512M -Xmx512M -Xss512k
-XX:+AggressiveOpts -XX:+UseBiasedLocking
-XX:PermSize=128M -XX:MaxPermSize=256M
-XX:+DisableExplicitGC -XX:MaxTenuringThreshold=31
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC
-XX:+CMSParallelRemarkEnabled
-XX:+UseCMSCompactAtFullCollection
-XX:LargePageSizeInBytes=128m
-XX:+UseFastAccessorMethods
-XX:+UseCMSInitiatingOccupancyOnly
-Djava.awt.headless=true "



b:并发量  tomcat/conf/server.xml

<Connector port="8080"
protocol="HTTP/1.1"
URIEncoding="UTF-8"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
connectionTimeout="20000"
acceptCount="300"
maxThreads="300"
maxProcessors="2000"
minProcessors="5"
useURIValidationHack="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/javascript,text/css "
redirectPort="8443"
/>




监控工具jstat
输出没一个堆区域可用空间[E,S0,S1]
GC执行的次数

使用方法:
a:查看java程序进程pid  jps
b:jstat -gc pid 10   #每隔10秒输出一次

s0c:s0空间大小,单位KB
s1c:s1空间大小,单位KB
s0u:s0已使用空间大小
s1u:s1已使用空间大小
ec:e空间大小
oc:old空间大小
ou:old已用空间大小
pc:持久代空间大小
pu:持久代已用空间大小
ygc:新生代空间gc发生次数
ygct:新生代空间gc执行时间
fgc:full gc 年老代执行次数
ygct:









你可能感兴趣的:(tomcat)