我在尝试使用 ActiveMQ 时遇到了很多问题,并且想知道在 SGI 硬件上运行是否存在任何已知问题 - 特别是 UV2k?在 Suse linux 上运行是否存在任何已知问题?启动 ActiveMQ 服务时启动了很多线程,并收到一条错误消息,指出“为 selectChannelConnector 配置的线程不足”。尝试限制 JVM 线程堆栈大小,但没有任何乐趣。
ActiveMQ 5.10 快照
我还没有听说过 UV2k,但它听起来像是有很多处理器/内核的东西,对吧?
Jetty 为 ActiveMQ 的 webgui 提供动力,每四个核心(大致)使用一个连接接受器。Jetty 中的默认线程池大小最大为 256 个线程,因此如果您有 1024 个以上的内核,则线程池对于 jetty 来说是不够的。一个快速的谷歌显示 UV2K 有“多达 4096 个内核”(不管这意味着什么,如果这是 Jetty 考虑的数字 - 这意味着 1024 个接受器)。
您可以通过将此元素放入 conf/jetty.xml 中的“服务器”bean 中来更改 Jetty 线程池。我将正确的最大尺寸留给您自己弄清楚。
<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 不需要太多)。查看您的连接器 bean(同一文件),并添加属性<property name="acceptors" value="2"/>
.
出于显而易见的原因,我没有在您提到的机器上测试上述配置,因此将其视为“好猜测”而不是已确认的事实。