Linux сколько потоков использует приложение

Как я могу отслеживать количество потоков процесса в Linux?

Я хотел бы отслеживать количество потоков, используемых конкретным процессом в Linux. Есть ли простой способ получить эту информацию, не влияя на производительность процесса?

Как насчет того, чтобы процесс приложения выполнялся только на короткое время? (Скажите 2 секунды.) — user2023370

18 ответы

Я считаю, тебе следует вычесть 1 из него, потому что он печатает строку вроде USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND для заголовка таблицы. — AhmetB – Google

-1 Зачем направлять вывод в wc когда ты мог просто ps -o thcount ? Увидеть этот ответ. — Поток

andrzejdoro, вы можете включить его в настройках htop, просто нажмите F2 (настройка) — Настройка столбцов — выберите NLWP в Доступных столбцах и переместите его в Активированные столбцы — F10 для сохранения — славянский

где nlwp стенды для Количество легких процессов (потоков), таким образом ps псевдонимы nlwp в thcount Это означает, что

$ ps -eo nlwp | tail -n +2 | awk ' < num_threads += $1 >END < print num_threads >' 

Самый полезный ответ здесь. Особенно watch команда. Однако обратите внимание, что использование thcount может потерпеть неудачу для некоторых (Red Hat . ), хотя nlwp работал у меня. — Джошуа Детвайлер

Чтобы получить идентификатор процесса с заданным именем, используйте pidof or pgrep . Например, ps -o nlwp $(pidof chrome) or ps -o nlwp $(pgrep chrome) . — хмофрад

Каждый поток в процессе создает каталог в /proc//task . Подсчитайте количество каталогов, и вы получите количество потоков.

Чтобы добавить к приведенному выше комментарию. Вы можете использовать эту команду, чтобы узнать количество потоков: find /proc//task -maxdepth 1 -type d -print | wc -l . Просто замените с вашим идентификатором процесса, который вы можете получить из top или с помощью ps — Навигатрон

cat /proc//status | grep Threads 

ps -eLf в оболочке должен предоставить вам список всех потоков и процессов, которые в настоящее время выполняются в системе. Или вы можете бежать top затем нажмите «H», чтобы переключить списки цепочек.

Это соус для меня. Я не хочу ограничивать это только одним процессом. Легко добавить -p к этому, если необходимо, или что-нибудь еще. Это минимум, который вам нужен, чтобы увидеть список потоков. — Эрик Робертсон

Добро пожаловать в StackOverflow. Возможно, это должен быть комментарий к ответу slav0nic. Однако, насколько я понимаю, когда вы впервые присоединяетесь к SO, вы (все еще) не можете комментировать ответы, пока не приобретете некоторую репутацию, поэтому добавление ответа — это все, что вы можете сделать. Ты прав; вы не должны считать строку заголовка из ps как одна из ниток. — Джонатан Леффлер

Читайте также:  Чем хорош linux mint

$ ps H p pid-id H — перечисляет все отдельные потоки в процессе or $cat /proc/pid-id/status pid-id — это идентификатор процесса например .. (усеченный вывод ниже)

root@abc:~# cat /proc/8443/status Name: abcdd State: S (sleeping) Tgid: 8443 VmSwap: 0 kB Threads: 4 SigQ: 0/256556 SigPnd: 0000000000000000 

JStack довольно недорогой — один из вариантов — направить вывод через grep, чтобы найти активные потоки, а затем передать через wc -l. Более наглядно — это JConsole, которая отображает количество потоков для данного процесса.

В отличие от других ps основанные на ответах, здесь нет необходимости вычитать 1 от его выхода, поскольку нет ps строка заголовка благодаря -o pid= опцию.

Новые дистрибутивы JDK поставляются с JConsole и VisualVM. Оба являются фантастическими инструментами для извлечения грязных деталей из запущенного Java-процесса. Если вам нужно сделать это программно, изучите JMX.

Самый простой способ — использовать «htop». Вы можете установить «htop» (более интересная версия топа), которая покажет вам все ваши ядра, процессы и использование памяти. Нажмите «Shift + H», чтобы показать весь процесс, или нажмите еще раз, чтобы скрыть его. Нажмите клавишу «F4» для поиска имени вашего процесса. Установка на Ubuntu или Debian:

yum install htop dnf install htop [On Fedora 22+ releases] 
  1. Запустите htop.
  2. Войдите в меню настройки, нажав F2.
  3. В крайнем левом столбце выберите «Столбцы».
  4. В крайнем правом столбце выберите столбец, который будет добавлен к основному результату мониторинга. «NLWP» — это то, что вы ищете.
  5. Нажмите F10.

Если вы пытаетесь узнать количество потоков, использующих процессор для данного pid, я бы использовал:

top -bc -H -n2 -p | awk '' | sort -u | wc -l 

Если вас интересуют те темы, которые действительно активный — как если бы вы что-то делали (не заблокировано, не timed_waiting, не сообщали «поток запущен», но действительно ожидали, пока поток предоставит данные), а не сидите без дела, но живете — тогда вас может заинтересовать jstack-активный.

Этот простой сценарий bash запускается jstack затем отфильтровывает все потоки, которые по эвристике кажутся простаивающими, показывая вам трассировку стека для тех потоков, которые фактически потребляют циклы ЦП.

Если вам нужно количество потоков на пользователя в системе Linux, вы должны использовать:

в то время как используйте желаемое имя пользователя.

Если вы ищете количество потоков для нескольких процессов, другие ответы вам не подойдут, поскольку вы не увидите имена процессов или PID, что делает их довольно бесполезными. Используйте вместо этого:

Чтобы наблюдать за изменениями вживую, просто добавьте watch :

VisualVM может показывать четкие состояния потоков данного процесса JVM

Введите описание изображения здесь

самоиндуцированное избиение? черт! — Эндрю Скотт Эванс

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками linux multithreading monitor or задайте свой вопрос.

Читайте также:  Connect windows to linux machine

Источник

Просмотр потоков процесса в Linux

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

Просмотр информации по потокам позволяет просматривать детали по потреблению ресурсов, например, использование ЦП/памяти.

В Linux потоки (LWP), созданные в рамках программы, будут иметь тот же «идентификатор группы потоков», что и PID программы.

Для планировщика ядра Linux потоки — это не что иное, как стандартные процессы, которые совместно используют определенные ресурсы.

Просмотр потоков процесса в Linux

Просмотр потоков процесса в ps

В команде ps параметр -T включает просмотр потоков. Следующая команда выводит список всех потоков, созданных процессом с .

ps -T -p <pid data-lazy-src=

Более удобный способ, это использование утилиты htop. Они позволяет отслеживать потоки в древовидном представлении.

Чтобы включить просмотр потоков в htop, запустите htop и нажмите , чтобы войти в меню настройки htop. Выберите параметр «Display option» в столбце «Setup» и включите параметры «Three view» и «Show custom thread names». Нажмите F10 , чтобы выйти из режима настройки.

Источник

Как посмотреть потоки процесса в Linux

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

Для планировщика ядра потоки ничем не отличаются от обычных процессов которые имеют общие ресурсы. Поэтому для просмотра потоков можно использовать такие классические инструменты командной строки как ps и top. В этой статье мы поговорим о том как посмотреть потоки процесса Linux.

Потоки процессов в Linux

Сразу необходимо разобраться в том что же такое процессы и потоки в linux и чем они отличаются от друг от друга. В Linux есть два способа наладить многопоточное выполнение какого-либо действия. Первый, когда процесс создает свои копии с помощью механизма fork и затем эти процессы взаимодействуют через сокеты или IPC. Тогда мы получаем отдельные процессы, каждый процесс имеет свои ресурсы и занимает память. Второй же способ подразумевает выделение потоков в рамках одного процесса. Все протоки одного процесса будут иметь один идентификатор группы потоков, а также уникальный идентификатор потока. Они будут иметь доступ ко всем ресурсам родительского процесса и занимать меньше памяти.

Читайте также:  Linux ошибки из bios

1. Утилита ps

В утилите ps показ потоков процесса включается опцией -T. Например вот такой командой можно посмотреть все потоки процесса с PID, например, для Chromium:

В колонке SPID отображается идентификатор потока, а в CMD его имя.

2. Утилита top

Команда top позволяет просматривать потоки в реальном времени. Для включения отображения потоков запустите top с опцией -H. Также можно включить или отключить показ потоков во время выполнения с помощью клавиши H:

Если вы хотите посмотреть только потоки нужного процесса выполните:

3. Утилита htop

Ну и как всегда под конец самое интересное. Самой удобной утилитой для просмотра потоков процесса я считаю команду htop. Это основный на ncurces интерактивный просмотрщик процессов. С помощью этой утилиты вы можете наблюдать за потоками в реальном времени в виде дерева.

Для того чтобы включить просмотр потоков в htop откройте программу, войдите в меню нажав клавишу F2, затем выберите Display Options, в разделе Setup. Теперь отметьте Three view и Show custom thread names. Все, можно нажимать F10 для сохранения настроек:

Теперь вы можете просматривать потоки в виде дерева отдельно для каждого процесса. Здесь снова отображаются потоки для браузера Chromium:

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Просмотр потоков процесса в Linux

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

Просмотр информации по потокам позволяет просматривать детали по потреблению ресурсов, например, использование ЦП/памяти.

В Linux потоки (LWP), созданные в рамках программы, будут иметь тот же «идентификатор группы потоков», что и PID программы.

Для планировщика ядра Linux потоки — это не что иное, как стандартные процессы, которые совместно используют определенные ресурсы.

Просмотр потоков процесса в Linux

Просмотр потоков процесса в ps

В команде ps параметр -T включает просмотр потоков. Следующая команда выводит список всех потоков, созданных процессом с .

ps -T -p <pid data-lazy-src=

Более удобный способ, это использование утилиты htop. Они позволяет отслеживать потоки в древовидном представлении.

Чтобы включить просмотр потоков в htop, запустите htop и нажмите , чтобы войти в меню настройки htop. Выберите параметр «Display option» в столбце «Setup» и включите параметры «Three view» и «Show custom thread names». Нажмите F10 , чтобы выйти из режима настройки.

Источник

Оцените статью
Adblock
detector