tomcat&jvm优化参数&原理

Tomcat 内存和线程配置优化

xml优化参数

  1. tomcat 的线程配置参数详情如下:
    修改conf/server.xml中的<Connector …/> 节点如下:
<Connector port="8080" protocol="HTTP/1.1"
              maxThreads="600"
              minSpareThreads="100"
              maxSpareThreads="500"
              acceptCount="700"
              connectionTimeout="20000"
              redirectPort="8443" 
              URIEncoding="utf-8"

  />

参数配置:

maxThreads : 最大线程数

minSpareThreads : 初始化时的线程数

maxSpareThreads : 一但创建的线程数超过这个值,Tomcat就会关闭不再需要的socket线程。

accepCount : 指当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理
2. tomcat线程池配置:(用较少的线程处理较多的访问,可以提高tomcat处理请求的能力)
a) 打开conf/server.xml ,增加节点

<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />

maxThreads : 最大线程500

minSpareThreads : 最小线程20

maxIdleTime : 线程最大空闲时间60s
b) 修改<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"/>

参数解释:

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初始化时创建的线程数。

注意:Tomcat5+主要对以下参数调整 maxThreads Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。 acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。 connnectionTimeout 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。 minSpareThreads Tomcat初始化时创建的线程数。 maxSpareThreads 一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
3. tomcat启动时候的jvm的配置参数信息在tomcat下面的bin目录:

在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:

window下:

必须加在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"

注意:前后二者区别,有无set,有无双引号。


[JVM中启用逃逸分析 DoEscapeAnalysis]
VM 参数: -server -XX:+DoEscapeAnalysis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值