Разница между хорошим уровнем и свойством systemctl CPUShares

Предполагая, что ваши файлы расположены в правильном порядке (цель, затем имя ссылки), и что ни одно имя файла не содержит специальных символов или пробелов:

sed 's/^/ln -sf /g' < src/symlinks | sh

преобразует ваш список симлинков в серию команд ln -sf и запустит его с помощью sh.

7
14.02.2017, 17:28
2 ответа

Из чтения man systemd-run , он создаст службу и, таким образом, контрольную группу на лету. При чтении systemd.exec директива Nice = будет применяться ко всем выполняемым процессам, поэтому systmd обрабатывает концепции Nice = и CPUShares = очень похожи.

Насколько я понимаю, эти отношения связаны с историей. nice существует уже несколько десятилетий и всегда применяется к конкретным процессам.

С другой стороны, концепция cgroups и идея применения CPUShares = к группе процессов - гораздо более новая концепция, но преследует ту же цель.

Я ожидаю, что systemd поддерживает Nice = для исторической совместимости.

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

9
27.01.2020, 20:15

В Linux

  • значение nice применяется к задаче , то есть процессу или потоку (см. ссылку для устранения неоднозначности ),
  • значение «Общие ресурсы ЦП» применяется к группе задач (, например :a cgroup).

Планировщик задач Linux по умолчанию -не реального времени (CFQ )распределяет процессорное время «справедливо» между различными контрольными группами. Он будет использовать значение cpu.sharesкаждой контрольной группы (по умолчанию 1024 )по сравнению со значениями cpu.sharesдругих контрольных групп, чтобы предоставить больше или меньше процессорного времени каждой контрольной группе (больше долей = больше пропускной способности процессора ).

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

sched (7)говорит:

Under group scheduling, a thread's nice value has an effect for scheduling decisions only relative to other threads in the same task group.


Дополнительные примечания:

  • группа задач является контрольной группой или автогруппой (см. план (7 )),
  • автогруппировка может быть отключена по умолчанию в вашем дистрибутиве Linux, проверьте с помощью cat /proc/sys/kernel/sched_autogroup_enabled,
  • группы задач могут иметь иерархические отношения, (cgroups внутри cgroup ), которые, как я предполагаю, планировщик задач CFQ рассматривает для распределения процессорного времени,
  • «Недавние» дистрибутивы могут использовать systemd для помещения задач в контрольные группы по умолчанию (попробуйте systemd-cgtopиsystemd-cgls).
12
27.01.2020, 20:15

Теги

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