Назад | Перейти на главную страницу

Как найти текущее количество потоков Tomcat

На моем сервере Linux я запускаю tomcat как root, и когда я запускаю ps aux он дает следующий результат.

root     25667  0.1 29.2 4574004 306980 ?      Sl   Apr27  33:57 /usr/local/java/bin/java -Djava.util.logging.config.file...

Это только родительский процесс, но когда я запускаю htop Я вижу все остальные дочерние процессы (какие потоки?). Пример вывода для нескольких строк приведен ниже.

  PID USER      PRI  NI  VIRT   RES   SHR S CPU% MEM%   TIME+  Command                                                              
25668 root       15   0 4466M  299M 14208 S  0.0 29.3  0:01.23 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25669 root       18   0 4466M  299M 14208 S  0.0 29.3  0:54.84 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25670 root       15   0 4466M  299M 14208 S  0.0 29.3  0:00.25 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25671 root       15   0 4466M  299M 14208 S  0.0 29.3  0:00.54 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25672 root       18   0 4466M  299M 14208 S  0.0 29.3  0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25673 root       15   0 4466M  299M 14208 S  0.0 29.3  0:17.96 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25674 root       15   0 4466M  299M 14208 S  0.0 29.3  0:20.01 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t
25675 root       19   0 4466M  299M 14208 S  0.0 29.3  0:00.00 /usr/local/java/bin/java -Djava.util.logging.config.file=/usr/local/t

Итак, я хочу получить список дочерних процессов с помощью одной команды. Я установил maxThreads равным 200 в файле конфигурации и хочу проверить количество текущих потоков, подсчитав дочерние потоки.

Достаточно просто сделать: ps -eLf | grep java

Возможно, придется отрегулировать (grep можно улучшить, чтобы получить то, что вы ищете).

Вы можете запустить:

ps -o nlwp PID

(PID будет pid вашего процесса)

nlwp = количество легких процессов

Если у вас установлен JDK, очень полезным способом мониторинга этого (и различных размеров куч) в реальном времени является jconsole, которая представляет собой программу с графическим интерфейсом (если у вас javac, у вас тоже должно быть это). Также есть такие вещи, как jstat и jinfo и другие. Чтобы воспользоваться jconsole, вам может потребоваться включить JMX (это также можно сделать для удаленных подключений). Вам нужно будет запустить эти инструменты от имени того же пользователя, на котором запущена JVM, которую вы хотите проверить.

Если вы используете top или htop, тогда вы можете ввести H (заглавная) для переключения отображения потоков. Стоит взглянуть на различные основные нажатия клавиш.