近日来,用Jmeter做压力测试。发现,每台客户机使用800个线程组压力倍增。昨天的测试,到了今天下午都没有跑完。
仔细观察了下Jboss的错误日志,发现,jboss已经宕机了。

本身后台的环境是使用LVS作的负载均衡。目前apache负载均衡器方面,已经没有什么问题了。修改的线程组达到1000。据资料显示,apache默认的线程数是60,最高能达到1000
在http.conf中,加入下面模块:

  1. <IfModule mpm_winnt.c>
  2. ThreadsPerChild 150
  3. MaxRequestsPerChild 1000
  4. Win32DisableAcceptEx
  5. </IfModule>

根据 http://www.asymt.com/servers/windows/350.html 这篇文章所说,线程数超过170可能会导致内存不断的增加。这个没试过。我直接ThreadsPerChild 1000 MaxReqestPerChild 4000 暂时解决掉自己前面apache负载分配的压力。

后端的Jboss服务器线程数设置比较麻烦。

  1. <Connector port="80" address="${jboss.bind.address}"
  2. maxThreads="250" maxHttpHeaderSize="8192"
  3. emptySessionPath="true" protocol="HTTP/1.1"
  4. enableLookups="false" redirectPort="443" acceptCount="100"
  5. connectionTimeout="20000" disableUploadTimeout="true"
  6. compression="on" compressionMinSize="10"
  7. compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  8. />

这里面原始的maxThreads分配为250. 这个值最好设置成平时最大的并行线程数多25%.
acceptCount 是指超过maxThreads可接受的排队数目

修改以上两个线程数目后,继续测试..



测试发现,原本正常运行的测试计划。这次基本都跑死。控制台报出 java.lang.outMemoryError:java heap space错误。在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。所以调整jvm的参数。

  1. set HEAP=-Xms1024m -Xmx1024m #堆内存池的大小值
  2. set NEW=-XX:NewSize=256m -XX:MaxNewSize=256m #新对象产生时,分配的内存。最好为最大对内存的四分之一
  3. set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50% #新对象内存比例
  4. set TENURING=-XX:MaxTenuringThreshold=2
  5. set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
  6. set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

调整适合的内存参数。

关于jboss的线程问题+java.lang.outofmemoryError的更多相关文章

  1. JVM内存越多,能创建的线程越少,越容易发生java.lang.OutOfMemoryError: unable to create new native thread。

    一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse ...

  2. 在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法

    在Eclipse中运行Jboss时出现java.lang.OutOfMemoryError:PermGen space及其解决方法 在Eclipse中运行Jboss时,时间太长可能有时候会出现java ...

  3. 剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 创建线程数公式(MaxProcessMemory - JVMMemory – ReservedOsMemory)

    剥下“java.lang.OutOfMemoryError: unable to create new native thread”的外衣 星期一早上到了公司,据称产品环境抛出了最可爱的异常—OutO ...

  4. eclipse:Tomcat设置jvm,解决java.lang.OutOfMemoryError: Java heap space 堆内存溢出

    eclipse 有启动参数里设置jvm大小,因为eclipse运行时自己也需要jvm,所以eclipse.ini里设置的jvm大小不是具体某个程序运行时所用jvm的大小,这和具体程序运行的jvm大小无 ...

  5. Web项目java.lang.OutOfMemoryError: PermGen space异常解决

    接手一个新的Web项目,编译运行(Tomcat版本为7),运行的时候报出了java.lang.OutOfMemoryError: PermGen space的异常,搜了一下这样解释:   PermGe ...

  6. java.lang.OutOfMemoryError: PermGen space及其解决方法

    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决 ...

  7. java.lang.OutOfMemoryError: bitmap size exceeds VM budget解决方法

    1 BitmapFactory.decodeFile(imageFile); 用BitmapFactory解码一张图片时,有时会遇到该错误.这往往是由于图片过大造成的.要想正常使用,则需要分配更少的内 ...

  8. 应用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap space)

    http://www.educity.cn/wenda/351088.html 使用jacob组件造成的内存溢出解决方案(java.lang.OutOfMemoryError: Java heap s ...

  9. java.lang.OutOfMemoryError处理错误

    内存详解 原因: 常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据: 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收: 3.代码中存在死循环或循环产生过多 ...

随机推荐

  1. Ubantu下安装adobe flash player插件

    用火狐看视频,要打开Adobe官网下载xxxx,太麻烦. 可以在Terminal下输入: apt-get install flashplugin-nonfree 好了.

  2. python实现文件下载的方法总结

    前端时间遇到一个通过url下载文件的需求,只需要简单的编写一个py脚本即可.从网上搜了下python实现文件下载的方法,总结如下,备查. 以下方法均已测试,环境win8.1  python2.6/2. ...

  3. OpenGL顶点缓冲区对象

    [OpenGL顶点缓冲区对象] 显示列表可以快速简单地优化立即模式(glBegin/glEnd)的代码.在最坏的情况下,显示列表的命令被预编译存到命令缓冲区中,然后发送给图形硬件.在最好的情况下,是编 ...

  4. ora-28547:连接服务器失败,可能是 Oracle Net 管理失败

    检查如下: 监听程序的配置文件 发现多了 (PROGRAM = extproc) 去掉后如下: # listener.ora Network Configuration \dbhome_1\netwo ...

  5. 【原创】11. MYSQL++ 之 Quoting 与 Escaping

    1. 综述 其实一看到这两个单词的时候我有点莫名其妙,可能英语没有学好,我的理解就是quoting是“引用”的意思,而Escaping是“逃脱”的意思.后来在看到了作者的TUTORIAL之后才大致明白 ...

  6. day58-activiti 02-历史数据查询

    Activity 笔记  第二天 今天内容安排: 1.历史数据查询 办过多少个任务, 这些历史数据有时候我们也需要去查询一下. 本身day02这个项目就没有导jar包,有点类似于maven,在你的项目 ...

  7. 在TFS中获取项目,获取最新和上传(迁入)

    一.在TFS中获取项目: (1)team (2)connect to team.... (3)选择服务地址,然后close (4)然后映射本地文件夹下载项目 (5)mapped添加映射,在map下就可 ...

  8. 682. Baseball Game 棒球游戏 按字母处理

    [抄题]: You're now a baseball game point recorder. Given a list of strings, each string can be one of ...

  9. Windows Chocolatey

    一.简介 Chocolatey是Windows下包管理工具,可以使用 Chocolatey 来安装应用程序.   二.安装 1)在线安装:参见 主页 官网:https://chocolatey.org ...

  10. bzoj5392 [Lydsy1806月赛]路径统计

    传送门 分析 我们设sum[x]为小于等于x的点现在有多少联通 于是一个序列合法当且只当sum[R]-sum[L-1]=len且所有点度数不大于2 我们知道如果对于序列[L,R]满足条件则[L+1,R ...