В Linux средняя нагрузка составляет 1 мин / 5 мин / 15 мин.Формула, используемая ядром, на самом деле является экспоненциальной скользящей средней.
Если мы определим cpuload(1)
как первое вычисление загрузки процессора за 1 мин, а active()
как функцию, возвращающую номер процесса в состоянии "выполняется "или" выполняется "в системе, тогда формула, используемая ядром для вычисления загрузки процессора nth 1 мин:
cpuload(0)
0;это значение, хранящееся в памяти до первого выполнения cpuload()
.
Мой вопрос: как было выбрано взвешивание 2 -5.log2 (e) / 60 ?На мой взгляд, 2 -5 / 60 было бы лучше, потому что 1мин был бы периодом полураспада числа процессов (потому что (2 -5 / 60 ) 12 = 1/2).
Может быть, будет полезно, если я опубликую явную формулу cpuload(n)
в дополнение к рекурсивному определению выше (щелкните правой кнопкой мыши, чтобы увидеть его в полном размере):