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"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 - 是否反查域名,取值为: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+主要对以下参数调整
maxThreadsTomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。acceptCount指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。connnectionTimeout网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。minSpareThreadsTomcat初始化时创建的线程数。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://blog.sina.com.cn/cchao06

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/weiguo21/p/4824021.html

tomcat内存溢出问题解决思路相关推荐

  1. Tomcat内存溢出解决办法

    工作中,Tomcat内存溢出遇到两次了,就在网上找了些资料,将解决办法分享一下:   使用Java程序从数据库中查询大量的数据时出现异常: java.lang.OutOfMemoryError: Ja ...

  2. linux/centos 解决Tomcat内存溢出,centostomcat

    2019独角兽企业重金招聘Python工程师标准>>> linux/centos 解决Tomcat内存溢出,centostomcat Tomcat本身不能直接在计算机上运行,需要依赖 ...

  3. myeclipse tomcat内存溢出解决方法

    为什么80%的码农都做不了架构师?>>>    Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出. MyEclipse启动Tomcat无视catalina.b ...

  4. java最大内存_JAVA:测试java虚拟机支持的最大内存 Xmx 值?Tomcat 内存溢出?

    如下命令,即可测试:不断调整n的值,windows上32位的1.6x为: 1610m java -Xmx1610M -version java -Xmx1610m -version 网摘的tomcat ...

  5. div固定大小文字溢出自动缩小_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!

    写在前面 随着系统并发量越来越高,Tomcat所占用的内存就会越来越大,如果对Tomcat的内存管理不当,则可能会引发Tomcat内存溢出的问题,那么,如何防止Tomcat内存溢出呢?我们今天就来一起 ...

  6. oom 如何避免 高并发_【高并发】高并发环境下如何防止Tomcat内存溢出?看完我懂了!!...

    [高并发]高并发环境下如何防止Tomcat内存溢出?看完我懂了!! 发布时间:2020-04-19 00:47, 浏览次数:126 , 标签: Tomcat 写在前面 随着系统并发量越来越高,Tomc ...

  7. tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页...

    2019独角兽企业重金招聘Python工程师标准>>> tomcat内存溢出(修改catalina.bat后windows启动tomcat服务没有效果) | 王猛的个人主页. 转载于 ...

  8. MyEclipse 2015 运行tomcat 内存溢出的解决方法

    MyEclipse 2015 运行tomcat 内存溢出的解决方法 参考文章: (1)MyEclipse 2015 运行tomcat 内存溢出的解决方法 (2)https://www.cnblogs. ...

  9. Android加载图片内存溢出问题解决方法

    这篇文章主要介绍了Android加载图片内存溢出问题解决方法,本文讲解使用BitmapFactory.Options解决内存溢出问题,需要的朋友可以参考下 1. 在Android软件开发过程中,图片处 ...

最新文章

  1. android播放器:mediaplayer
  2. body里写注释 postman_HTTP Status 415 – Unsupported Media Type(使用@RequestBody后postman调接口报错)...
  3. zabbix 3.2安装部署(一)
  4. 学完了python能做什么-学完Python能做什么
  5. Flyweight Pattern简单随笔
  6. POJ——字符串插入
  7. wxpython 调用子窗口_wxpython入门第一步(简单例子)
  8. Qt文档阅读笔记-官方Form Extractor Example实例解析
  9. mysql创建表shop_ShopXO商城-支付方式 - 数据库设计 - 数据库表结构 - 果创云
  10. EasyUI扩展方法
  11. wordpress php 模板修改,教你如何修改wordpress模版技巧分享
  12. php 费率计算_如何计算您的小时费率
  13. 防止多次快速点击打开多个activity的问题
  14. .bat文件和脚本文件
  15. 【一年总结】记我的大一生活
  16. 自动透视校正为四边形对象
  17. 今天是2022年5月21日
  18. 学计算机的怎样提升打字速度,想提高打字速度吗?
  19. SQL SERVER中PERCENTILE_CONT和PERCENTILE_DISC
  20. 合肥工业大学计算机与信息学院学生会宗旨,合肥工业大学宣城校区第一届学生会成立大会召开...

热门文章

  1. RxPermissions 源码解析之举一反三
  2. CodeVS 1044 拦截导弹(DP)
  3. Spark 宽依赖和窄依赖
  4. iOS之地理位置及定位系统 -- 入门笔记(用Swift)
  5. R中统计假设检验总结(一)
  6. unbuntu使用经典界面
  7. C#中获取当前时间:System.DateTime.Now.ToString()用法
  8. 极限编程与敏捷开发(4)
  9. Flask爱家租房--房屋管理(获取房屋详情)
  10. java项目打镜像_docker通过dockerfile打java项目镜像