Load Average

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Htop, на котором видна большая загрузка системы

Средняя загрузка — среднее значение загрузки системы за некоторый период времени, как правило, отображается в виде трёх значений, которые представляют собой усредненные величины за последние 1, 5 и 15 минут, чем ниже, тем лучше[1]. В UNIX это среднее значение вычислительной работы, которую выполняет система.

Вычисление средней загрузки в UNIX[править | править вики-текст]

Как правило, в UNIX-подобных системах вычисление средней загрузки происходит внутри ядра. Пользователи легко могут получить текущий показатель из командной оболочки, выполнив команду uptime:

 $ uptime
 14:34:03 up 10:43,  4 users,  load average: 0.06, 0.11, 0.09

Команды w и top показывают те же 3 значения средней нагрузки. В Linux они также могут быть получены путём прочтения файла /proc/loadavg.

В компьютерах, находящихся в состоянии простоя, среднее число загрузки равно 0. Каждый процесс, который использует либо ждёт ЦПУ (очередь ожидания), увеличивают число загрузки на один. Большинство UNIX-систем считают процессы только в состоянии выполнения (на ЦПУ) или готовые к выполнению (ожидающие ЦПУ). Однако Linux также включает в подсчёт процессы в состоянии беспробудного сна (всё ещё ожидающие жёсткий диск), которые могут привести к заметно отличающимся результатам, особенно когда много процессов блокируют операции ввода-вывода.

Для примера можно привести процессы, блокируемые в результате ошибок NFS сервера или медленной системы хранения данных (USB 1.x устройств). Такие ситуации приводят к увеличению показателя средней нагрузки, однако, не отражают реальной нагрузки на ЦПУ (но дает понятие, как долго пользователь может ожидать выполнения операций).

Средняя нагрузка — это не очень точная характеристика (хотя бы потому, что она определяет усреднённые значения). И если на компьютере есть несколько процессоров, то такой характеристике верить нельзя. Располагая двумя процессорами, можно (теоретически) одновременно выполнять в два раза большее число программ. Это означает, что средняя нагрузка 2.00 (на двухпроцессорном компьютере) будет эквивалентна средней нагрузке 1.00 (на однопроцессорном компьютере). На самом деле это не совсем так. Из-за дополнительной нагрузки, вызванной планированием и некоторыми другими факторами, двухпроцессорный компьютер не обеспечивает удвоения быстродействия по сравнению с однопроцессорным вариантом.

/proc/loadavg[править | править вики-текст]

текстовый файл, предоставляемой пользователю виртуальной файловой системой /proc/, содержит 5 текстовых полей, разделенных пробелом.

Первые три поля содержат значения, описанные выше, т.е. величины загрузки системы

Четвертое поле состоит из двух чисел, разделенных слешем: число перед слешем показывает количество выполняемых в данный момент процессов; число после слеша показывает общее количество процессов в системе на данный момент.

Пятое поле показывает последний PID (идентификатор процесса), выделенных системой.

   $ cat /proc/loadavg
   0.01 0.04 0.01 1/185 12122

Примечания[править | править вики-текст]

Ссылки[править | править вики-текст]