当前位置:  开发笔记 > 编程语言 > 正文

ActiveMQ OutOfMemory无法创建更多线程

如何解决《ActiveMQOutOfMemory无法创建更多线程》经验,为你挑选了1个好方法。

我正在模拟服务器的重载,我收到此错误:

java.lang.OutOfMemoryError: unable to create new native thread

我在这个页面http://activemq.apache.org/javalangoutofmemory.html中读过,我可以增加内存大小.但是我该怎么做?我需要修改哪个文件?我试图通过bin/activemq脚本传递参数,但没有运气.



1> 小智..:

您的案例对应于大量的线程.有3种方法可以解决它:

减少线程数(即文档中的-Dorg.apache.activemq.UseDedicatedTaskRunner = false)

通过-Xss选项减少每线程堆栈大小(默认值:Win/Linux上32位Java为320 KiB,Win/Linux上为64位Java为1024 KiB,请参阅doc)

减少(不扩展)堆大小-Xmx选项为每个线程堆栈腾出空间(默认情况下在ActiveMQ脚本中为512 MiB)

注意:如果堆栈或堆太小,则必须导致另一个OutOfMemoryError.

您可以使用ACTIVEMQ_OPTS shell变量指定它们(在UNIX中).例如,运行ActiveMQ as

ACTIVEMQ_OPTS=-Xss160k bin/activemq

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有