2016-05-12 5 views
0

У нас есть экземпляр Wildfly с простым приложением java rest, запущенным на нем на 36-ядерном сервере. Приложение не имеет заданий по умолчанию, работающих в фоновом режиме, оно просто отвечает на запросы пользователей (< 500 в день).Проанализируйте удаленный стек отладки java-приложения на Wildfly

Наш администратор заметил странное поведение сегодня ночью. Экземпляр wildfly, по-видимому, имел полную пропускную способность сервера с 2:00 утра. В то время ни один пользователь не мог использовать приложение. Нет файлов журналов между последним действием пользователя вечером и первым действием пользователя сегодня утром.

Я запустил удаленный отладчик в затмении и хотел бы понять, что на самом деле все потоки, начатые Wildfly?

  1. Thread[MSC service thread 1-xx](Running) 68 записей. Для чего эти темы? Могут ли они повлиять на охват производительности/мощности? Могу ли я ограничить количество этих потоков? Я должен сделать это?
  2. Deamon Thread [weld-worker-xx](Running) 25 записей.
  3. Thread[default task-x](Running) 8 записей. Это, вероятно, фактические задачи пользователя?
  4. Thread[XNIO-1 I/O-x](Running) 2 записей. Вход/вывод в базу данных? Или любой файл, например, журнал e.q.?
  5. Daemon Thread [Transaction Reaper](Running)
  6. Deamon Thread [Transaction Reaper Worker 0](Running)
  7. Thread [Periodic Recovery](Running)
  8. Много <not responding>. Что это значит? Потоки запущены, но я не могу разрешить это?
+0

Это довольно широкий вопрос, но я подозреваю, что ваши проблемы связаны с потоками, которые не отвечают. Я бы предположил, что это те, которые сильно крутятся и едят ваш процессор. – Kayaman

+0

Возможно, вы также захотите выпустить 'kill -3 ', чтобы Wildfly печатал дамп потока в stdout (который должен быть перенаправлен на некоторый файл). Сохраните дамп для последующего анализа. – Kayaman

+0

Привет, Kayaman, спасибо за подсказку. Нити '' исчезли после перезагрузки, и производительность стала разумнее. Мы попытаемся напечатать дамп потока при следующей ошибке. Меня все еще интересуют объяснения ко всем другим элементам стека потоков, просто чтобы понять, что происходит в обычном режиме. Поэтому любые объяснения были бы замечательными! –

ответ

0

В общем, вы можете взглянуть на подсистемы нитей в wildfly:

https://docs.jboss.org/author/display/WFLY8/Threads+subsystem+configuration

Эта настройка производительности руководство также очень полезно для понимания темы и пулы:

http://www.mastertheboss.com/jboss-server/jboss-performance/wildfly-performance-tuning

Указанные типы резьбы, AFAICT:

Нити MSC являются модульными резьбами для обслуживания. Они могут быть ограничены по конфигурации здесь: https://issues.jboss.org/browse/MSC-144 (-Dorg.jboss.server.bootstrap.maxThreads)

резьбы по умолчанию: резьба I/O в бассейнах, определяемых нити подсистем для выполнения различных задач.

Нити XNIO: Undertow опирается на API XNIO для создания потоков работ с использованием ограниченного очереди-пула потоков. https://developer.jboss.org/thread/241230?start=0&tstart=0 - некоторые хорошие настройки производительности советы здесь: http://www.mastertheboss.com/jboss-server/jboss-performance/wildfly-performance-tuning

приварных рабочие потоки являются нитью использует реализация CDI и могут быть настроены как таковые: http://docs.jboss.org/weld/reference/latest/en-US/html/configure.html#_thread_pool_configuration. Кажется, что сварка поддерживает пул потоков для каждого развертывания (https://issues.jboss.org/browse/WFLY-4653) и настраивается с WF9 вперед в автономном режиме.XML

Transaction жнец и работник отвечают за мониторинг JTA транзакций и время ожидания и т.д. http://www.mastertheboss.com/jboss-server/jboss-configuration/configuring-transactions-jta-using-jboss-as7-wildflyhttp://www.hhutzler.de/blog/a-deeper-dive-into-transaction-timeouts-with-jee7wildfly-and-oracle-rac/

Reriodic нить восстановление: После сбоя системы периодического восстановления резьбы следует использовать XA XA восстановления и фиксации совершить это транзакции без вмешательства пользователя. http://www.hhutzler.de/blog/a-deep-dive-into-2-phase-commit-with-wildfly-and-oracle-rac/

 Смежные вопросы

  • Нет связанных вопросов^_^