[JBOSS]JBOSS性能调试的部分参数
<mbean code=”org.jboss.util.threadpool.BasicThreadPool”
name=”jboss.system:service=ThreadPool”>
<attribute name=”Name”>JBoss System Threads</attribute>
<attribute name=”ThreadGroupName”>System Threads</attribute>
<attribute name=”KeepAliveTime”>60000</attribute>
<attribute name=”MaximumPoolSize”>10</attribute>
<attribute name=”MaximumQueueSize”>1000</attribute>
<attribute name=”BlockingMode”>run</attribute>
</mbean>
name=”jboss.system:service=ThreadPool”>
<attribute name=”Name”>JBoss System Threads</attribute>
<attribute name=”ThreadGroupName”>System Threads</attribute>
<attribute name=”KeepAliveTime”>60000</attribute>
<attribute name=”MaximumPoolSize”>10</attribute>
<attribute name=”MaximumQueueSize”>1000</attribute>
<attribute name=”BlockingMode”>run</attribute>
</mbean>
上面是JBOSS的默认配置,其中:
- Name:在pool中threads的名称
- ThreadGroupName:Thread group的名称
- KeepAliveTime:当threads空闲时,保持活动的最长时间(单位毫秒)
- MaximumPoolSize:可以并发的thread的最大数目
- MinimumPoolSize:可以并发的thread的最小数目
- MaximumQueueSize:允许等待的request的最大数目
-
BlockingMode:等待队列满了以后的处理方式
- abort – 抛出RuntimeException异常
- run – 请求的thread直接执行任务
- wait – 请求的thread等待队列的空闲。(使用这个需要注意:MinimumPoolSize必须设置大于0)
- discard – 请求直接丢弃
- discardoldest – 检查是否有任务将要结束并需要请求新的任务,如果没有就执行这个请求的任务
所以在部署的时候需要根据实际情况合理的设置各个参数。
设置可以直接修改启动模式下的conf/jboss-service.xml中对应的部分,这种修改需要重新启动JBOSS。
也可以在运行时刻通过控制台修改:jmx-console下选择jboss.system中的service=ThreadPool ,然后修改对应的值,但重新启动后该设置失效。
转自:http://blog.csdn.net/wolma/archive/2006/11/02/1362098.aspx
JBoss 性能优化(解决Jboss内存紧张的问题)
修改$JBOSS_HOME/bin/run.conf文件
JAVA_OPTS=”-Xms 520m -Xmx 1220m -Xss 15120k +XX:AggressiveHeap”
1. +XX:AggressiveHeap
1. +XX:AggressiveHeap
这使得 Xms 1220m没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
另外Xmx作为允许jvm使用的最大内存数量,不应该超过物理内存的90%。
而之所以使用了这个参数,是因为不加的话,JBoss会在运行一天左右的时间后迅速崩溃,甚至半个小时就崩溃。
2. -Xss 15120k
这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
这 就是JBoss刚启动时,还有200Mb内存富余,但会在一个小时内迅速用完,因为服务器的threads在迅速增加。前3天,每天都多吃80Mb左右的 swap.在第四天开始稳定下来。原因是:服务器在线程到达100之后,一般不再增加新的线程,新增加的在用完之后,会被迅速 destroy,1.25-2.10所使用的线程基本是1.21- 1.23创建的,因此没有再消耗新的内存。服务器持续运行时间达到20天。
另外Xmx作为允许jvm使用的最大内存数量,不应该超过物理内存的90%。
而之所以使用了这个参数,是因为不加的话,JBoss会在运行一天左右的时间后迅速崩溃,甚至半个小时就崩溃。
2. -Xss 15120k
这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.
这 就是JBoss刚启动时,还有200Mb内存富余,但会在一个小时内迅速用完,因为服务器的threads在迅速增加。前3天,每天都多吃80Mb左右的 swap.在第四天开始稳定下来。原因是:服务器在线程到达100之后,一般不再增加新的线程,新增加的在用完之后,会被迅速 destroy,1.25-2.10所使用的线程基本是1.21- 1.23创建的,因此没有再消耗新的内存。服务器持续运行时间达到20天。
3. -Xms
指定初始化内存大小
作如下修改:
1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。现在的JAVA_OPTS为:
-Xms 520m -Xmx 900m -Xss 128k
2.修改deploy/jbossweb-tomcat55.sar/service.xml
将maxThreads根据目前的访问量由默认的250降为75,并加入2个参数: maxSparseThreads=”55″,minSparseThreads=”25″
3.去掉了一些不用的服务。
1.修改JAVA_OPTS,去掉+XX:AggressiveHeap,修改Xss。现在的JAVA_OPTS为:
-Xms 520m -Xmx 900m -Xss 128k
2.修改deploy/jbossweb-tomcat55.sar/service.xml
将maxThreads根据目前的访问量由默认的250降为75,并加入2个参数: maxSparseThreads=”55″,minSparseThreads=”25″
3.去掉了一些不用的服务。
版权声明:本文为hhj039原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。