Понимание вершины и среднего числа загрузки

Можно сделать cd функция (и pop и pushd), и заставьте его обнаружить при вводе того конкретного каталога.

cd () { builtin cd "$@" && chpwd; }
pushd () { builtin pushd "$@" && chpwd; }
popd () { builtin popd "$@" && chpwd; }
unset_all_project_settings () {
  # do whatever it takes to undo the effect of projectSettings.bash,
  # e.g. unset variables, remove PATH elements, etc.
}
chpwd () {
  case $PWD in
    /some/directory|/some/other/directory) . ./projectSettings.bash;;
    *) unset_all_project_settings;;
  esac
}

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

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

myproj () {
  cd /some/directory && . ./projectSettings.bash
}
11
10.10.2013, 15:38
5 ответов

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

6
27.01.2020, 19:58

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

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

Кроме того, так как среднее число загрузки было разработано, прежде чем были многоядерные системы, его важное для деления чисел загрузки на общее доступное количество ядер. Если это - длительно действующая нагрузка 9 на 4 сокетах четырехъядерная система, то это - 9 из 16 загрузок и не действительно проблемы.

3
27.01.2020, 19:58
  • 1
    — я должен все же видеть систему, где несколько ядер на сокете выставляются до пространства пользователя способом, которое заставляет их быть похожими на что-либо кроме большего количества центральных процессоров. Таким образом в вершине, в четырехъядерной системе с 4 сокетами, 16 центральных процессоров замечены. (Таким образом, можно с готовностью видеть, что загрузка 9 ниже количества центральных процессоров.) –  mattdm 17.03.2011, 20:48
  • 2
    я понимаю, что числа являются логарифмическими, таким образом, они находятся только под или выше 1. Одна система, которую я имею, я видел, что система сообщила об этом: среднее число загрузки: 10.41, 9.57, 9.26. Что?? Почему был бы один системный отчет Linux загружать среднее число: 0.81, 1.57, 0.98, тогда как эта система сообщает о среднем числе загрузки: 10.41, 9.57, 9.26? Разве весь Unix не является тем же на этом? –  djangofan 21.06.2011, 00:56

3 средних числа загрузки - что-то как логарифмическая функция, вращающаяся вокруг номера 1. Что-то подобное f (x) = исключая (e к X экспонентам). Технически представление фиксированной точки функции экспоненциального распада моделирование среднего числа. Они - дополнение на ЦП, таким образом, предельная нагрузка могла бы быть похожей 4.00 в четырехъядерной системе. Первое число является средним числом по последней минуте, вторым является среднее число за прошлые пять минут, и третьим является среднее число за прошлые 15 минут. Я думал, что ответ должен быть отброшен здесь, который упоминает это.

0
27.01.2020, 19:58

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

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

Оба эти числа неограниченны, и часто намного больше, чем N.

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

Подробнее об этом здесь

http://blog.angulosolido.pt/2015/04/linux-load-average-definitive-summary.html

0
27.01.2020, 19:58

См. kernel/sched/loadavg.c, в начале которого есть длинный и отличный комментарий, объясняющий получение среднего значения нагрузки из экспоненциально убывающего среднего числа выполняемых потоков ("очередь выполнения") плюс число непрерывных потоков (ожидающих ввода/вывода или ожидающих блокировки).

Вот суть комментария, но его стоит прочитать полностью:

 * The global load average is an exponentially decaying average of
 * nr_running + nr_uninterruptible.
 *
 * Once every LOAD_FREQ:
 *     nr_active = 0;
 *     for_each_possible_cpu(cpu)
 *         nr_active += cpu_of(cpu)->nr_running +
 *                      cpu_of(cpu)->nr_uninterruptible;
 *     avenrun[n] = avenrun[0] *
 *                  exp_n + nr_active *
 *                  (1 - exp_n)

Реальная жизнь делает код несколько сложным: счетчики на каждый процессор, ядра без галочек, горячая замена процессоров, отсутствие кода с плавающей запятой, требующего реализации exp(n) с фиксированной запятой. Но легко заметить, что все это работает на точную реализацию метода, описанного в комментарии.

Вы заметите, что Linux считает потоки, а не только процессы, что отвечает на ваш вопрос.

3
27.01.2020, 19:58

Теги

Похожие вопросы