Что такое средняя загрузка Linux

Обновлено: 21.11.2024

Возможно, вы уже знакомы со средней нагрузкой Linux. Средние значения нагрузки – это три числа, показанные вместе с командами uptime и top. Они выглядят следующим образом:

Большинство людей имеют представление о том, что означают средние значения нагрузки: три числа представляют собой средние значения за постепенно увеличивающиеся периоды времени (среднее значение за одну, пять и пятнадцать минут), и чем меньше число, тем лучше. Более высокие числа представляют проблему или перегруженную машину. Но каков порог? Что представляет собой «хорошее» и «плохое» среднее значение нагрузки? В каких случаях вам следует беспокоиться о среднем значении нагрузки, а в каких случаях вам следует как можно скорее исправить это?

Во-первых, немного информации о том, что означают средние значения нагрузки. Начнем с простейшего случая: машина с одним одноядерным процессором.

Аналогия с трафиком

Одноядерный ЦП похож на одну полосу движения. Представьте, что вы оператор моста. иногда ваш мост настолько загружен, что машины выстраиваются в очередь, чтобы пересечь его. Вы хотите, чтобы люди знали, как движется движение на вашем мосту. Подходящим показателем будет сколько машин ожидает в определенное время. Если машин нет, въезжающие водители знают, что могут сразу же проехать. Если автомобили заблокированы, водители знают, что их ждут задержки.

Итак, оператор моста, какую систему нумерации вы собираетесь использовать? Как насчет:

  • 0,00 означает, что на мосту вообще нет движения. На самом деле, между 0,00 и 1,00 означает, что резервной копии нет, и прибывающая машина просто поедет дальше.
  • 1,00 означает, что мост точно загружен. Все по-прежнему хорошо, но если трафик немного увеличится, все замедлится.
  • больше 1,00 означает, что есть резервная копия. Сколько? Ну, 2,00 означает, что всего машин две полосы - одна полоса стоит на мосту, и одна полоса стоит ожидания. 3.00 означает, что всего есть три полосы движения: одна полоса стоит на мосту, а две полосы стоят в ожидании. и т. д.

По сути, это и есть загрузка ЦП. «Автомобили» — это процессы, использующие часть процессорного времени («пересечение моста») или стоящие в очереди на использование ЦП. Unix называет это длиной очереди выполнения: суммой числа процессов, которые выполняются в данный момент, и числа процессов, ожидающих (поставленных в очередь) запуска.

Подобно оператору моста, вы хотите, чтобы ваши автомобили/процессы никогда не ждали. Таким образом, загрузка вашего ЦП в идеале должна оставаться ниже 1,00. Кроме того, как и оператор моста, вы все еще в порядке, если вы получаете временные всплески выше 1,00. но когда вы постоянно выше 1,00, вам нужно беспокоиться.

Так вы говорите, что идеальная загрузка – 1,00?

Ну, не совсем так. Проблема с нагрузкой 1,00 заключается в том, что у вас нет запаса. На практике многие системные администраторы нарисуют линию на 0,70:

Практическое правило «Необходимо разобраться»: 0,70 Если средний показатель нагрузки остается выше > 0,70, пора провести расследование, пока ситуация не ухудшилась.

Практическое правило "Исправить это сейчас": 1.00. Если ваша средняя нагрузка остается выше 1,00, найдите проблему и устраните ее сейчас. В противном случае вас разбудят посреди ночи, и вам будет не до веселья.

Эта фраза "Ааа, уже 3 часа ночи, что за хрень?" Эмпирическое правило: 5.0. Если ваша средняя загрузка выше 5,00, у вас могут быть серьезные проблемы, ваша коробка либо зависает, либо замедляется, и это (по необъяснимым причинам) произойдет в самое неподходящее время, например, посреди ночи или во время презентации. на конференции. Не позволяйте ему попасть туда.

А как насчет мультипроцессоров? Моя загрузка показывает 3,00, но все работает нормально!

У вас четырехпроцессорная система? Он по-прежнему работает при нагрузке 3,00.

В многопроцессорной системе нагрузка зависит от количества доступных процессорных ядер. Отметка «100% использование» составляет 1,00 для одноядерной системы, 2,00 для двухъядерной, 4,00 для четырехъядерной и т. д.

Если мы вернемся к аналогии с мостом, то "1,00" на самом деле означает "проезд на одну полосу движения". На однополосном мосту это означает, что он заполнен. На двухполосном мосту нагрузка, равная 1,00, означает, что он загружен на 50 % — заполнена только одна полоса, поэтому можно заполнить еще одну полосу.

То же самое и с ЦП: нагрузка 1,00 соответствует 100% загрузке ЦП на одноядерном компьютере. На двухъядерном компьютере нагрузка 2,00 соответствует 100% загрузке ЦП.

Многоядерные и многопроцессорные

Раз уж мы затронули тему, давайте поговорим о многоядерности и многопроцессорности. С точки зрения производительности, эквивалентна ли машина с одним двухъядерным процессором машине с двумя процессорами с одним ядром каждый? да. Грубо. Здесь есть много тонкостей, касающихся объема кеша, частоты передачи процессов между процессорами и т. д. Несмотря на эти тонкости, для оценки величины загрузки ЦП используется общее количество ядер. имеет значение, независимо от того, на скольких физических процессорах распределены эти ядра.

Что приводит нас к двум новым практическим правилам:

Количество ядер = максимальная нагрузка Полезное правило: в многоядерной системе нагрузка не должна превышать количество доступных ядер.

Полезное правило "ядра есть ядра". То, как ядра распределены по процессорам, не имеет значения. Два четырехъядерных == четыре двухъядерных == восемь одноядерных. Для этих целей подходят все восемь ядер.

Возвращение домой

Давайте посмотрим на средние значения нагрузки, полученные в результате безотказной работы:

Это на двухъядерном процессоре, так что у нас есть большой запас. Я даже не буду думать об этом, пока нагрузка не станет выше 1,7 или около того.

А как насчет этих трех чисел? 0,65 — среднее значение за последнюю минуту, 0,42 — среднее значение за последние пять минут и 0,36 — среднее значение за последние 15 минут. Что подводит нас к вопросу:

Какое среднее значение следует учитывать? Одна, пять или 15 минут?

Что касается чисел, о которых мы говорили (1,00 = исправить это сейчас и т. д.), вам следует обратить внимание на средние значения за пять или 15 минут. Откровенно говоря, если ваш ящик поднимается выше 1,0 в среднем за одну минуту, вы все еще в порядке. Это когда 15-минутное среднее идет севернее 1,0 и остается там, и вам нужно привязаться к нему. (очевидно, как мы уже выяснили, эти цифры следует скорректировать в соответствии с количеством ядер процессора в вашей системе).

cat /proc/cpuinfo для получения информации о каждом процессоре в вашей системе. Примечание: недоступно в OSX, Google для альтернатив. Чтобы получить только подсчет, запустите его через grep и подсчет слов: grep 'имя модели' /proc/cpuinfo | туалет -l

Больше серверов? Или более быстрый код?

Добавление серверов может помочь при медленном коде. Scout APM поможет вам найти и исправить неэффективный и дорогостоящий код. Мы автоматически выявляем вызовы N+1 SQL, нехватку памяти и другие проблемы, связанные с кодом, поэтому вы можете тратить меньше времени на отладку и больше времени на программирование.

В этой статье мы объясним одну из важнейших задач системного администрирования Linux — мониторинг производительности в отношении загрузки системы/ЦП и средних значений нагрузки.

Прежде чем двигаться дальше, давайте разберемся с этими двумя важными фразами во всех Unix-подобных системах:

  • Нагрузка на систему/нагрузка на ЦП — это показатель чрезмерной или недостаточной загрузки ЦП в системе Linux; количество процессов, которые выполняются ЦП или находятся в состоянии ожидания.
  • Средняя загрузка — это средняя загрузка системы, рассчитанная за заданный период времени в 1, 5 и 15 минут.

Технически считается, что в Linux средняя нагрузка представляет собой скользящее среднее число процессов в очереди выполнения (ядра), помеченных как работающие или непрерываемые.

Обратите внимание:

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

Как отслеживать среднюю загрузку системы Linux

Существует множество способов мониторинга средней загрузки системы, включая время безотказной работы, которое показывает, как долго работает система, количество пользователей вместе со средней нагрузкой:

Числа читаются слева направо, и вывод выше означает, что:

  • средняя загрузка за последнюю минуту: 1,98
  • средняя загрузка за последние 5 минут: 2,15
  • средняя загрузка за последние 15 минут: 2,21

Высокие средние значения нагрузки означают, что система перегружена; многие процессы ожидают процессорного времени.

Мы раскроем это в следующем разделе в отношении количества ядер ЦП. Кроме того, мы также можем использовать другие хорошо известные инструменты, такие как top и looks, которые отображают состояние работающей системы Linux в режиме реального времени, а также многие другие инструменты:

Высшее командование

Инструмент "Взгляд"

Средние значения нагрузки, отображаемые этими инструментами, считываются из файла /proc/loadavg, который можно просмотреть с помощью команды cat, как показано ниже:

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

Понимание средней нагрузки системы по отношению к количеству ЦП

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

Многопроцессорность против многоядерности

  • Многопроцессорность – два или более физических процессора интегрированы в одну компьютерную систему.
  • Многоядерный процессор — это один физический процессор, который имеет как минимум два или более отдельных ядра (или то, что мы также можем назвать процессорными блоками), которые работают параллельно. Это означает, что у двухъядерного процессора 2 двухъядерных процессора, у четырехъядерного — 4 процессора и т. д.

Кроме того, существует процессорная технология, впервые представленная Intel для улучшения параллельных вычислений, называемая гиперпоточностью.

При многопоточности одно физическое ядро ​​ЦП представляется операционной системе как два логических ядра ЦП (но на самом деле существует один физический аппаратный компонент).

Обратите внимание, что одно ядро ​​ЦП может одновременно выполнять только одну задачу, поэтому были реализованы такие технологии, как несколько ЦП/процессоров, многоядерные ЦП и гиперпоточность.

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

Чтобы узнать количество процессоров, доступных в системе, мы можем использовать команды nproc или lscpu следующим образом:

Другой способ найти количество процессоров с помощью команды grep, как показано.

Теперь, чтобы лучше понять нагрузку на систему, мы сделаем несколько предположений. Допустим, у нас есть средние значения нагрузки ниже:

В одноядерной системе это будет означать:
  • ЦП в среднем был загружен полностью (100 %). 1 процесс выполнялся на ЦП (1,00) за последнюю минуту.
  • ЦП простаивал в среднем на 60 %; за последние 5 минут ни один процесс не ожидал процессорного времени (0,40).
  • ЦП был перегружен в среднем на 235%; 2,35 процесса ожидали процессорного времени (3,35) за последние 15 минут.
В двухъядерной системе это будет означать:
  • Один ЦП в среднем простаивал на 100 %, один ЦП использовался; ни один процесс не ожидал процессорного времени (1,00) за последнюю минуту.
  • ЦП простаивал в среднем на 160 %; никакие процессы не ждали процессорного времени. (0,40) за последние 5 минут.
  • ЦП были перегружены в среднем на 135%; 1.35 процессов ждали процессорного времени. (3,35) за последние 15 минут.

Вам также может понравиться:

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

Если вам понравилась эта статья, подпишитесь на уведомления по электронной почте о руководствах по Linux. Если у вас есть вопросы или сомнения? обратитесь за помощью в разделе комментариев.

Если вы цените то, что мы делаем здесь, в TecMint, вам следует подумать о следующем:

TecMint – это самый быстрорастущий и пользующийся наибольшим доверием сайт сообщества, где можно найти любые статьи, руководства и книги по Linux в Интернете. Миллионы людей посещают TecMint! для поиска или просмотра тысяч опубликованных статей, доступных всем БЕСПЛАТНО.

Если вам нравится то, что вы читаете, купите нам кофе (или 2) в знак признательности.

Мы благодарны за вашу бесконечную поддержку.

Похожие записи

5 мыслей о «Понимание средней нагрузки Linux и мониторинг производительности Linux»

Спасибо, что поделились, мы скоро проверим и пересмотрим статью.

Я согласен с Трентоном в том, что эта статья неверна. ЦП является единственным из факторов, которые могут вызвать высокую нагрузку. Мой сервер использует 40% ЦП, но нагрузка составляет 2,5.

Что может быть важнее: 1 минута, 5 минут или 15 минут?

Эта статья неверна. Средняя загрузка — это не загрузка ЦП, а загрузка процесса. Если в очереди процессов находится в среднем 4 процесса, и все они ожидают диска, средняя загрузка будет равна 4, но загрузка ЦП, например, может составлять 20% в одноядерной системе.Используйте «man proc» и найдите load avg.

Есть что сказать? Присоединяйтесь к обсуждению. Отменить ответ

Этот сайт использует Akismet для уменьшения количества спама. Узнайте, как обрабатываются данные ваших комментариев.

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

Но как определить, достаточна ли грузоподъемность вашего сервера и когда следует беспокоиться? Давайте погрузимся и узнаем.

Что такое средняя нагрузка?

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

Обычно команда top или uptime предоставляет среднюю загрузку вашего сервера с выводом, который выглядит следующим образом:

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

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

Разбивка нагрузки

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

Если вы работаете кассиром и хотите регистрировать время ожидания, одним из важных показателей будет количество людей, ожидающих в течение определенного периода времени. Если нет ожидающих клиентов, то время ожидания равно нулю. С другой стороны, если есть длинная очередь клиентов, время ожидания велико.

Применив это к выходным данным средней нагрузки (0,5, 1,5, 3,0), которые мы получили выше:

  • 0,5 означает минимальное время ожидания у стойки. Между 0,00 и 1,0 не о чем беспокоиться. Ваши серверы в безопасности!
  • 1,5 означает, что очередь заполняется. Если среднее значение станет еще выше, все начнет замедляться.
  • 3,00 означает, что очередь ожидания довольно длинная, и для более быстрой очистки очереди требуется дополнительный ресурс/счетчик.

Что вам нужно, так это среднее значение очереди/загрузки от 0,00 до 1,00. Итак, можем ли мы сделать вывод, что идеальное среднее значение нагрузки равно 1,00, а все, что выше этого значения, является призывом к устранению неполадок? Что ж, хотя это беспроигрышный вариант, более активный подход оставляет дополнительный запас для управления непредвиденными нагрузками.

Многоядерные и многопроцессорные системы спешат на помощь

Являются ли один четырехъядерный процессор и сервер с четырьмя процессорами (с одним ядром каждый) одним и тем же? Относительно да. Основное различие между многоядерностью и многопроцессорностью заключается в том, что первое относится к одному процессору с несколькими ядрами, а второе относится к нескольким процессорам. Подводя итог: один четырехъядерный процессор равен двум двухъядерным процессорам, что соответствует четырем одноядерным процессорам.

Средняя нагрузка зависит от количества ядер, доступных на сервере, а не от того, как они распределены по процессорам. Это означает, что максимальный диапазон использования составляет 0–1 для одноядерного, 0–2 для двухъядерного, 0–4 для четырехъядерного, 0–8 для восьмиядерного и т. д.

Вновь обратимся к примеру с кассой. Нагрузка 1,00 будет означать, что производительность как раз соответствует одноядерному процессору; в то время как на двухъядерном процессоре загрузка 1,50 будет означать, что одна строка заполнена, а другая строка заполнена. Точно так же стоит беспокоиться о загрузке 5,00 на четырехъядерном процессоре, в то время как на восьмиядерном процессоре 5,00 только заполняются, и имеется оптимальное доступное пространство.

Роль Site24x7: мониторинг средней нагрузки

Добавление ресурсов для более высокой нагрузки может увеличить расходы на инфраструктуру. Это идеальное решение для эффективного управления нагрузкой и поддержания оптимального уровня во избежание снижения производительности сервера. Site24x7 Linux Monitoring отслеживает средние значения нагрузки по более чем 60 показателям производительности и предоставляет средние значения за 1, 5 и 15 минут в виде интуитивно понятного графика.

Кроме того, вы можете установить пороговые значения и получать уведомления в случае нарушения. Но что, если посреди ночи произойдет взлом? У Site24x7 есть решение и для этого. Инструмент мониторинга предоставляет набор средств автоматизации ИТ для автоматического устранения неполадок.

Например, если для двухъядерного процессора установлено пороговое значение загрузки системы 2,90, вы можете загрузить сценарий сервера или добавить серверные команды для автоматического выполнения корректирующих действий при нарушении порогового значения. Таким образом, без ручного вмешательства проблема может быть решена, а среднее время ремонта (MTTR) значительно сокращено.

Подведение итогов

Добавление дополнительных ядер может повысить производительность вашего сервера, но также может увеличить расходы на инфраструктуру. Идеальным вариантом является постоянный мониторинг средней нагрузки для обеспечения эффективного управления существующей настройкой. Site24x7 Server Monitoring не только отслеживает среднюю нагрузку, но также предоставляет дополнительные инструменты устранения неполадок, чтобы действовать до того, как высокая средняя нагрузка повлияет на производительность сервера. Подпишитесь на 30-дневную бесплатную пробную версию прямо сейчас!

Средняя загрузка в Linux — это показатель, который используется пользователями Linux для отслеживания системных ресурсов. Это также помогает отслеживать использование системных ресурсов.

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

Далее мы обсудим несколько простых способов мониторинга средней нагрузки вашей системы.

Основы расчета средней нагрузки в Linux

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

Означает количество процессов, которые в данный момент выполняются процессором или ожидают выполнения.

Загрузка бездействующей системы равна 0. С каждым процессом, который выполняется или находится в списке ожидания, нагрузка увеличивается на 1.

Сама по себе загрузка не дает пользователю никакой полезной информации. Нагрузка может измениться за доли секунды. Это связано с тем, что количество процессов, использующих или ожидающих процессорное время, не остается постоянным. Вот почему мы используем Load Average в Linux для мониторинга использования ресурсов.

Знакомство со средней нагрузкой в ​​Linux

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

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

Средняя нагрузка

Посмотрите на изображение выше, где написано "среднее значение нагрузки: 0,03, 0,03, 0,01"

Слева направо:

  • Первое значение отображает среднюю нагрузку на ЦП за последнюю минуту.
  • Секунда дает нам среднюю нагрузку за последние 5 минут.
  • Третье значение дает нам среднюю нагрузку за 15 минут.

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

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

Для двухъядерного процессора загрузка 1 означает, что 1 ядро ​​бездействовало на 100 %. Это соответствует примерно 50% загрузке ЦП. Точно так же для четырехъядерного процессора это будет означать загрузку ЦП на 25 %.

Средняя загрузка в Linux учитывает ожидающие потоки и задачи, а также выполняемые процессы. Кроме того, это среднее значение, а не мгновенное значение.

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

Как проверить среднюю нагрузку в Linux

Теперь, когда мы знаем, что представляет собой средняя нагрузка, мы обсудим несколько способов проверки средней нагрузки в Linux. Средняя нагрузка может быть просмотрена тремя распространенными способами.

1. Использование команды uptime

Команда uptime — один из наиболее распространенных методов проверки средней нагрузки для вашей системы. Чтобы использовать команду uptime, мы просто открываем командную строку и вводим следующее.

Средняя загрузка команд безотказной работы

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

Как видите, средняя загрузка за последнюю минуту составляет 0,03. За последние пять и пятнадцать минут средние значения нагрузки равны 0,03 и 0,01 соответственно.

2.Использование верхней команды

Еще один способ отслеживать среднюю нагрузку в вашей системе — использовать команду top в Linux. Для этого просто откройте терминал и введите это.

Это откроет верхний интерфейс в вашем терминале. В отличие от команды uptime, это дает подробный обзор использования ресурсов вашей системы.

На следующем снимке экрана показано, что вы должны увидеть, когда используете команду top в своей системе.

Средняя нагрузка на основную команду

Как видно из самой верхней строки, средняя загрузка за последнюю минуту составляет 0,34. За последние пять и пятнадцать минут средние значения нагрузки составляют 0,14 и 0,405 соответственно.

3. Использование инструмента быстрого просмотра

Инструмент просмотра — это инструмент мониторинга системы, работающий аналогично команде top. Он дает подробный обзор использования системных ресурсов. Чтобы использовать инструмент просмотра в вашей системе, вам необходимо установить его пакет с помощью этой команды.

После завершения установки введите в терминале следующее.

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

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

Средняя нагрузка команды Glances

Как вы можете видеть в выделенной области, средняя нагрузка за последнюю минуту составляет 0,14. За последние пять и пятнадцать минут средние значения нагрузки равны 0,12 и 0,05 соответственно.

Подведение итогов

Средняя загрузка в Linux — важный показатель, позволяющий легко отслеживать использование системных ресурсов. Контролируя среднюю загрузку, вы гарантируете, что в вашей системе не будет сбоев или медленных сеансов.

Мы надеемся, что это руководство помогло вам познакомиться с концепцией средней нагрузки в Linux.

Читайте также: