Tomcat和Jboss调优部分配置详解
1.Tomcat调优 (各参数请按实际情况酌情配置!)
Linux:
catalina.sh:
-Xms:最小内存
-Xmx:最大内存
-XX:PermSize:永久域初始值
-XX:MaxPermSize:指定PermGen space区域内存,默认4M(永久域最大值)
配置实例:
JAVA_OPTS="${JAVA_OPTS} -server"
JAVA_OPTS="${JAVA_OPTS} -Xms6144m -Xmx8192m -XX:PermSize=2048m -XX:MaxPermSize=4096m"
server.xml:
maxHttpHeaderSize: http长度最大值 默认4096-4k 推荐8192-8k
maxThreads: tomcat启动的最大线程数 默认200
acceptCount: 当线程数达到最大时,接收排队的个数 默认100
minSpareThreads: tomcat初始化创建socket线程数 默认 25
maxSpareThreads: tomcat连接器的最大空闲socket线程数
enableLookups: 若为true则支持域名解析, 可将ip解析为主机名, 若为false, 则不可反查域名, 可提高处理能力
redirectPort: 重定向端口 443为https端口
connectionTimeout: 启动超时时间 毫秒
minProcessors: 最小空闲连接线程数,用于提高系统处理性能,默认值为 10
maxProcessors: 最大连接线程数,即:并发处理的最大请求数,默认值为 75
userBodyEncodingForURI: 解决乱码 若在代码中设置了utf-8 则不需要
maxParameterCount: 请求参数最大数量 默认10000
URIEncoding: 指定编码utf-8
配置实例:
<Connector port="80" protocol="HTTP/1.1" maxHttpHeaderSize="8192"
maxThreads="8000" acceptCount="4000" enableLookups="false" redirectPort="8443"
connectionTimeout="20000" disableUploadTimeout="true" maxProcessors="1000"
URIEncoding="utf-8"
/>
Windows:
catalina.sh:
rem 要在@echo off上面写这句话 增加tomcat内存
set JAVA_OPTS=%JAVA_OPTS% -server -Xms2048m -Xmx2048m -XX:PermSize=212M -XX:MaxPermSize=512m
service.xml配置与linux一致
2.Jboss调优 (各参数请按实际情况酌情配置!)
Linux: (请根据实际位置,添加所需配置)
run.conf文件位置:./home/jboss/jboss-ewp-5.1/jboss-as-web/bin/run.conf
service.xml文件位置:./home/jboss/jboss-ewp-5.1/jboss-as-web/server/
default/deploy/jbossweb.sar/server.xml
run.conf:
-Xms1024m:最小内存
-Xmx2048m:最大内存
-XX:+UseParallelGC和-XX:+UseParallelOldGC:使服务可以并行回收内存空间
-XX:+UseConcMarkSweepGC:并行并发CMS垃圾回收器,与-XX:+UseParallelGC和-XX:+UseParallelOldGC不可同时配 置,当增加此配置时必须有:-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled(jdk为 1.6时不需要加
-XX:+CMSPermGenSweepingEnabled因为1.6缺少这个策略)
-XX:MaxPermSize:指定PermGen space区域内存,默认4M(永久域最大值)
-XX:PermSize:永久域初始值
-XX:NewSize:设置新域的初始值
-XX:MaxNewSize :设置新域的最大值
-Dsun.lang.ClassLoader.allowArraySyntax=true:jdk1.6时需要设置true,1.6默认为false
-Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000: Gc机制间隔时间
配置实例:
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms1024m -Xmx2048m -XX:MaxPermSize=512m -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.lang.ClassLoader.allowArraySyntax=true
-XX:+UseConcMarkSweepGC
-XX:NewSize=256m -XX:MaxNewSize=512m -XX:PermSize=256m -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled -Djboss.platform.mbeanserver"
fi
service.xml:
maxThreads="2000" 最大连接
acceptCount="3200" 达到maxThreads的值后,排队的数量
minSpareThreads="400"
maxSpareThreads="800"
emptySessionPath="false"
enableLookups="false"
disableUploadTimeout="true"
URIEncoding="UTF-8"
配置实例:
<Connector protocol="HTTP/1.1" port="8180" address="0.0.0.0"
connectionTimeout="20000" redirectPort="8443"
maxThreads="2000"
minSpareThreads="400"
maxSpareThreads="800"
emptySessionPath="false"
enableLookups="false"
acceptCount="3200"
disableUploadTimeout="true"
URIEncoding="UTF-8"
/>
注:以上内容仅供个人学习记录使用,如有问题,请慎用!