LINUX.ORG.RU

CONFIG_NO_HZ_FULL=y

 ,


0

2

До этого долго пользовался BFS и CONFIG_NO_HZ_IDLE=y. Сейчас решил поэкспериментировать с BLD и CONFIG_NO_HZ_IDLE=y.
Что ждать от поведения системы?
Правильные ли я настройки сделал?:

cat /boot/config-3.18.1-gentoo | grep -i hz
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
# CONFIG_NO_HZ_IDLE is not set
CONFIG_NO_HZ_FULL=y
# CONFIG_NO_HZ_FULL_ALL is not set
# CONFIG_NO_HZ_FULL_SYSIDLE is not set
# CONFIG_NO_HZ is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000

Deleted

Последнее исправление: Lifun (всего исправлений: 4)

Живу с

CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
# CONFIG_NO_HZ_IDLE is not set
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ_FULL_ALL=y
# CONFIG_NO_HZ_FULL_SYSIDLE is not set
CONFIG_NO_HZ=y
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000

Всё работает. Чтобы давало какой-то особый профит не заметил, но я не замерял особо.

Lilly
()
Ответ на: комментарий от Lilly

тож пока ничего не заметил. просто об этой фиче пишут, как о каком-то ускорителе Линукса.

Deleted
()

Эээ, господа, Lifun и Lilly, эта штука может давать какой-либо профит в очень редких случаях («CPUs having only one runnable task»). В остальных случаях она даёт только оверхед.

Ref.: https://www.kernel.org/doc/Documentation/timers/NO_HZ.txt

UPD: а, вообще-то, она по дефолту ничего не даёт, её включать нужно параметром nohz_full=. :]

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

это так в доках написано, а теории она даёт прирост производительности не только для hpc, только десктопов.

Deleted
()
Ответ на: комментарий от intelfx

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

Lilly
()
Ответ на: комментарий от Deleted
linux-3.18.0-gentoo ) cat .config | grep -i rcu
# RCU Subsystem
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_USER_QS=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
# CONFIG_RCU_FAST_NO_HZ is not set
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_NONE is not set
# CONFIG_RCU_NOCB_CPU_ZERO is not set
CONFIG_RCU_NOCB_CPU_ALL=y
# RCU Debugging
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=21
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set

Но сразу предупреждаю, что я не настоящий сварщик и по части ядра советовать мне особо нечего.

Lilly
()
Ответ на: комментарий от intelfx

надо будет попробовать тогда включить. nohz_full=0,1,3

Deleted
()
Ответ на: комментарий от Lilly

Я не рекомендую ничего, просто цитирую документацию. Можно спросить в linux-kernel@, если особо интересно. Но я почти уверен в том, что там ответят: если нет необходимости — не трогайте.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

если почитать lwm, то можно увидеть, что там пишут о том, что full tickless это шаг вперёд по сравнению с предыдущими таймерами.

Deleted
()
Ответ на: комментарий от Deleted

Да, но это не означает, что дока противоречит теории. Я именно это имел в виду.

Нет, хозяин, безусловно, барин, но... ты уверен, что ты умнее того, кто это писал?

intelfx ★★★★★
()
Ответ на: комментарий от Deleted

Unless you are running realtime applications or certain types of HPC workloads, you will normally -not- want this option.

Для меня этого достаточно.

Lilly
()
Ответ на: комментарий от intelfx

вносивший этот патч описал его, как повышающий производительность не только hpc, но и десктопов. но т.к. я всё равно нифига не понял из дальнейшего чтива, что это таки в конце концов мне принесёт, и понял, что для i7 это бесполезно по причине HT, то всё вернул обратно.

Deleted
()
Ответ на: комментарий от Deleted

а теории она даёт прирост

а на пракитике? потому что иначе выгоднее оставить дефолт и не рисковать регрессом

anonymous
()
Ответ на: комментарий от anonymous

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

Deleted
()
Ответ на: комментарий от Deleted

но разве «на практике» не должно подразумевать наличие воспроизводимого теста и пруфа с красивыми графиками?

anonymous
()
Ответ на: комментарий от Deleted

Суть full dynticks заключается в том, что таймерные прерывания отключаются не только для простаивающих процессоров, но также и в том случае, когда исполняется код — при одном условии: на данном процессоре больше нет задач в очереди на исполнение. При этом хотя бы один процессор должен оставаться в «старом» dynticks.

Соответственно, цитата:

3. Omit scheduling-clock ticks on CPUs that are either idle or that
have only one runnable task (CONFIG_NO_HZ_FULL=y). Unless you
are running realtime applications or certain types of HPC
workloads, you will normally -not- want this option.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от anonymous

на практике, похоже, мало кто эту фичу использует

Deleted
()
Ответ на: комментарий от intelfx

это уже прочитал. и другое прочитал.

- A single task executing on a CPU is a pretty common situation, especially with an increasing number of cores/CPUs, so this feature helps desktop and mobile workloads as well.

Deleted
()
Последнее исправление: Lifun (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.