CPU 사용량을 제한하기 위해 루트가 아닌 사용자로 cgroup v2 사용: 권한이 거부되었습니다.

CPU 사용량을 제한하기 위해 루트가 아닌 사용자로 cgroup v2 사용: 권한이 거부되었습니다.

cgroups v2를 사용하여 프로세스의 CPU 사용량을 제한하려고 합니다. 계층 구조가 이미 생성되었고 제한이 설정되었으므로 cgroup.procs 파일에 pid를 작성하면 됩니다. 경로 는 모든 /sys/fs/cgroup/system.slice/myfolder/myfolder/myfolder/cgroup.procs것입니다.내 파일s의 권한은 입니다 drwxr-xr-x myuser mygroup. cgroup.procs 파일의 권한은 입니다 -rwxrwxrwx myuser mygroup. 그러나 다음 명령을 실행하려고 하면:

sudo -H -u myuser bash -c 'echo some_existing_pid > /sys/fs/cgroup/system.slice/myfolder/myfolder/myfolder/cgroup.procs'

다음 오류가 발생합니다.

bash: line 1: echo: write error: Permission denied

가능한 이유는 무엇입니까?

운영 체제: 우분투 22.04

답변1

내 첫 번째 추측은 이동 프로세스를 허용하지 않는다는 것입니다밖의원래 cgroup. 커널이 사용하는 규칙은 프로세스를 cgroup A에서 cgroup B로 이동하려면 먼저 해당 프로세스를 속한 cgroup으로 이동할 수 있는 권한이 있어야 한다는 것입니다.공통 조상A 및 B 둘.

(systemd에 내장된 cgroup 계층 구조 관리를 사용하는 것이 좋습니다. 즉, .slice 단위를 생성하여 계층 구조를 정의한 다음 프로세스를 .scope 단위로 이동하는 것입니다 systemd-run.)

관련 정보