Как выяснить, какие потоки используют много ресурсов ЦП на Wildfly 11 с помощью инструмента CLI? - PullRequest
0 голосов
/ 06 сентября 2018

Я использую Wildfly 11 с Java 8 на Amazon Linux. Как использовать инструмент Wildfly CLI для мониторинга использования потоков? У нас высокая загрузка ЦП на наших серверах приложений, и я пытаюсь выяснить, каковы проблемы и операции. У нас не установлена ​​jconsole на наших серверах, или, может быть, эта статья была бы полезна - http://www.mastertheboss.com/jboss-server/jboss-monitoring/how-to-monitor-jboss-cpu-usage.

В частности, мне интересно, как будет называться подсистема Wildfly, которую я должен ввести в инструмент CLI, которая будет указывать на длительно работающие / высокозатратные потоки использования процессора.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Чтобы выяснить, какой поток потребляет больше ЦП, вы должны собрать данные об использовании ЦП (в RHEL с помощью команды top (top -b -n 1 -H -p JBoss_PID)) и сбросить поток одновременно с отметкой времени при возникновении проблемы. В верхнем выводе команды вы можете идентифицировать идентификаторы процессов для потоков Java, использующих большой процент ЦП. Например, команда output top показывает, что процессор используется тремя потоками Java:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
  4382 root      25   0 1284m 480m  80m R 39.5 23.7  13:00.64 java
  6657 root      25   0 1284m 480m  80m R 39.5 23.7   7:23.10 java
  16322 root      25   0 1284m 480m  80m R 19.8 23.7  57:51.77 java

Используя инструмент анализатора дампов потока (TDA), вы можете загрузить дампы потоков, собранные с данными ЦП. Нажмите на столбец Native-ID в верхней правой панели, чтобы отсортировать по собственному идентификатору потока и дать перекрестную ссылку на облегченные идентификаторы потоков из верхнего вывода, чтобы увидеть потоки, потребляющие высокую загрузку ЦП.

0 голосов
/ 07 сентября 2018

Я бы использовал Java Mission Control и его функцию записи полета. Вам нужно будет взять копию jconsole.bat или jconsole.sh и отредактировать, чтобы запустить jmc с определенным classpath. Затем вы используете тот же пользовательский URL-адрес jmx, что и для jconsole

...