Этот ответ на stackoverflow помог. Я обнаружил, что ядро будет использовать правило cpu.shares
только тогда, когда между cgroup и системными процессами возникает конкуренция за процессор. Если конфликтов нет, контрольная группа может использовать все ресурсы ЦП. Добавление следующей строки в раздел cpu помогло:
cpu.cfs_period_us=1000000;
cpu.cfs_quota_us=800000;
Результат приведенных выше строк заключается в том, что на каждую секунду работы процессора процессам cgroup будет отведено 0,8 секунды.
Чтобы проверить, создана ли контрольная группа и активна ли она, были полезны команды systemd-cgls
и systemd-cgtop
.
Вы можете использовать флаг -f
, который читает из файла, задавая /dev/stdin
в качестве имени файла, что указывает на стандартный ввод.
printf '%s\n' "foo" "bar" | grep -f /dev/stdin input.txt
Некоторые реализации Grep также позволяют использовать дефис -
для представления стандартного ввода.
Я также использовал Printf (, который печатает «foo» и «bar», разделенные новой строкой ), потому что он более переносим, чем Echo. Bash Echo потребовал бы, чтобы флаг -e
интерпретировал \n
как символ новой строки.