У меня установлен предел pids.max 400
, Я хочу установить его на max
Он находится в /sys/fs/cgroup/pids/pids.max
,
sudo cgget -g pids:/
/:
pids.current: 278
pids.max: 400
Я бы подумал, что могу установить его, выполнив следующую команду, но pids.max
остается на 400.
$ sudo cgset -r pids.max=500 pids:/
$ sudo cgget -g pids:/
/:
pids.current: 278
pids.max: 400
Как мне изменить pids.max
?
Это проблема синтаксиса.
man cgset
говорит:
ОБЗОР
cgset [-r <name=value>] <cgroup_path> ... cgset --copy-from <source_cgroup_path> <cgroup_path> ...
cgroup_path для вашего случая /
не uids:/
. cgset
ничего не сделает и не вернет ошибки при применении к несуществующей контрольной группе. Это можно проверить с помощью strace
(с помощью strace -e trace=open,openat,close,write
):
нерабочий cgset -r pids.max=max pids:/
:
[...]
openat(AT_FDCWD, "/sys/fs/cgroup/pids/pids:/pids.max", O_RDWR|O_CLOEXEC) = -1 ENOENT (No such file or directory)
+++ exited with 0 +++
работает cgset -r pids.max=max /
:
[...]
openat(AT_FDCWD, "/sys/fs/cgroup/pids/pids.max", O_RDWR|O_CLOEXEC) = 3
write(3, "max", 3) = 3
close(3) = 0
+++ exited with 0 +++
Конечно, вы также можете написать прямо из оболочки в этот псевдо-файл, чтобы сделать то же самое, но используя sudo
делает его более сложным (например: необходимость использования tee
команда, а не перенаправление оболочки).