Linux: Понимание средней нагрузки и% CPU?

4

Когда я выполняю topкоманду в моей системе Ubuntu, я вижу результаты ниже

вверх - 07:58:58 вверх 1:21, 1 пользователь, средняя нагрузка: 0,82, 0,73, 0,55 Задачи: всего 293, 1 работает, 292 спит, 0 остановлен, 0 зомби% ЦП: 0,8 сша, 0,8 sy ....

Мне нужно понять load averageи %cpu.

Мое понимание основано на моих знаниях и высокой загрузке процессора, но низкой загрузке в среднем

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

Средняя загрузка - это измерение количества задач, ожидающих в очереди выполнения ядра (не только процессорного времени, но и дисковой активности) за период времени. Означает ли это .83 задачи, ожидаемые по вышеуказанным результатам? Как это может быть десятичное число? И что такое три разные цифры 0.83 0.73, 0.55?

%ЦПУ

Это показывает, сколько времени за последние x секунд процессор работал. Например: - если загрузка процессора показывает 60%, это означает, что за последние x секунд процессор работал 60% времени за x секунд. Правильно ли я понимаю? Если да, что %Cpu(s): 0.8 usпредставляет?

Кроме того, если у меня 4 процессора, а% CPU отображает 50%, значит ли это, что все ядра работают на 50% или 2 процессора работают на 100%?

user3198603
источник

Ответы:

5

Понимание средней нагрузки: 0,83 0,73, 0,55

  • Нагрузка - это мера объема вычислительной работы, которую выполняет система. Три значения - это средняя нагрузка за интервал времени. Интервалы: последние 1 минута, 5 минут и 15 минут. Среднее значение нагрузки рассчитывается как экспоненциальное скользящее среднее . Если вы хотите, вы можете глубоко погрузиться и прочитать Examining Load Average.

  • Одноядерная система

    • Среднее значение нагрузки варьируется в диапазоне. В одноядерной системе это значение 0.83означает, что ваш процессор загружен на 83% за последнюю минуту. Значение 1.0будет означать, что ваш процессор на полную мощность (100%). При значении 1.0система будет перегружена, добавив даже немного дополнительной работы. Значение больше, чем 1.0означает, что он получает больше, чем он может обработать. Это не плохо, это просто означает, что больше процессов ждут времени процессора. Вы бы увидели медлительность компьютера.
  • Многоядерная система

    • В многоядерной системе вы делите среднюю нагрузку на количество ядер. Так, например, имея среднюю загрузку 0.83и имея 4 ядра, вы бы взяли, 0.83 / 4чтобы получить 0.2075или (0.83 / 4) * 100получить 20.75%емкость. В четырехъядерной системе, если бы у вас была средняя нагрузка выше, чем это, 4.0это означало бы, что все ядра загружены на 100%, и любая перегрузка приведет к процессам, ожидающим загрузки процессора
  • Перегрузка возникает, когда вы превышаете максимальную мощность. Средняя загрузка как перегрузка может быть немного запутанной для чтения, потому что она основана на ваших ядрах. Если у вас есть четырехъядерный процессор, вы не будете перегружены, пока значение нагрузки не закончится 4.0. Если бы первое среднее значение нагрузки было 5.50таким, это означало бы, что ваша система перегружена на 150%, и в среднем 1,5 процесса в последнюю минуту должны были ждать загрузки процессора.

Понимание% CPU (s): 0.8us, 0.8sy ....

  • Этот раздел отображает, КАК ЦП был использован. Каждый суффикс обозначает что-то конкретное и указывает, сколько времени ЦП тратит на этот набор задач. Если вы сложите все числа в этой строке вывода, это добавит до 100%.

  • Задачи определены как ... источник

    • нас - процент процессора для пользовательских процессов
    • sy - процент загрузки процессора для системных процессов.
    • ni - процент процессорных процессов с приоритетным обновлением nice Ni easter egg
    • id - процент неиспользуемого процессора
    • wa - процент процессов ЦП, ожидающих операций ввода-вывода
    • привет - процент процессора, обслуживающего аппаратные прерывания
    • si - процентное соотношение процессора, обслуживающего программные прерывания
    • й в виртуальной среде, часть ресурсов процессора предоставляются каждой виртуальной машины (VM). ОС определяет, когда у нее есть работа, но она не может выполнить ее, потому что ЦП занят на другой виртуальной машине. Количество времени, потерянное таким образом, является временем кражи
DrZoo
источник
Спасибо DrZoo за такой описательный ответ. Вы сказали, что, Load is the measure of the amount of computational work a system performsя полагаю, еще одно ясное утверждение может быть, Load is the measure of the amount of computational work a system performs or need to perform (for the processes in queue)когда вы говорите %Cpu(s) section is a displays HOW the CPU has been used, поэтому его тип загрузки процессора только там, где это мера фактической работы, которую не нужно выполнять для задач в очереди.
user3198603
Кроме того, когда статистика говорит, %Cpu(s): 0.5usчто это означает 50% загрузки ЦП (для пользовательского процесса), включая все ядра. Я имею в виду, если это четырехъядерный процессор, значит, все 4 ядра работают на 50% времени или это могут быть также 2 ядра, работающие на 100% времени в течение последних x секунд? Если да, каково значение x для ОС Ubuntu / Linux?
user3198603
@ user3198603 0.5usозначает, что менее 1% задач, которые ЦП выполнял, были пользовательскими процессами. Если вы сложите все числа в %Cpu(s)строке вывода, это добавит до 100%. Это просто относится ко всей работе, выполненной процессором, независимо от того, какое ядро ​​или ядра выполняли эту работу. Я думаю, что %Cpu(s)вывод не относится к временным top - 07:58:58 up
рамкам
Большое спасибо @DrZoo. Верно ли мое понимание первого комментария?
user3198603
@ user3198603 да, раздел% Cpu (s) - это работа, которая уже была выполнена. Не то, что в очереди.
DrZoo