`

Tomcat性能参数设置

    博客分类:
  • Java
阅读更多

默认参数不适合生产环境使用,因此需要修改一些参数

 

1、修改启动时内存参数、并指定JVM时区 (在windows server 2008 下时间少了8个小时):

 

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

 

window下, 在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m;-Duser.timezone=GMT+08;
一定加在catalina.bat最前面。

 

linux下,在catalina.sh最前面增加:

JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"

 

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

 

 

2、线程池配置(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"

maxThreads="600"

minSpareThreads="100"

maxSpareThreads="300"
               connectionTimeout="60000"
               keepAliveTimeout="15000"
               maxKeepAliveRequests="1"
               redirectPort="443"
               ....../>

maxThreads:Tomcat可创建的最大的线程数,每一个线程处理一个请求;

minSpareThreads:最小备用线程数,tomcat启动时的初始化的线程数;

maxSpareThreads:最大备用线程数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程;

acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,就是被排队的请求数,超过这个数的请求将拒绝连接。

connnectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
enableLookups:是否允许DNS查询

 

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

 

3、调整连接相关Connector的参数:

<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之间) the maximum number of HTTP requests that can be held in the pipeline until the connection is closed by the server. Setting this attribute to 1 disables HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and pipelining. Setting this to -1 allows an unlimited number of pipelined or keep-alive HTTP requests. If not specified, this attribute is set to 100.
  • maxHttpHeaderSize - http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
  • URIEncoding - 指定Tomcat容器的URL编码格式。
  • acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。defines the maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full are refused. The default value is 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线程 the maximum number of unused request processing threads that are allowed to exist until the thread pool starts stopping the unnecessary threads. The default value is 50.
  • maxThreads - 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。。 the maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200.
  • minSpareThreads - 最小空闲线程数,Tomcat初始化时创建的线程数 the number of request processing threads that are created when this Connector is first started. The connector will also make sure it has the specified number of idle processing threads available. This attribute should be set to a value smaller than that set for maxThreads. The default value is 4.
  • minProcessors - 最小空闲连接线程数,用于提高系统处理性能,默认值为10。(用于Tomcat4中)
  • maxProcessors - 最大连接线程数,即:并发处理的最大请求数,默认值为75。(用于Tomcat4中)

备注:

Tomcat4中可以通过修改minProcessors和maxProcessors的值来控制线程数。

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

 

 

 4、负载均衡、集群的配置

Tomcat6支持分布式部署,可以实现集群功能,提高响应能力。

 

5、

利用JMX监控Tomcat运行情况,需要手工调整启动参数,如下:

打开cataline.bat,增加一行

set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"

 

linux下修改cataline.sh:
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=%CATALINA_BASE\conf\logging.properties"

注意JDK\jre\lib\management\management.properties文件必须存在。

 

重新启动tomcat节点,然后用jconsole连接(此处端口wei10090)

 

6、Tomcat增加一个应用

在server.xml的Host标签中增加行

<Context displayName="OA" docBase="/app/web-apps/GACWP" path="" />

path代表上下文名称,空表示是根路径。

 

http://sosuny.iteye.com/blog/413930

分享到:
评论

相关推荐

    Tomcat性能优化1

    Tomcat性能优化设置tomcat的java虚拟机参数catalina.sh/batWindows下修改 $tomcat$\ bin \ catalina.

    tomcat 参数优化调整

    tomcat 优化,主要对tomcat进行介绍,对参数进行说明,并进行参数设置调整,提高性能、。

    Tomcat 安全配置与性能优化

    Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 JAVA_OPTS参数

    TOMCAT-5.5.X优化配置

    很好的TOMCAT-5.5.X优化配置文档,详细说明了各个的参数设置

    TOMCAT 配置及性能优化

    包括Tomcat内存参数的管理设置、JDK、虚拟目录、连接数相关设置

    tomcat中的几点配置说明

    在tomcat配置文件server.xml中的配置中,和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75 ...

    Tomcat调优.doc

    Tomcat 调优 性能优化 Tomcat调优  设置catalina.bat中的JAVA_OPTS参数 在C:\zxin10\Was\tomcat\bin目录下,找到catalina.bat文件,打开它,在echo Using CATALINA_BASE: %CATALINA_BASE%之前,加上

    Tomcat和JavaVirtualMachine的性能调优总结

    当然还有其他一些性能调优的设置,下图是我根据我机子的性能设置的一些参数值,给各位详细解释一下吧:1、URIEncoding="UTF-8":设置Tomcat的字符集。这种配置我们一般是不会设置的,因为关于乱码的转换我们会在具体...

    Tomcat\Tomcat优化和监控

    2、把tomcat安装为windows服务的时候,要把jvm内存设置成1G,同时一定要把这些参数加进去。 -XX:PermSize=64M -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=48m -Dcom.sun.management.jmxremote=true -Dcom.sun....

    tomcat性能优化方式简单整理

    我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数 JAVA_OPTS参数说明 server 启用jdk 的 server 版 Xms java虚拟机初始化时的最小内存 Xmx java虚拟机可使用的最大内存 XX: PermSize 内存永久...

    Tomcat优化和监控.docx

    2、把tomcat安装为windows服务的时候,要把jvm内存设置成1G,同时一定要把这些参数加进去。 -XX:PermSize=64M -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=48m -Dcom.sun.management.jmxremote=true -Dcom.sun....

    实战Nginx:取代Apache的高性能Web服务器 第一章

    张宴《实战Nginx:取代Apache的高性能Web服务器》pdf电子版下载,此资料网友共享,请购买作者正版书籍. 目录介绍: 第1部分 基础篇 第1章 Nginx简介 1.1 常用的Web服务器简介 1.2 Nginx简介 1.3 选择Nginx的理由 ...

    Linux运维从入门到高级全套案例v3.rar

    5.3.2 Tomcat性能优化……… 5.3.3 Resin安装配置… 5.3.4 Resin性能优化…… 5.3.5 Resin多实例配置…… 5.4 Nginx Tomcat动静分离…… 5.5 LNAMP高性能架构配置……… 5.6构建DNS域名解析服务器 5.7 MySQL主从高...

    jvm调优,java 虚拟机优化

    jvm虚拟机优化,参数设置,详细介绍jvm调优和Tomcat优化问题。

    Linux运维从入门到高级全套案例v3

    5.3. 2 Tomcat性能优化 85 5.3. 3 Resin安装配置 87 5.3. 4 Resin性能优化 88 5.3. 5 Resin多实例配置 89 5. 4 Nginx Tomcat动静分离 90 5. 5 LNAMP高性能架构配置 92 5. 6 构建DNS域名解析服务器 99 5. 7 MySQL主从...

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip

    Java秒杀系统方案优化高性能高并发学习实战源代码以及笔记..zip 章节笔记 第1章-课程介绍及项目框架搭建 知识点 使用spring boot 搭建项目基础框架 使用Thymeleaf做页面展示,封装Result统一结果 集成 mybatis + ...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 19-tomcat中JVM参数优化.avi │ ├─补充2:Redis3.0新特性、主从复制、集群视频教程 │ │ 打开必读.txt │ │ │ ├─相关资料 │ │ redis-3.0.1.tar.gz │ │ redis-3.0.2.tar.gz │ │ redis-3.2.1.gem │...

    apache性能测试工具ab使用详解

    只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。 性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。 ab是apache自带的压力测试...

    Java数据库编程宝典2

    8.5 使用索引来提高SQL查询的性能 8.6 视图 8.7 小结 第9章 连接和组合查询 9.1 连接表 9.1.1 连接的类型 9.2 键 9.2.1 主键 9.2.2 外键 9.3 使用内连接 9.3.1 使用等连接 9.3.2 使用非等连接 9.4 ...

Global site tag (gtag.js) - Google Analytics