我已将 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
?
答案1
这是语法问题。
man cgset
告诉:
概要
cgset [-r <name=value>] <cgroup_path> ... cgset --copy-from <source_cgroup_path> <cgroup_path> ...
您的案例中的 cgroup_path 是/
,而不是uids:/
。cgset
当应用于不存在的 cgroup 时,它将默默地不执行任何操作并且不会返回任何错误。这可以通过以下方式验证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 +++
当然,您也可以直接从 shell 写入这个伪文件来执行相同的操作,但是使用sudo
会使它变得更加复杂(例如:必须使用命令tee
而不是 shell 重定向)。