Проблема Debian 11 с локалью :Нет такого файла или каталога

Полный бестактовый режим, который активируется, например, с помощью. nohz_full=cpux-cpuyдействительно эффективен, только если есть только одна работающая задача на каждом nohz_fullЦП:

Adaptive-ticks does not do anything unless there is only one runnable task for a given CPU, even though there are a number of other situations where the scheduling-clock tick is not needed.

(ср. Документация/таймеры/НО _HZ.txt)

Таким образом, если вы проверяете nohz_fullЦП с помощью ps, имеет смысл явно искать исполняемые задачи -, например.:

$ ps -e -L -o cpuid,pid,lwp,state,pri,rtprio,class,wchan:20,comm \
      | awk '$1 == '$mycpunr

(т.е. посмотрите на столбец состояния)

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

Всего лишь nohz_full=, ничто не мешает ядру планировать пользовательские/ядерные потоки на выбранных процессорах. Таким образом, обычно также изолируются эти процессоры, чтобы избежать вмешательства со стороны других потоков. Например, с:

nohz_full=cpux-cpuy isolcpus=cpux-cpuy

(ср. Параметры ядра Linux)

С этими параметрами поток на изолированном nohz_fullЦП все еще может быть прерван, например. таймерами и обратными вызовами RCU.

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

Вы можете проверить /proc/timer_listтаймеры, которые все еще активны на изолированных ЦП.

Типичными примерами таймеров, которые могут отображаться на изолированном ЦП, являются watchdog_timer_fnи таймер, связанный с исключениями проверки машины (MCE ).

Вы можете отключить эти прерывания с помощью дополнительных параметров ядра , например.:

nowatchdog mce=ignore_ce

Просмотр счетчиков /proc/interrupts— хороший способ проверить аппаратные прерывания. Другим источником прерываний являются Softirq, поэтому также необходимо проверять счетчики /proc/softirqs.

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

rcu_nocb_poll

Этот вариант требует, чтобы rcu_nocbs=был эффективным,но nohz_full=уже подразумевает rcu_nocbs=для указанных процессоров.

Обратите внимание, что вы явно должны переместить разгруженные потоки обратного вызова RCU на вспомогательный ЦП -, явно задав сходство ЦП для этих потоков. Например, с тунцом (на ЦП 0):

# tuna -U -t 'rcu*' -c 0 -m

В документе ядра Documentation/kernel -per -CPU -kthreads.txt описаны дополнительные источники прерываний (, также известные как джиттер ОС ), и показано, как их найти с помощью запуск тестовой нагрузки с включенной трассировкой.

2
10.11.2021, 13:21
1 ответ

Удалите export LANGUAGE=en_GB:en_US:frиз вашего .bashrc, затем запустите dpkg-reconfigure locales.

1
10.11.2021, 14:47

Теги

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