关于jboss的线程问题+java.lang.outofmemoryError
近日来,用Jmeter做压力测试。发现,每台客户机使用800个线程组压力倍增。昨天的测试,到了今天下午都没有跑完。
仔细观察了下Jboss的错误日志,发现,jboss已经宕机了。
本身后台的环境是使用LVS作的负载均衡。目前apache负载均衡器方面,已经没有什么问题了。修改的线程组达到1000。据资料显示,apache默认的线程数是60,最高能达到1000
在http.conf中,加入下面模块:
- <IfModule mpm_winnt.c>
- ThreadsPerChild 150
- MaxRequestsPerChild 1000
- Win32DisableAcceptEx
- </IfModule>
根据 http://www.asymt.com/servers/windows/350.html 这篇文章所说,线程数超过170可能会导致内存不断的增加。这个没试过。我直接ThreadsPerChild 1000 MaxReqestPerChild 4000 暂时解决掉自己前面apache负载分配的压力。
后端的Jboss服务器线程数设置比较麻烦。
- <Connector port="80" address="${jboss.bind.address}"
- maxThreads="250" maxHttpHeaderSize="8192"
- emptySessionPath="true" protocol="HTTP/1.1"
- enableLookups="false" redirectPort="443" acceptCount="100"
- connectionTimeout="20000" disableUploadTimeout="true"
- compression="on" compressionMinSize="10"
- compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
- />
这里面原始的maxThreads分配为250. 这个值最好设置成平时最大的并行线程数多25%.
acceptCount 是指超过maxThreads可接受的排队数目
修改以上两个线程数目后,继续测试..
测试发现,原本正常运行的测试计划。这次基本都跑死。控制台报出 java.lang.outMemoryError:java heap space错误。在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。所以调整jvm的参数。
- set HEAP=-Xms1024m -Xmx1024m #堆内存池的大小值
- set NEW=-XX:NewSize=256m -XX:MaxNewSize=256m #新对象产生时,分配的内存。最好为最大对内存的四分之一
- set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50% #新对象内存比例
- set TENURING=-XX:MaxTenuringThreshold=2
- set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
- set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m
调整适合的内存参数。
关于jboss的线程问题+java.lang.outofmemoryError的更多相关文章
- JVM内存越多,能创建的线程越少,越容易发生java.lang.OutOfMemoryError: unable to create new native thread。
一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse ...
- 在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法
在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法 在Eclipse中运行Jboss时,时间太长可能有时候会出现java ...
- 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 创建线程数公式(MaxProcessMemory - JVMMemory – ReservedOsMemory)
剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutO ...
- eclipse:Tomcat设置jvm,解决java.lang.OutOfMemoryError: Java heap space 堆内存溢出
eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无 ...
- Web项目java.lang.OutOfMemoryError: PermGen space异常解决
接手一个新的Web项目,编译运行(Tomcat版本为7),运行的时候报出了java.lang.OutOfMemoryError: PermGen space的异常,搜了一下这样解释: PermGe ...
- java.lang.OutOfMemoryError: PermGen space及其解决方法
PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决 ...
- java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法
1 BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误.这往往是由于图片过大造成的.要想正常使用,则需要分配更少的内 ...
- 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)
http://www.educity.cn/wenda/351088.html 使用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap s ...
- java.lang.OutOfMemoryError处理错误
内存详解 原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多 ...
随机推荐
- 【285】ArcPy 暗色窗体设置
预览图 设置如下 Default:
- springMVC的多文件的异步上传实现
springMVC的MultipartFile与传统的ajax文件上传兼容性不好,采用如下的ajax方法,后台无法获取文件. $.ajax({ url: '/upload', type: 'POST' ...
- MySQL分组条件,group by order by limit 顺序
having 中如果没有用聚合函数(必须sum,min),涉及到的字段名称必须在select 中有对应字段名称才可以,用到聚合函数可以不必在select中有相应字段名称的 limit 2,3:2表示从 ...
- ORA-01145: 除非启用了介质恢复 否则不允许立即脱机
Microsoft Windows [版本 6.1.7601]版权所有 (c) 2009 Microsoft Corporation.保留所有权利. C:\Users\Administrator> ...
- 供参考的 php 学习路线
供参考的 php 学习路线 第一阶段第一讲,WEB基础 1.1 网站基本知识: 1.2 网络协议介绍: 1.3 B/S与C/S结构的区别: 1.4 WEB编程.网站开发技术介绍. ...
- 基于rank的优化
------------------siwuxie095 基于 rank 的优化 基于 size 的优化,在大多数情况下 ...
- jps, jinfo命令
jps主要用来输出JVM中运行的进程状态信息. -q 不输出类名.Jar名和传入main方法的参数 -m 输出传入main方法的参数 -l 输出main类或Jar的全限名 -v 输出传入JVM的参数 ...
- IFC标准是为了满足建筑行业的信息交互与共享而产生的统一数据标准,是建 筑行业事实上的数据交换与共享标准。本文概要介绍了IFC标准的产生及发展 历程,IFC的整体框架结构,简要说明了IFC标准的实现方法和过程,描述了 当前的应用以及我们应该更加积极地利用IFC标准为建筑软件行业服务。
- osm2pgsql windows “illegal option -W” error
新版本不支持 解决: 修改pg_hba.conf的METHOD为trust 参考:http://stackoverflow.com/questions/15510428/osm2pgsql-windo ...
- aspx页面上输出xml的问题
在aspx页面上输出xml,需要在后台输出编码格式和编码类型,如下代码: Response.Charset = "utf-8";//格式Response.ContentType = ...