На моем сервере 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
(заглавная) для переключения отображения потоков. Стоит взглянуть на различные основные нажатия клавиш.