Получение статистики по каждому потоку процессора

Получение статистики по каждому потоку процессора

Меня интересует текущее использование cpu - точнее cpu% и wait% - для каждого потока в определенном приложении. Можно ли получить эту информацию откуда-то?

Я знаю, что это topможет разделить информацию по реальным потокам (те, которые имеют pid), но это не показывает разделение использования процессора system/user/wait для каждого из них. Я также хотел бы иметь какой-то способ регистрировать эту информацию. Знаете ли вы какие-либо приложения (или API), которые могут это делать?

решение1

Я бы посмотрел наСистемаTap. Этот инструмент, безусловно, даст вам то, что вы хотите. Естьэтотпример профилирования потоков; не знаю, есть ли в нем все, что вам нужно, но вы можете изменить его так, чтобы он соответствовал.

решение2

top -H -p pid 

надеюсь, это поможет

решение3

Процент использования процессора на поток можно получить с помощью psкоманды:

 ps -emo %cpu,pid,user,args

Способ расчета описан вps manpage:

В настоящее время это использованное процессорное время, деленное на время выполнения процесса (соотношение процессорного времени/реального времени), выраженное в процентах.

решение4

А sar пробовали? Он может извлечь много информации даже на уровне pid.

Связанный контент