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

Tomcat6 一些调优设置内存和连接数

    博客分类:
  • java
阅读更多

公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64)

TOMCAT_HOME/bin/catalina.sh

添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"

问题解决(可能为调用JAR包过多原因)下面是网上看到一些设置

JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "

 

当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。具体数值可跟据实际情况设置

    <Connector port="80" protocol="HTTP/1.1"
               maxThreads="600"     
minSpareThreads="100"
maxSpareThreads="500"
acceptCount="700"

connectionTimeout="20000"
redirectPort="8443" />

 

这样设置以后,基本上没有再当机过。。。。。

              maxThreads="600"       ///最大线程数
minSpareThreads="100"///初始化时创建的线程数
maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要
的socket线程。


acceptCount="700"//
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理

 

----------------------------------------------------------------------------------------------------------------------------------

 

一、Tomcat的JVM提示内存溢出

查看%TOMCAT_HOME%\logs文件夹下,日志文件是否有内存溢出错误

二、修改Tomcat的JVM

1、错误提示:java.lang.OutOfMemoryError: Java heap space

Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,有可能导致系统无法运行。常见的问题是报Tomcat内存溢出错误,Out of Memory(系统内存不足)的异常,从而导致客户端显示500错误,一般调整Tomcat的使用内存即可解决此问题。

Windows环境下修改“%TOMCAT_HOME%\bin\catalina.bat”文件,在文件开头增加如下设置:set JAVA_OPTS=-Xms256m -Xmx512m

Linux环境下修改“%TOMCAT_HOME%\bin\catalina.sh”文件,在文件开头增加如下设置:JAVA_OPTS=’-Xms256m -Xmx512m’

其中,-Xms设置初始化内存大小,-Xmx设置可以使用的最大内存。

2、错误提示:java.lang.OutOfMemoryError: PermGen space

原因:
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存
放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的
Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用
中有很CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的
时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信
息了。
解决方法:

在catalina.bat的第一行增加:
set JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -
XX:MaxPermSize=256m
在catalina.sh的第一行增加:
JAVA_OPTS=-Xms64m -Xmx256m -XX:PermSize=128M -XX:MaxNewSize=256m -
XX:MaxPermSize=256m

3、JVM设置

堆的尺寸
-Xmssize in bytes
    设定Java堆的初始尺寸,缺省尺寸是2097152 (2MB)。这个值必须是1024个字节(1KB)的倍数,且比它大。(-server选项把缺省尺寸增加到32M。)
-Xmnsize in bytes
    为Eden对象设定初始Java堆的大小,缺省值为640K。(-server选项把缺省尺寸增加到2M。)
-Xmxsize in bytes
    设定Java堆的最大尺寸,缺省值为64M,(-server选项把缺省尺寸增加到128M。) 最大的堆尺寸达到将近2GB(2048MB)。

请注意:很多垃圾收集器的选项依赖于堆大小的设定。请在微调垃圾收集器使用内存空间的方式之前,确认是否已经正确设定了堆的尺寸。

垃圾收集:内存的使用
-XX:MinHeapFreeRatio=percentage as a whole number
    修改垃圾回收之后堆中可用内存的最小百分比,缺省值是40。如果垃圾回收后至少还有40%的堆内存没有被释放,则系统将增加堆的尺寸。
-XX:MaxHeapFreeRatio=percentage as a whole number
    改变垃圾回收之后和堆内存缩小之前可用堆内存的最大百分比,缺省值为70。这意味着如果在垃圾回收之后还有大于70%的堆内存,则系统就会减少堆的尺寸。
-XX:NewSize=size in bytes
    为已分配内存的对象中的Eden代设置缺省的内存尺寸。它的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:MaxNewSize=size in bytes
    允许您改变初期对象空间的上限,新建对象所需的内存就是从这个空间中分配来的,这个选项的缺省值是640K。(-server选项把缺省尺寸增加到2M。)
-XX:NewRatio=value
    改变新旧空间的尺寸比例,这个比例的缺省值是8,意思是新空间的尺寸是旧空间的1/8。
-XX:SurvivorRatio=number
    改变Eden对象空间和残存空间的尺寸比例,这个比例的缺省值是10,意思是Eden对象空间的尺寸比残存空间大survivorRatio+2倍。
-XX:TargetSurvivorRatio=percentage
    设定您所期望的空间提取后被使用的残存空间的百分比,缺省值是50。
-XX:MaxPermSize=size in MB
    长久代(permanent generation)的尺寸,缺省值为32(32MB)。

三、查看Tomcat的JVM内存

1. Tomcat6中没有设置任何默认用户,因而需要手动往Tomcat6的conf文件夹下的tomcat-users.xml文件中添加用户。

 

    如:<role rolename="manager"/>
          <user username="tomcat" password="tomcat" roles="manager"/>

    注:添加完需要重启Tomcat6。

 

2. 访问http://localhost:8080/manager/status,输入上面添加的用户名和密码。

 

3. 然后在如下面的JVM下可以看到内存的使用情况。

JVM

    Free memory: 2.50 MB Total memory: 15.53 MB Max memory: 63.56 MB

四、Tomcat连接数设置

在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。

其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。


web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。Unix中如何设置这些参数,请参阅Unix常用监控和管理命令

分享到:
评论

相关推荐

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

    ### Tomcat优化——Tomcat 的性能调优的原理和方法 #### 一、概述 Tomcat作为一款广泛使用的开源Web服务器容器,其性能直接影响到基于它的应用程序的表现。本文旨在介绍Tomcat性能调优的基本原理与具体实施方法,...

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

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

    tomcat7 优化 性能调优

    本文将围绕“Tomcat7优化与性能调优”的主题,深入探讨优化策略,包括但不限于配置调整、启动模式选择、线程池设置、JVM参数调整等方面。 #### 二、服务器资源考量 服务器所能提供的CPU、内存、硬盘等硬件资源对...

    Tomcat 调优及 JVM 参数优化

    总之,Tomcat调优和JVM参数优化是一个细致的过程,需要结合服务器硬件、应用负载和业务特性进行。通过合理的配置,不仅可以提高应用性能,还能降低服务器资源的浪费,实现更高效、稳定的运行环境。在实际操作中,...

    Tomcat调优及相关设置汇总-paulen.docx.rar_Tomcat调优及相关设置汇总_flowerd54

    《Tomcat调优及相关设置汇总》是一份详细探讨如何优化Apache Tomcat服务器性能的重要文档,由作者flowerd54编写。Tomcat作为广泛使用的开源Java Servlet容器,其性能调优对于提升Web应用的响应速度和处理能力至关...

    Tomcat使用技巧集合

    Tomcat6_调优设置内存和连接数 Tomcat+jndi+配置数据源过程 详细讲解tomcat工作原理 tomcat数据库连接池配置网上文章+csdn上的代码 疯狂的IT人整理Apache、Tomcat集群和负载均衡 Tomcat优化配置

    JVM优化3(Tomcat参数调优,JVM参数调优,jvm字节码,代码优化).pdf

    JVM参数调优部分未在提供的内容中显示,但一般来说,JVM参数调优会涉及到调整堆内存分配、堆外内存大小、垃圾回收器选择、新生代和老年代的比例,以及各种相关参数如-Xms、-Xmx、-Xmn、-XX:+UseG1GC等。这些调整能...

    优化提高tomcat性能.Tomcat参数调优

    - `maxKeepAliveRequests`: 设置单个连接允许的最大请求数,超出后连接会被关闭。 4. **JAR包扫描优化**: - 可以通过设置`unpackWARs=false`来避免每次启动时解压WAR包,从而减少启动时间。 - `...

    tomcat-jvm调优

    通过合理设置上述参数,可以显著提升Tomcat服务器的并发处理能力和响应速度,进而改善整体应用性能。需要注意的是,最佳的参数配置往往依赖于具体的应用场景和业务需求,因此建议结合实际测试结果进行调整优化。

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

    总的来说,JBOSS\Tomcat的最大连接数配置和JVM内存配置是服务器性能调优的关键步骤。理解并熟练掌握这些参数的含义和作用,能够帮助我们更好地应对高并发场景,提升系统的稳定性和响应效率。在进行配置时,需要结合...

    Tomcat实战-调优方案.docx

    【Tomcat调优】 Tomcat作为一款广泛应用的开源Servlet容器,其性能的优化对于提升Web应用程序的并发处理能力和响应速度至关重要。优化Tomcat主要分为两方面:服务器资源的优化和配置参数的调整。 首先,**服务器...

    使用visualvm工具进行tomcat性能调优和性能监控.docx

    在 Tomcat 的 server.xml 配置文件中,和连接数相关的参数有: * maxThreads:Tomcat 使用线程来处理接收的每个恳求。这个值表示 Tomcat 可创建的最大的线程数。默认值 150。 * acceptCount:指定当全部可以使用的...

    Tomcat JVN调优 详尽篇

    - **maxThreads**:表示Tomcat最多同时处理的连接数,默认值210。可以根据实际应用场景调整此参数,以适应不同的负载需求。 - **minSpareThreads**:表示即使在低负载情况下,也保持至少25个线程处于就绪状态,以便...

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

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

    tomcat调优

    在进行Tomcat调优时,首先需要理解其服务器与JVM的基本信息及其重要性。 **1.1 JVM区域分配** - **PSEdenSpace(新生代)**: 新创建的对象一般会被分配到这里。在垃圾回收过程中,大部分不再使用的对象将在这里被...

    Tomcat性能调优实战总结

    Tomcat性能调优是一个涉及多方面技术的复杂过程,主要包括对外部环境的调整和Tomcat自身配置的优化。在实际应用中,我们需要通过压力测试来评估系统的性能表现,然后根据测试结果进行必要的优化。 **1. 外部环境...

    weblogicTomcatWebsphere调优方法

    连接缓冲池参数配置,如最大连接数、最小连接数和空闲超时时间,以优化数据库访问;JVM配置也很关键,如-Xms和-Xmx设置堆内存大小,-XX:PermSize和-XX:MaxPermSize设定永久代大小,这些参数直接影响到JVM的性能表现...

Global site tag (gtag.js) - Google Analytics