Получение загрузки процессора и вычисление% использованного - PullRequest
1 голос
/ 26 января 2012

Мне нужно рассчитать загрузку процессора и агрегировать его из файла proc в linux.

/ proc / stat дает мне данные, но как мне узнать процент использования процессора в данный момент, так как stat дает мнеколичество процессов в ядрах, работающих в любое время, что не дает мне никакого представления о процентном использовании процессора?И я кодирую это на Голанге и должен сделать это без сценариев

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

1 Ответ

1 голос
/ 27 января 2012

/proc/stat не только подсчитывает количество процессов на каждом ядре.man proc скажет вам точный формат этого файла.Скопированный из него, вот часть, которая вас может заинтересовать:

   /proc/stat
          cpu  3357 0 4313 1362393
                 The  amount  of  time,  measured  in  units  of   USER_HZ
                 (1/100ths   of   a  second  on  most  architectures,  use
                 sysconf(_SC_CLK_TCK) to obtain the right value), that the
                 system  spent  in  user mode, user mode with low priority
                 (nice), system mode, and  the  idle  task,  respectively.
                 The  last  value should be USER_HZ times the second entry
                 in the uptime pseudo-file.

Тогда легко сделать вычитание поля idle между двумя мерами, что даст вам время, потраченное без выполнениячто-нибудь от этого процессора.Другое значение, которое вы можете извлечь, - это время на выполнение чего-либо, которое представляет собой разницу между двумя показателями:

time in user mode + time spent in user mode with low priority + time spent in system mode

Тогда у вас будет два значения;один, А, выражает время, ничего не делая, а другой, Б, время фактически делает что-то.B / (A + B) даст вам процент времени, когда процессор был занят.

...