`

Tomcat6 内存和线程配置

 
阅读更多

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

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

window下, 在catalina.bat最前面

  set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m

       一定加在catalina.bat最前面

set "CURRENT_DIR=%cd%"前面

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"
               connectionTimeout="60000"
               keepAliveTimeout="15000"
               maxKeepAliveRequests="1"
               redirectPort="443"
               ....../>

注意:可以多个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 - 是否反查域名,取值为:truefalse。为了提高处理能力,应设置为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中可以通过修改minProcessorsmaxProcessors的值来控制线程数。

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

6Tomcat增加一个应用

server.xmlHost标签中增加行

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

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

原创地址:http://feihan21.blog.51cto.com/1364153/1546440

 

 

 

 

分享到:
评论

相关推荐

    Tomcat 修改内存大小

    在这里可以设置初始化内存、最大内存和线程的内存大小。 * 初始化内存:如果机器的内存足够大,可以直接将初始化内存设置为 512M,如果机器内存较小可适当调小,对于运行了 EJB 的应用,最好不要低于 128M。 * 最大...

    Tomcat JVM内存设置方法

    ### Tomcat JVM内存设置方法详解 ...通过上述步骤,您可以有效地调整Tomcat的JVM内存设置,从而提高应用性能和稳定性。请注意,这些设置需要根据实际情况进行调整,并定期监控应用的运行状态以确保最佳性能。

    Tomcat虚拟内存

    4. **安装版Tomcat内存配置**:对于安装版Tomcat,如Tomcat6,可以通过`tomcat6w.exe`图形界面工具进行配置。在"Java"选项卡中,可以设置"Maximum Memory Pool"(最大内存池)和"Initial Memory Pool"(初始内存池)...

    tomcat中多线程对于servlet处理的4篇资料

    Tomcat允许通过添加自定义的Executor来替换默认的线程池,这样可以根据应用需求调整线程池的配置,例如设置更复杂的线程调度策略。 综上所述,理解Tomcat中的多线程处理对于优化Servlet性能和解决潜在的并发问题至...

    Tomcat6参数设置

    ### Tomcat6参数设置详解 #### 一、内存参数配置 Tomcat作为一款广泛使用的Java...综上所述,通过对Tomcat6的内存参数和线程池参数的合理配置,不仅可以提高系统的运行效率,还能够有效地应对高并发场景下的压力。

    Tomcat6 纯净版

    此外,它还增强了性能和稳定性,提供了更好的安全管理,并且在多线程处理和内存管理上有所优化。 【压缩包子文件的文件名称列表】"apache-tomcat-6.0.26" 是Tomcat6纯净版的具体版本号,其中“apache”是Tomcat所属...

    tomcat如何扩大内存

    本文将详细介绍如何调整 Tomcat 的内存配置,以解决这类问题。 ### 解决方案 #### 一、通过修改 Tomcat 配置文件增加内存 1. **找到 Tomcat 安装目录**: - 打开 Tomcat 的安装目录,通常会有一个 `bin` 文件夹...

    tomcat6和tomcat7

    【标题】:“Tomcat6和Tomcat7” 【描述】:“Tomcat服务器,包含了Tomcat6和Tomcat7两个版本” 【标签】:“Tomcat”、“服务器” 在IT行业中,Tomcat是一个广泛应用的开源Java Servlet容器,它实现了Java EE中...

    修改 TOMCAT 内存 的 方法 有图 有真相

    **修改TOMCAT内存的方法详解** Apache Tomcat是一款流行的开源Java Servlet容器,它用于部署和运行Java Web应用程序。在处理大型或复杂应用时,可能需要调整Tomcat的内存配置以优化性能。本文将详细介绍如何在不同...

    eclipse启动tomcat内存泄漏解决

    ### Eclipse启动Tomcat内存泄漏解决方案 #### 一、问题背景 在使用Eclipse集成开发环境(IDE)启动Tomcat服务器时,可能会遇到内存泄漏的问题。这种情况不仅会导致应用程序运行缓慢,严重时甚至会使得Tomcat服务器...

    tomcat6修改配置文件

    4. **内存配置**:在`bin/catalina.sh`或`bin/catalina.bat`启动脚本中,可以通过设置`JAVA_OPTS`环境变量来调整JVM的内存分配,如`-Xms`和`-Xmx`分别用于设置初始堆内存和最大堆内存。 5. **日志配置**:Tomcat的...

    tomcat 7 和 tomcat 8

    7. 性能优化:Tomcat 8在内存管理、线程池和垃圾收集等方面进行了优化,提升了服务器的性能。 8. 安全增强:提供了更多的安全特性,如更好的密码加密存储和更强的身份验证机制。 总结来说,Tomcat 7和Tomcat 8在...

    如何配置Tomcat的JVM虚拟机内存大小

    正确配置Tomcat的JVM内存和连接器参数,对于优化Web应用性能、提升用户体验至关重要。通过对`-Xms`、`-Xmx`等参数的细致调整,结合适当的垃圾回收策略,以及合理设置连接器参数,可以显著增强Tomcat服务器的稳定性和...

    tomcat6 64位 tomcat6 32位

    4. **安装配置**:32位和64位Tomcat的安装目录和环境变量配置略有不同,需根据实际情况进行设置。 5. **兼容性**:部分插件、库或应用程序可能只针对特定的Tomcat位数,安装前需确认其兼容性。 总结来说,选择32位...

    tomcat6工具

    2. JVM内存配置:合理设置-Xms和-Xmx参数,避免频繁的垃圾回收影响性能。 3. 日志优化:通过控制日志级别和采用异步日志,降低系统开销。 4. 数据库连接池:配置合适的数据库连接池大小,提高数据库访问效率。 五、...

Global site tag (gtag.js) - Google Analytics