Load Average

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

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

Вычисление средней загрузки в 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 (на однопроцессорном компьютере). На самом деле это не совсем так. Из-за дополнительной нагрузки, вызванной планированием и некоторыми другими факторами, двухпроцессорный компьютер не обеспечивает удвоения быстродействия по сравнению с однопроцессорным вариантом.

Примечания[править | править исходный текст]