
Меня интересует текущее использование 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.