Загрузить (вычисление)

редактировать

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

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

Содержание
  • 1 Расчет нагрузки в стиле Unix
    • 1.1 Интерпретация
  • 2 Загрузка ЦП в зависимости от загрузки ЦП
  • 3 Расчет загрузки ЦП
  • 4 Другие команды производительности системы
  • 5 См. Также
  • 6 Внешние ссылки
  • 7 Ссылки
Расчет нагрузки в стиле Unix

Все Unix и Unix-подобные системы генерируют безразмерную метрику из трех чисел «средней нагрузки» в ядро ​​. Пользователи могут легко запросить текущий результат из оболочки Unix, выполнив команду uptime :

$ uptime 14:34:03 up 10:43, 4 пользователя, средняя нагрузка: 0,06, 0,11, 0,09

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

Неактивный компьютер имеет загрузку 0 (неактивный процесс не учитывается). Каждый процесс , использующий или ожидающий CPU (очередь готовности или очередь выполнения ) увеличивает номер загрузки на 1. Каждый завершающий процесс уменьшает его на 1. Большинство В системах UNIX учитываются только процессы в запущенном (на ЦП) или работающем (ожидающем ЦП) состояниях. Однако Linux также включает процессы в состояниях непрерывного сна (обычно ожидающие активности disk ), что может привести к заметно разным результатам, если многие процессы остаются заблокированными в I / O из-за загруженной или остановленной системы ввода-вывода. Это, например, включает блокировку процессов из-за сбоя сервера NFS или слишком медленного носителя (например, USB 1.x запоминающих устройств). Такие обстоятельства могут привести к повышенной средней нагрузке, которая не отражает фактического увеличения использования ЦП (но все же дает представление о том, как долго пользователям придется ждать).

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

С математической точки зрения все три значения всегда усредняют всю нагрузку системы с момента запуска системы. Все они распадаются экспоненциально, но распадаются с разной скоростью: экспоненциально затухают на е через 1, 5 и 15 минут соответственно. Следовательно, 1-минутная средняя нагрузка состоит из 63% (точнее: 1 - 1 / е) нагрузки с последней минуты и 37% (1 / е) средней нагрузки с момента запуска, исключая последнюю минуту. Для 5- и 15-минутной средней нагрузки такое же соотношение 63% / 37% рассчитывается для 5 и 15 минут соответственно. Следовательно, технически неточно, что средняя нагрузка за 1 минуту включает только последние 60 секунд активности, так как она включает 37% активности из прошлого, но правильно утверждать, что она включает в основном последнюю минуту.

Интерпретация

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

Например, можно интерпретировать среднюю нагрузку «1,73 0,60 7,98» на однопроцессорной системе как:

  • в течение последней минуты система была перегружена в среднем на 73% (1,73 выполняемых процесса, так что 0,73 процесса должны были ждать очереди для одной системы ЦП в среднем).
  • в течение последних 5 минут ЦП простаивал в среднем 40% времени.
  • в течение последних 15 минут система была перегружена в среднем на 698% (7,98 рабочих процессов, так что 6,98 процессов должны были ждать очереди для одной системы ЦП в среднем).

Это означает, что эта система (ЦП, диск, память и т. д.) могли бы выполнить всю работу, запланированную на последнюю минуту, если бы она была в 1,73 раза быстрее.

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

В современных системах UNIX обработка многопоточности по отношению к средней нагрузке различается. Некоторые системы рассматривают потоки как процессы для целей расчета средней нагрузки: каждый поток, ожидающий запуска, добавляет 1 к нагрузке. Однако другие системы, особенно системы, реализующие так называемое M: N threading, используют разные стратегии, такие как подсчет процесса ровно один раз для загрузки (независимо от количества потоков) или подсчет только потоков в настоящее время предоставляется планировщику пользовательского потока ядру, что может зависеть от уровня параллелизма, установленного для процесса. Linux, кажется, считает каждый поток отдельно как добавление к нагрузке 1.

загрузка ЦП и загрузка ЦП

Сравнительное исследование различных индексов нагрузки, проведенное Ferrari et al. сообщил, что информация о загрузке ЦП, основанная на длине очереди ЦП, намного лучше справляется с балансировкой нагрузки по сравнению с использованием ЦП. Причина, по которой длина очереди ЦП оказалась лучше, вероятно, состоит в том, что, когда хост сильно загружен, его загрузка ЦП может быть близка к 100% и не может отражать точный уровень загрузки. Напротив, длина очереди ЦП может напрямую отражать величину нагрузки на ЦП. Например, две системы, одна с 3, а другая с 6 процессами в очереди, с большой вероятностью будут иметь коэффициент использования, близкий к 100%, хотя они явно различаются.

Расчет загрузки ЦП

В системах Linux средняя загрузка не рассчитывается на каждом такте часов, а определяется значением переменной, которое основано на настройке частоты HZ и проверяется на каждом такте часов. Этот параметр определяет тактовую частоту ядра в герцах (раз в секунду) и по умолчанию равен 100 для тактов 10 мс. Действия ядра используют это количество тактов для определения времени. В частности, функция timer.c :: calc_load (), которая вычисляет среднюю нагрузку, запускается каждые LOAD_FREQ = (5 * HZ + 1) тактов или примерно каждые пять секунд:

unsigned long avenrun [3]; статический встроенный void calc_load (длинные беззнаковые тики) {unsigned long active_tasks; / * фиксированная точка * / static int count = LOAD_FREQ; count - = тиков; if (count < 0) { count += LOAD_FREQ; active_tasks = count_active_tasks(); CALC_LOAD(avenrun[0], EXP_1, active_tasks); CALC_LOAD(avenrun[1], EXP_5, active_tasks); CALC_LOAD(avenrun[2], EXP_15, active_tasks); } }

Массив avenrun содержит среднее значение за 1, 5 и 15 минут. Макрос CALC_LOADи связанные с ним значения определены в sched.h:

#define FSHIFT 11 / * количество битов точности * / #define FIXED_1 (1 <>= FSHIFT;

«Выборочное» вычисление средних значений нагрузки - довольно распространенное поведение; FreeBSD также обновляет значение каждые пять секунд. Интервал обычно не является точным, чтобы они не собирали процессы, которые должны запускаться в определенный момент.

Сообщение в списке рассылки Linux считает, что его отметка +1 недостаточна, чтобы избежать Артефакты муара из такой коллекции; вместо этого предлагается интервал 4,61 секунды. Это изменение характерно для ядер системы Android, хотя точное используемое выражение предполагает 100 Гц.

Производительность других систем команды

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

  • время работы - надежность системы и средняя нагрузка
  • верх - для verall system view
  • vmstat - vmstat сообщает информацию о запущенных или заблокированных процессах, памяти, подкачке страниц, блочном вводе-выводе, ловушках и ЦП.
  • htop - интерактивный процесс viewer
  • dstat- помогает сопоставить все существующие данные ресурсов для процессов, памяти, подкачки, блочного ввода-вывода, ловушек и активности ЦП.
  • iftop - интерактивная программа просмотра сетевого трафика для каждого интерфейса
  • nethogs- интерактивная программа просмотра сетевого трафика для каждого процесса
  • iotop- интерактивная программа просмотра ввода-вывода
  • iostat - для хранения статистики ввода-вывода
  • netstat - для сетевой статистики
  • mpstat - для статистики процессора
  • tload- график средней нагрузки для терминала
  • xload - график средней загрузки для X
  • / proc / loadavg- текстовый файл, содержащий среднюю загрузку
См. Также
Внешние ссылки
Ссылки
Последняя правка сделана 2021-05-28 04:57:40
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте