LINUX.ORG.RU

Как в htop увидеть потребление процессора основным потоком приложения?

 ,


1

2

Есть многопоточное приложение, у которого разные потоки выполняют разные задачи и по разному грузят процессор. Основной поток тоже грузит процессор.

В древовидном режиме htop показывает загрузку процессора дочерними потоками, однако для основного потока (являющегося корнем поддерева) он показывает суммарную загрузку процессора всеми потоками данного процесса.

Есть ли какая-то возможность интерактивно посмотреть на загрузку процессора именно основным потоком?

Приходит в голову только вычесть из суммы значения всех остальных, но это плохо решает задачу «Интерактивный анализ использования CPU основным потоком при различных действиях»

★★

Последнее исправление: GPFault (всего исправлений: 1)

Обычный top имеет режим показа потоков (клавиша H).

iliyap ★★★★★
()
Ответ на: комментарий от Chaser_Andrey

top сработал, единственное неудобство - не умеет сортировать потоки внутри процесса по загрузке cpu. К счастью, у меня их меньше двух десятков.

Насчёт фичреквеста я думал, но у меня нет идеи куда там это визуально запихнуть. В строчке с основным процессом и так все поля информативны.

Разве что для процессов с более чем одним потоком отображать сам процесс с префиксом (cumulative) а в список потоков добавить основной с префиксом типа (main thread). Возможно не main, а какой-то другой термин.

GPFault ★★
() автор топика
Ответ на: комментарий от anonymous

Нашёл, действительно можно. Вначале я пытался как в htop - включить отображение потоков, включить forest view и отсортировать по CPU - но так не сортируется.

В результате проблема решилась top -p `pidof my_process` и включением отображения потоков.

GPFault ★★
() автор топика
Ответ на: комментарий от GPFault

может я не понимаю о чем речь?

там сортировка по CPU-usage используется по умолчанию, хоть в режиме отображения процессов, хоть — тредов; если ты включил другую сортировку, например по используемой памяти, то наверно ты знал, что делал, и переключиться на CPU-order ничего не стоит

anonymous
()
Ответ на: комментарий от anonymous

Задача стояла - посмотреть сколько едят потоки определённого процесса. Если к состоянию по умолчанию добавить режим отображения потоков - получим отсортированные по использованию cpu вперемешку все потоки всех процессов, а не только изучаемого.

Задача решается сортировкой/группировкой вначале по PID (чтоб сгруппировать вместе все нужные потоки), а в пределах одного PID - по использованию cpu.

forest view (V) производит группировку по PID. Однако сортировка второго уровня среди уже сгруппированного не производится. Поэтому и пришлось провести группировку по PID при помощи опции -p

$ top -v
  procps-ng version 3.3.3
GPFault ★★
() автор топика
Последнее исправление: GPFault (всего исправлений: 1)
Ответ на: комментарий от GPFault

получим отсортированные по использованию cpu вперемешку все потоки всех процессов, а не только изучаемого

ну дык, они же отсортированы как требовалось!

а то, что нужно показать только треды одного процесса, об этом речи не было, это совсем другая задача, надо было сразу явно спрашивать — подсказали бы тоже

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.