Средняя загрузка (англ. load average) — показатель загруженности вычислительных мощностей, используемый в ряде операционных систем. В unix-подобных системах, как правило, отображается в виде трёх значений, которые представляют собой усреднённые величины за последние 1, 5 и 15 минут; чем ниже эта величина, тем менее загружены вычислительные мощности.

В том или ином виде показатель использовался в 1960-е годы в CTSS[англ.] и Multics; в 1973 году вариант расчёта, используемый в Tenex, стандартизован в качестве RFC 546[1], в нём средняя загрузка определялась как это среднее количество готовых к выполнению процессов за определённый период времени. На ранних этапах развития BSD показатель введён в Unix-системы, изначально отражал исключительно нагрузку на центральный процессор (в таком виде сохранился и в современном Solaris), в Linux-системах с 1993 года показатель отражает общесистемную потребность в ресурсах, включая ресурсы ввода-вывода.

На машинах состоянии простоя значения средней загрузки близки к нулю. Каждый процесс, который использует процессор либо ожидает выделения процессорных ресурсов (находится в очереди ожидания), увеличивает число загрузки на единицу; таким образом, значение средней загрузки «128» в 64-процессорной системе указывает на то, что в среднем по одному процессу выполняется на каждом из процессоров и по одному процессу находится в очереди выполнения. Поскольку в большинстве современных систем показатель зависит от потребности в общесистемных ресурсах, его некорректно использовать для оценки потребности исключительно процессорных мощностей, поскольку процессы, блокируемые медленными операциями ввода-вывода (например, длительными операциями доступа к NFS, при работе с медленной сетью хранения данных или низкопропускным USB-устройством) также дают вклад в увеличение этого показателя.

В Unix-системах значение средней загрузки отражается в procfs в файле /proc/loadavg в форме пяти текстовых полей, разделённых пробелами. Первые три поля содержат значения средней загрузки системы за последние 1, 5 и 15 минут — эти значения выводятся командами uptime, w, top, htop, atop. Четвёртое поле содержит количество процессов в системе на данный момент и состоит из двух чисел, разделённых дробной чертой: левое число показывает количество выполняемых в данный момент процессов, правое число — общее количество процессов в системе. Пятое поле показывает последний PID (идентификатор процесса), выделенный системой. Пример вывода:

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

Примечания

править
  1. RFC 546: TENEX Load Averages for July 1973. Дата обращения: 7 октября 2023. Архивировано 9 июля 2022 года.

Литература

править
  • Брендан Грегг. Производительность систем. — 2-е. — СПб.: Питер, 2023. — 992 с. — ISBN 978-5-4461-1818-2.

Ссылки

править