Мониторинг

Понимание средней нагрузки в Linux

Понимание средней нагрузки в Linux
Средняя нагрузка - это измерение объема работы по сравнению со свободными циклами ЦП, доступными на системном процессоре. В этой статье я определю термин, продемонстрирую, как Linux вычисляет это значение, а затем расскажу, как интерпретировать нагрузку на систему.

Различные методы расчета нагрузки

Прежде чем мы погрузимся в среднюю загрузку Linux, мы должны изучить различные способы расчета нагрузки и обратиться к наиболее распространенному измерению загрузки ЦП - процентному соотношению.

Windows вычисляет нагрузку иначе, чем Linux, и, поскольку Windows исторически была более популярной на рабочем столе, определение нагрузки Windows обычно понимается большинством пользователей компьютеров. Большинство пользователей Windows видели, что загрузка системы в диспетчере задач отображается в процентах от 0% до 100%.

В Windows это получается путем изучения того, насколько «занят» Процесс простоя системы есть и используя обратное для представления нагрузки системы. Например, если простаивающий поток выполняется 99% времени, загрузка ЦП в Windows будет 1%. Это значение легко понять, но оно дает меньше подробностей об истинном статусе системы.

В Linux средняя загрузка вместо этого представлена ​​десятичным числом, начиная с 0.00. Это значение можно приблизительно определить как количество процессов за последнюю минуту, которые должны были ждать своей очереди для выполнения. В отличие от Windows, средняя загрузка Linux не является мгновенным измерением. Нагрузка представлена ​​в трех значениях: среднее за одну минуту, среднее за пять минут и среднее за пятнадцать минут.

Понимание средней нагрузки в Linux

Поначалу этот дополнительный уровень подробностей кажется ненужным, если вы просто хотите узнать текущее состояние загрузки процессора в вашей системе. Но поскольку даны средние значения за три периода времени, а не мгновенное измерение, вы можете получить более полное представление об изменении нагрузки системы во времени, взглянув на три числа

Отображение средней нагрузки просто. В командной строке вы можете использовать множество команд. Я просто использую команду «w»:

корень @ дева [~] # ж
21:08:43 до 38 дней, 4:34, 4 пользователя, средняя нагрузка: 3.11, 2.75, 2.70

Остальная часть команды будет отображать, кто вошел в систему и что они выполняют, но для наших целей эта информация не имеет значения, поэтому я вырезал ее из приведенного выше дисплея.

В идеальной системе ни один процесс не должен задерживаться другим процессом (или потоком), но в однопроцессорной системе, это происходит, когда нагрузка превышает 1.00.

Слова «однопроцессорная система» здесь невероятно важны. Если вы не используете древний компьютер, ваша машина, вероятно, имеет несколько ядер ЦП. В машине, на которой я работаю, у меня 16 ядер:

root @ virgo [~] # nproc
16

В этом случае средняя загрузка 3.11 совсем не тревожит. Это просто означает, что чуть более трех процессов были готовы к выполнению и присутствовали ядра ЦП для обработки их выполнения. В этой конкретной системе нагрузка должна достигнуть 16, чтобы считаться «100%».

Чтобы преобразовать это в процентную загрузку системы, вы можете использовать эту простую, если не сказать тупую команду:

cat / proc / loadavg | вырезать -c 1-4 | эхо "scale = 2; ($ (Эта последовательность команд выделяет 1-минутное среднее значение через вырезание и повторяет его, разделенное на количество ядер ЦП, с помощью калькулятора командной строки bc, чтобы получить процентное значение.

Это значение ни в коем случае не является научным, но дает приблизительное представление о загрузке процессора в процентах.

Минута, чтобы научиться, жизнь, чтобы стать мастером

В предыдущем разделе я привел пример «100%» нагрузки 16.0 на 16-ядерной системе в кавычках, потому что расчет нагрузки в Linux немного более туманный, чем в Windows. Системный администратор должен помнить, что:

Из-за этого получение контроля над загрузкой процессора в системе Linux не является полностью эмпирическим вопросом. Даже если бы это было так, загрузка процессора сама по себе не является адекватным измерением общего использования ресурсов системы. Таким образом, опытный администратор Linux будет учитывать нагрузку на ЦП вместе с другими значениями, такими как ожидание ввода-вывода и процентное соотношение ядра к системному времени.

I / O Подождите

Ожидание ввода-вывода легче всего увидеть с помощью команды «top»:

На скриншоте выше я выделил значение ожидания ввода-вывода. Это процент времени, в течение которого ЦП ждал завершения команд ввода или вывода. Обычно это свидетельствует о высокой активности диска. Хотя сам по себе высокий процент ожидания не может значительно ухудшить задачи, связанные с процессором, он снизит производительность ввода-вывода для других задач и заставит систему чувствовать себя вялой.

Ожидание большого количества операций ввода-вывода без какой-либо очевидной причины может указывать на проблему с диском. Используйте команду «dmesg», чтобы узнать, произошли ли какие-либо ошибки.

Ядро vs. Системное время

Выше выделенные значения представляют время пользователя и ядра (системы). Это разбивка общего потребления процессорного времени пользователями (i.е. приложения и т. д.) и ядро ​​(i.е. взаимодействие с устройствами системы). Более высокое время пользователя будет указывать на большую загрузку ЦП программами, а более высокое время ядра будет указывать на большую обработку на уровне системы.

Довольно средняя нагрузка

Изучение связи средней нагрузки с реальной производительностью системы требует времени, но вскоре вы увидите четкую корреляцию. Вооружившись тонкостями показателей производительности системы, вы сможете принимать более обоснованные решения об обновлении оборудования и использовании ресурсов программы.

5 лучших эргономичных компьютерных мышей для Linux
Вызывает ли длительное использование компьютера боль в запястье или пальцах?? Вы страдаете от скованности суставов и постоянно должны пожимать руки? В...
Как изменить настройки мыши и сенсорной панели с помощью Xinput в Linux
Большинство дистрибутивов Linux по умолчанию поставляются с библиотекой libinput для обработки событий ввода в системе. Он может обрабатывать события ...
Переназначьте кнопки мыши по-разному для разных программ с помощью X-Mouse Button Control
Может быть, вам нужен инструмент, который мог бы изменять управление вашей мышью с каждым приложением, которое вы используете. В этом случае вы можете...