在SGI上运行ActiveMQ的任何已知问题

时间:2014-09-03 19:29:43

标签: c++ activemq sgi

我在尝试使用ActiveMQ时遇到很多问题,并且想知道在SGI硬件上是否存在任何已知问题 - 特别是UV2k? Suse linux上是否存在任何已知问题? 在启动ActiveMQ服务时启动了大量线程,并收到一条错误消息,指出“为selectChannelConnector配置的线程不足”。尝试限制JVM线程堆栈大小没有任何乐趣。

ActiveMQ 5.10快照

1 个答案:

答案 0 :(得分:0)

我还没有听说过UV2k,但它听起来像有很多处理器/核心的东西,对吗?

为ActiveMQ的webgui供电的Jetty每四个核心(大致)使用一个连接接受器。 Jetty中默认的线程池大小最多为256个线程,因此如果你有超过1024个核心,则线程池对于jetty来说不够。一个快速的谷歌显示UV2K拥有多达4096个核心" (无论如何,如果这是Jetty考虑的数字 - 它意味着1024个接受者)。

您可以通过将此元素放入"服务器"来更改Jetty线程池。 conf / jetty.xml中的bean。我保留正确的最大尺寸,以便你弄明白。

<property name="threadPool">  
  <bean id="ThreadPool" class="org.eclipse.jetty.util.thread.QueuedThreadPool">
    <property name="minThreads" value="10"/>
    <property name="maxThreads" value="XXX"/>
  </bean>
</property>

您可以尝试的另一件事是手动将接受者的数量设置为较低的值,例如1(您对管理UI的需求不大)。查看您的Connector bean(相同文件),并添加属性<property name="acceptors" value="2"/>

由于显而易见的原因,我没有在你提到的机器上测试上面的配置,所以考虑一下&#34;好猜测&#34;而非确认的事实。