Расчет загрузки процессора на многоядерной машине Linux с использованием C
Я работаю над программой, которая показывает процент всех процессов, запущенных на машине с Linux. Проблема в том, что процент, который я получаю, часто отличается от отображаемого top
команда.
Я искал много часов в Интернете, но то, что я нахожу, почти всегда одна и та же формула
100 * (stime + utime)/ (totalCPUTime - processStartTime)
,
Я получаю общее значение CPUTime, суммирующее 7 значений ЦП в /proc/stat
, в то время как stime
, utime
а также processStartTime
значения взяты из формы /proc/<pid>/stat
, Я делаю что-то неправильно? Влияет ли факт, что я запускаю программу на многоядерном компьютере, как-то влияет на результат?
Сомоне знает, как верх рассчитывает это значение?
Спасибо
1 ответ
Если вы хотите знать, какой топ вы должны посмотреть в исходном коде:)