Любые известные проблемы с ActiveMQ, работающим на SGI
У меня много проблем при попытке использовать ActiveMQ, и мне было интересно, есть ли какие-либо известные проблемы, работающие на оборудовании SGI - в частности, UV2k? Есть ли известные проблемы с Suse Linux? При запуске службы ActiveMQ запускается множество потоков, и появляется сообщение об ошибке "Недостаточно потоков, настроенных для selectChannelConnector". Попытка ограничения размера стека потока JVM без радости.
Снимок ActiveMQ 5.10
1 ответ
Я не слышал о UV2k, но это звучит как что-то с большим количеством процессоров / ядер, верно?
Jetty, который питает webgui для ActiveMQ, использует один акцептор соединения на четыре ядра (примерно). Максимальный размер пула потоков в Jetty составляет 256 потоков, поэтому если у вас более 1024 ядер, пула потоков будет недостаточно для Jetty. Быстрый гугл показывает, что UV2K имеет "до 4096 ядер" (что бы это ни значило, если это число, которое учитывает Jetty - это означает 1024 акцептора).
Вы можете изменить пул потоков Jetty, поместив этот элемент в bean-компонент "server" в файле conf/jetty.xml. Я оставляю правильный максимальный размер на ваше усмотрение, чтобы выяснить.
<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 (вам не нужно много для административного интерфейса). Посмотрите на ваш компонент Connector (тот же файл) и добавьте свойство <property name="acceptors" value="2"/>
,
По понятным причинам я не проверял вышеуказанный конфиг на упомянутой вами машине, поэтому считаю это "хорошим предположением", а не подтвержденным фактом.