Откуда системный монитор рассчитывает значения использования в%?
Мне нужно получить эти значения в определенный момент, чтобы выполнить элементарную балансировку нагрузки.
Я предполагаю, что он получает свои значения от /proc/loadavg
. Значения, которые это дает, являются стандартными значениями средней нагрузки unix и потребуют некоторых усилий, чтобы получить то, что вы ожидаете - использование ЦП в процентах.
Проще говоря, в одноядерной системе средняя загрузка 1.00
будет эквивалентно 100% загрузке ЦП. В четырехъядерной системе 4.00
будет эквивалентно 100% средней нагрузке и т. д.
Чтобы получить мгновенную нагрузку, отметьте первое число четвертого поля /proc/loadavg
:
$ cat /proc/loadavg
0.00 0.00 0.00 1/570 4471
В этом случае значение равно 1
. Это означает, что в очереди задач есть один элемент.
Если вы действительно думаете, что вам нужен мгновенное load, то вы можете использовать это значение. Я бы не рекомендовал его, так как он будет очень изменчивым, а также плохим чтением того, что на самом деле происходит с системой. Использование этого значения для балансировки нагрузки может привести к чрезмерному оттоку в вашей системе, что было бы не идеально. Есть причина, по которой нагрузка средний ценности есть - они намного лучше видят то, с чем в настоящее время имеет дело система.