Расчет загрузки процессора htop

Первый пост на Stackru. Я хотел бы знать, как htop рассчитывает загрузку процессора для Darwin (MacOSX).

Я прошел через исходный код, и вот что я из него сделал вывод:

  1. Рассчитать общую загрузку ЦП для всех ядер (иначе называется GlobalDiff)

    Global Diff = общая загрузка процессора для всех ядер и состояний процессора в момент времени T2 - общая загрузка процессора для всех ядер и состояний процессора в момент времени T1

Где состояния процессора = время пользователя, системное время, хорошее время и время простоя. Сердечники для моей машины = 0-7

Поскольку это значение Global Diff является ВСЕГО значением для всей системы, нам необходимо получить коэффициент использования ЦП для каждого ядра, который можно получить по следующей формуле:

PerCore CPU Total Load = GlobalDiff / NoOfCores.
  1. Рассчитать общую загрузку процессора на процесс.

Разница в дельте = (UserTime2 + SystemTime2) - (UserTime1 + SystemTime1)

    CPU % = DeltaDiff / PerCoreCPU Total Load
=>  CPU % (unscaled) = (DeltaDiff * NoOfCores)/(PerCoreCPU Total Load)
  1. В заключение:

    CPU% (масштабируется до 100%) = CPU % (немасштабируется) / 100000.0

Может ли кто-нибудь сказать мне значение вышеприведенного утверждения. Делит ли немасштабированный% ЦП на (TH_USAGE_SCALE * 100). Я искал это некоторое время, и я не могу получить документацию о значении TH_USAGE_SCALE.

https://github.com/hishamhm/htop/blob/master/darwin/DarwinProcess.c

Вот откуда я получил большую часть кода. Пожалуйста, порекомендуйте.

Заранее спасибо.

0 ответов

Другие вопросы по тегам