Любые известные проблемы с 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"/>,

По понятным причинам я не проверял вышеуказанный конфиг на упомянутой вами машине, поэтому считаю это "хорошим предположением", а не подтвержденным фактом.

Другие вопросы по тегам