`
leon1509
  • 浏览: 533269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

<转>Tomcat内存、连接数等性能参数设置

阅读更多
原贴地址:http://sosuny.iteye.com/blog/413930

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

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

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

window下, 在catalina.bat最前面:
set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
一定加在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代表上下文名称,空表示是根路径。



补充:
 <Connector   port="8080"  
      maxThreads="150"    
      minSpareThreads="25"    
      maxSpareThreads="75"  
      acceptCount="100"  
      />

  maxThreads="150"     表示最多同时处理150个连接 
  minSpareThreads="25"     表示即使没有人使用也开这么多空线程等待 
  maxSpareThreads="75"     表示如果最多可以空75个线程,例如某时刻有80人访问,之后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。 
  
  acceptCount="100"   当同时连接的人数达到maxThreads时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接
分享到:
评论

相关推荐

    tomcat配置 连接数(优化)

    标题中的“Tomcat配置连接数(优化)”指的是在Apache Tomcat服务器中调整与处理并发请求相关的设置,以提升服务器的性能和稳定性。这通常涉及到调整最大连接数、线程池大小、超时时间等核心参数。在高并发场景下,...

    JBOSS\Tomcat最大连接数配置和jvm内存配置.docx

    在JBOSSTomcat服务器的性能优化中,最大连接数配置和JVM内存配置是两个至关重要的环节,它们直接影响到服务器的响应速度和稳定性,尤其对于处理大量并发请求的场景。 首先,我们来看JBOSS最大连接数的配置。在`...

    tomcat7安装使用及jvm连接数参数调优

    Tomcat7 安装使用及 JVM 连接数参数调优 Tomcat7 是一个流行的 Java Web 服务器,主要用于部署和管理基于 Java 的 Web 应用程序。为了确保 Tomcat7 的稳定运行和高效性能,需要对其进行合理的安装、配置和优化。...

    解析Tomcat处理请求的类Connector<三>

    这里可以设置端口号、最大连接数、超时时间等参数,以适应不同的应用场景。 在提供的文件`tcnative-1.dll`中,我们可以推测这可能与APR库有关。APR库提供了操作系统级别的接口,如文件操作、网络I/O和本地进程管理...

    监控tomcat内存使用情况

    监控Tomcat内存使用情况是确保应用稳定运行的关键环节。Tomcat作为一款广泛应用的Java Servlet容器,其内存管理直接影响到Web应用程序的性能和响应速度。理解并监控这些内存指标可以帮助我们及时发现并解决潜在的...

    tomcat连接池的配置与性能测试

    3. **资源利用率**:监控系统的CPU、内存和数据库连接数,确保资源使用在合理范围内。 4. **压力测试**:通过增加请求量,观察系统在极限状态下的稳定性和响应速度。 5. **负载测试**:在预期的工作负载下运行系统,...

    Tomcat配置连接池说明

    这里配置了一个名为`jdbc/pip`的Oracle数据库连接池,其中`maxActive`参数定义了最大活动连接数,`maxIdle`参数定义了最大空闲连接数,`maxWait`参数定义了等待新连接的最大时间。 #### 2. 修改web.xml文件 web....

    linux下tomcat优化设置最大连接数内存jconsole监控.docx

    ### Linux 下 Tomcat 优化设置最大连接数及内存 JConsole 监控 #### 一、Tomcat 内存优化 ##### 1.1 基本原理 在启动 Java 应用程序时,JVM(Java 虚拟机)会为应用程序分配一定的初始内存和最大内存。这些设置对...

    Tomcat 安全配置与性能优化

    #### 一、Tomcat内存优化 ##### 1. JAVA_OPTS 参数说明 在进行Tomcat的性能优化时,内存优化是非常关键的一部分。这通常涉及对Tomcat启动参数的调整,特别是设置`JAVA_OPTS`参数。此参数可以在Tomcat的启动脚本`...

    Tomcat6参数设置

    ### Tomcat6参数设置详解 #### 一、内存参数配置 Tomcat作为一款广泛使用的Java应用服务器和Web容器,其性能优化尤为重要。特别是在资源管理方面,合理地设置内存参数能够显著提升应用程序的运行效率和稳定性。 *...

    Tomcat性能优化及JVM内存工作原理

    例如,调整最大连接数、工作模式、启用gzip压缩、调整JVM内存大小等。 Tomcat有三种工作模式:Bio、Nio和Apr。Bio是默认的工作模式,阻塞式I/O操作,没有任何优化技术处理,性能比较低。Nio是非阻塞式I/O操作,有...

    Tomcat-启动参数设置

    ### Tomcat 启动参数设置详解 #### 一、背景介绍 在部署Java Web应用程序时,经常使用Apache Tomcat作为应用服务器。然而,在高并发或大数据量处理的应用场景下,Tomcat可能会出现内存溢出等问题。为了提升Tomcat的...

    关于tomcat的配置方法

    6. **JVM配置**: 虽然不在`server.xml`中直接定义,但通过`CATALINA_OPTS`或`JAVA_OPTS`环境变量,你可以影响Tomcat使用的JVM参数,例如内存分配(`-Xms`和`-Xmx`)、垃圾回收策略(`-XX:+UseConcMarkSweepGC`)等。...

    Tomcat优化-Tomcat 的性能调优的原理和方法

    - **连接器配置优化**:调整Tomcat连接器的相关参数,如最大连接数、空闲时间等。 - **线程池配置**:合理设置线程池大小,以平衡响应时间和资源利用。 - **缓存策略**:利用JSP文件缓存和HTTP响应缓存策略,减少...

    tomcat配置数据库连接池

    - `initialSize`、`maxActive`、`maxIdle`和`minIdle`:控制连接池中连接的初始化大小、最大活动连接数、最大空闲连接数和最小空闲连接数。 - `maxWait`:当所有连接都已被使用时,等待新连接的最大时间。 3. 配置...

    tomcat参数配置[借鉴].pdf

    Tomcat参数配置详解 Tomcat是 Jakarta 项目的一...此外,还可以设置mysql的最大连接数,以提高数据库的性能。 Tomcat参数配置是提高Tomcat性能的关键。合理的参数设置可以提高Tomcat的处理能力,提高系统的整体性能。

    tomcat内存优化

    在`server.xml`文件中,可以调整与连接数相关的参数来提高性能。`maxThreads`定义了Tomcat能创建的最大线程数,用于处理请求,默认为200。如果预期的并发请求量较大,可以适当增加此值。`acceptCount`表示当所有线程...

Global site tag (gtag.js) - Google Analytics