Не обязательно, но в основном на 1.00*n_cpu.
Загрузка означает следующее: если в системе с одним процессором имеется несколько процессов, они работают, по-видимому, параллельно. Но это не правда. Что практически происходит: ядро отдает 1/100-ю секунду процессу, а затем прерывает его работу с прерыванием. И дает следующие 1/100 секунды другому процессу.
Практически вопрос «какой процесс должен получить наш следующий интервал в 1/100 секунды?» Будет решаться сложной эвристикой. Это называется планированием задач .
Конечно, процессы, которые заблокированы, например, они ждут своих данных, которые они читают с диска, освобождаются от этого планирования задач.
Какая нагрузка говорит: сколько процессов в настоящее время ждут своего следующего 1/100 секунды. Конечно, это среднее значение. Это потому, что вы можете увидеть несколько чисел в cat /proc/loadavg.
Ситуация в системе с несколькими процессорами немного сложнее. Существует несколько процессоров, временные рамки которых могут быть заданы нескольким процессам. Это делает планирование задач немного - но не слишком - сложнее. Но ситуация такая же.
Ядро интеллектуально, оно пытается разделить системные ресурсы для достижения оптимальной эффективности, и это близко к этому (есть незначительные вещи оптимизации, например, лучше, если процесс будет запущен как можно дольше того же времени процессор из-за соображений кэширования, но они не имеют значения там). Это потому, что если у нас нагрузка 8, это означает: на самом деле 8 процессов ждут своего следующего интервала времени. Если у нас есть 8 процессоров, мы можем дать эти временные интервалы процессору один к одному, и, таким образом, наша система будет оптимально использована.
Если вы видите a top, вы можете видеть, что число реально запущенных процессов удивительно мало: это процессы, отмеченные Rтам. Даже в не очень хардкорной системе это часто ниже 5. Это частично потому, что процессы, ожидающие свои данные с дисков или из сети, также приостановлены (отмечены Sсверху). Загрузка показывает только использование процессора.
Существуют также инструменты для измерения нагрузки на диск, хотя они должны быть как минимум важны для мониторинга использования процессора, но почему-то это не так хорошо известно здесь, в нашем профессиональном мире системных администраторов.
Инструменты Windows часто делят нагрузку с фактическим числом процессоров. Это заставляет некоторых профессиональных системных администраторов Windows использовать загрузку системы в этом смысле, разделенном на процессор. Они не имеют права и, вероятно, будут счастливее после того, как вы им это объясните.
Многоядерные процессоры - это практически несколько процессоров на одном кремниевом чипе. Нет никакой разницы.
В случае с многопоточными ЦП есть интересный побочный эффект: загрузка процессора замедляет работу его многопоточных пар. Но это происходит на более глубоком уровне, чем обычное планирование задач, хотя оно может (и должно) влиять на решения планировщика о перемещении процессов.
Но с нашей текущей точки зрения - что определяет нагрузку на систему - это тоже не имеет значения.