Посчитать количество потоков процесса Linux

Иногда возникает необходимость посчитать количество потоков активно работает в Linux приложении.

Посчитать количество потоков процесса Linux

Определить количество потоков с помощь /proc

Самый простой способ определить количество потоков какого либо процесса, использование /proc. Каталог экспортирует в виде текстовых файлов большое количество информации, относящейся к существующим процессам и системному оборудованию, таким как ЦП, прерывания, память, диск и т. д.

cat /proc/<pid>/status

Команда покажет подробную информацию о процессе с <pid>, включая состояние процесса, родительский PID, UID, GID, количество используемых дескрипторов файлов и количество переключений контекста, а так же общее количество потоков.

Для примера можно просмотреть процесс в PID 3647208

cat /proc/3647208/status

Посчитать количество потоков процесса Linux

Из вывода видно, что процесс использует 102 потока.

В качестве альтернативы вы можете просто подсчитать количество каталогов, найденных в /proc/<pid>/task.

ls /proc/<pid>/task | wc

Для каждого потока, существует соответствующий каталог, созданный в /proc/<pid>/task, с именем, соответствующим его идентификатору потока. Таким образом, общее количество каталогов в /proc/<pid>/task представляет собой количество потоков.

Определить количество потоков с помощь ps

ps также может отображать отдельные потоки процесса (с опцией H). Следующая команда выведет общее количество потоков процесса. Параметр h необходим, чтобы скрыть заголовок.

ps hH p <pid> | wc -l

Добавить комментарий