tomcat参数设置

maxThreads="600"       ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
acceptCount="700"//指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
永久域是一个独立域并且不认为是堆的一部分
-XX:MaxPermSize=256设置永久域的最大值
-XX:PermSize=256M设置永久域的初始值(你的例子显然有问题)

一:安装版本修改:
1.“开始”--“Apache Tomcat 6”--“Configure Tomcat”
2.选择Java标签,在“Initial memory pool(初始内存)”和“Maximum memory pool(最大内存)”中输入你需要的内存参数即可

1.java.lang.OutOfMemoryError:这个错误是因为tomcat JVM的Permanent Generation space(内存的永久保存区域)不足引起的,
这个区域是JVM用于用于存放Class和Meta的信息的内存区域,

jvm默认第三方jar包的大小(4M)
解决方案是人工调整确认大小设置,使用regedit修改注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun2.0\
Tomcat6\Parameters\Java中的 Options参数,在后面增加一下数据
-XX:PermSize=64M
-XX:MaxPermSize=128m
2.java.lang.OutOfMemoryError: Java heap space Heap size 设置 JVM堆内存不足
初始空间(-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4
一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值

修改:
Windows下,在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

linux下,在catalina.sh最前面增加:
JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

二:线程池配置(Tomcat6下)
使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。
开/conf/server.xml,增加
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />
最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60秒。
然后,修改<Connector ...>节点,增加executor属性,如:
<Connector executor="tomcatThreadPool"
port="80" protocol="HTTP/1.1"
connectionTimeout="60000"
keepAliveTimeout="15000"
maxKeepAliveRequests="1"
redirectPort="443"
maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false"
acceptCount="100" disableUploadTimeout="true"/>

注意:可以多个connector公用1个线程池。

调整连接相关Connector的参数:
connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,通常可设置为30000毫秒
keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒
maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
maxHttpHeaderSize - http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
URIEncoding - 指定Tomcat容器的URL编码格式。
acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,
超过这个数的请求将不予处理,默认为10个
disableUploadTimeout - 上传时是否使用超时机制
enableLookups - 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
bufferSize - defines the size (in bytes) of the buffer to be provided for input streams created by this
connector. By default, buffers of 2048 bytes are provided.
maxSpareThreads - 做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程
maxThreads - 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数
minSpareThreads - 最小空闲线程数,Tomcat初始化时创建的线程数

minProcessors - 最小空闲连接线程数,用于提高系统处理性能,默认值为10。(用于Tomcat4中)
maxProcessors - 最大连接线程数,即:并发处理的最大请求数,默认值为75。(用于Tomcat4中)

        三  绿色版
        在bin\catalina.bat中,添加set JAVA_OPTS=-Xms256M     -Xmx1024M设置初始化内存256最大1024这里设置大于1024的就无法启动,应该是tomcat支持的最大内存限制吧
        这里其实是设置了一个临时的环境变量,所以设置环境变量同样适用。如果一个tomcat下有多个项目可以将相同的第三方jar放在tomcat\shared\lib下
测试tomcat配置
启动tomcat后在tomcat跟目录下点击status连接可以看到tomcat当前的状态。如果需要登陆则需要修改config\tomcat-users.xml添加用户角色和用户role=manager-gui    user标签
	<%
	Runtime lRuntime = Runtime.getRuntime();
	out.println("<br/>*** BEGIN MEMORY STATISTICS ***<br/>");
	out.println("Free Memory: "+lRuntime.freeMemory()/1024/1024+"MB<br/>");
	out.println("Max   Memory: "+lRuntime.maxMemory()/1024/1024+"MB<br/>");
	out.println("Total Memory: "+lRuntime.totalMemory()/1024/1024+"MB<br/>");
	out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>");
	out.println("*** END MEMORY STATISTICS ***<br/>");
	%>

猜你喜欢

转载自jie66989.iteye.com/blog/1718575