С Наступающим Новым Годом, коллеги!
Поступила задача считать загрузку по ядрам. Вроде задача простая. Распарсить /proc/stat и посчитать… Парсинг и заполнение структур - вопрос решенный. Затык в формуле расчета. Рытье гугла не дало хорошего результата. Чуть ли не у каждого автора формула своя! И есть заметные отличия значений с top.
Общий алгоритм ясен: распарсить /proc/stat (выполнено). Заполнить структуру или массив интов (выполнено). Подождать некоторое время и повторить процедуру. Дальше работать с разностью значений (тут тоже понятно). Посчитать результат (ни фига не понятно по какой формуле).
https://azrr.info/page/view/19-poluchaem-svedeniya-o-sisteme-iz-proc-i-sys.html На мой взгляд, ближе всего к top, если таймаут одинаковый.
https://www.idnt.net/en-US/kb/941772 Результат хуже. Возможно я плохо перевел формулу из bash в с.
Перед НГ голова переваривать рабочие вопросы совсем отказывается, абы загружена на 147%% приобретением подарков. Потому прошу помощи в, наверное, элементарном вопросе.
Если кто-то оторвется от подготовки к празднику и решит подсказать, что-то полезное, буду очень благодарен.
Для простоты взаимопонимания предложу свою структуру (с)
struct coreinfo{
int cpu_num;
int user;
int nice;
int system;
int idle;
int iowait;
int irq;
int softirq;
int steal;
int guest;
int guest_nice;
};
UPD Есть ли способ откуда-то считать температуру процессора без lm-sensor?