`
daichangfu
  • 浏览: 260576 次
  • 性别: 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常用监控和管理命令

分享到:
评论

相关推荐

    tomcat7性能调优

    详细讲解tomcat7性能调优,对设置进行剖析说明,对进一步了解tomcat有一定帮助

    tomcat性能调优总结

    在Tomcat和应用程序进行了压力测试后,如果您对应用程序的性能结果不太满意,就可以采取一些性能调整措施了,当然了前提是应用程序没有问题,tomcat性能调优总结,欢迎下载

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

    本文档主要介绍了Tomcat 的性能调优的原理和方法。可作为公司技 术人员为客户Tomcat 系统调优的技术指南,也可以提供给客户的技 术人员作为他们性能调优的指导手册。

    tomcat 内存调优文档

    tomcat 常用参数设置。。。

    Tomcat性能调优

    Tomcat性能调优 tomcat的服务器性能优化文档,介绍全面的tomcat服务器调优技巧。

    Tomcat服务器性能调优几个方面[定义].pdf

    Tomcat服务器性能调优几个方面[定义].pdf

    Tomcat启动参数调优

    Tomcat启动参数调优,包括堆设置,收集器设置,并行收集器设置、并发收集器设置..及这些设置的举例

    Tomcat性能调优方案

    Tomcat性能调优方案,tomcat集群,tomcat配置 三、Apache集成Tomcat Web服务器专门处理HTTP请求,应用服务器是通过很多协议为应用提供商业逻辑。虽然Tomcat也可以作web服务器,但其处理静态html的速度比不上Apache...

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

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

    tomcat7 优化 性能调优

    tomcat7 优化 性能调优,优化tomcat的配置,修改启动模式,开启并且使用线程池,JVM优化,图文说明

    tomcat部署与内存调优

    TOMCAT应用服务器部署与内存调优 1、描述Tomcat应用服务器安装部署。 2、关于TOMCAT内存溢出及适当调整JVM内存大小。

    tomcat使用与调优,nginx

    tomcat 第⼀部分:Tomcat 系统架构与原理剖析 第⼆部分:Tomcat 服务器核⼼配置详解 第三部分:⼿写实现迷你版 Tomcat 第四部分:Tomcat 源码构建及核⼼流程源码剖析 第五部分:Tomcat 类加载机制剖析 第六部分:...

    Tomcat使用技巧集合

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

    tomcat优化调优文档

    tomcat优化调优文档,介绍了 tomcat的相关配置等信息。用于调优使用。

    Tomcat性能调优指导手册.pdf

    Tomcat性能调优指导手册 1. 概述 3 2. Java虚拟机性能调优 3 2.1 catalina.sh 或 catalina.bat 3 2.2 winNT服务 3 3. 禁用DNS查询 4 4. 调整线程数(连接数) 4 5. 使用gzip传输 5 6. 负载均衡 5 6.1 实现负载均衡的...

    Tomcat调优及相关汇总设置

    tomcat防止恶意攻击,内存溢出解决办法,部署多个tomcat,并做成Windows服务自启动

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

    优化提高tomcat性能.Tomcat参数调优 大家也许经常会遇到面试时问你会不会TOMCAT性能调优技术,现在奉上

Global site tag (gtag.js) - Google Analytics