루트가 아닌 사용자로 cgroup 을 만들고 사용하려면 어떻게 해야합니까?
예를 들어, 전적으로 루트가 아닌 사용자로 할 수 있습니까?
- 하나의 CPU에 액세스 할 수있는 cgroup을 만듭니다.
- 해당 cgroup에서 새 프로세스를 만듭니다
?
처음 여기에 물 었지만 완전한 답변을받지 못했습니다. 나는 또한 stackoverflow 에 대해 물었지만 질문은 주제가 아닌 것으로 마감되었습니다.
루트가 아닌 사용자로 cgroup 을 만들고 사용하려면 어떻게 해야합니까?
예를 들어, 전적으로 루트가 아닌 사용자로 할 수 있습니까?
?
처음 여기에 물 었지만 완전한 답변을받지 못했습니다. 나는 또한 stackoverflow 에 대해 물었지만 질문은 주제가 아닌 것으로 마감되었습니다.
답변:
일반 사용자로는 그렇게 할 수 없습니다. 그러나 cgroup을 루트로 설정하고 사용자가 구성 할 수 있습니다.
예를 들어 systemd에 의해 마운트 된 기본 cgroup 컨트롤러가없는 경우 :
$ sudo mount -t tmpfs cgroup_root /sys/fs/cgroup
$ sudo mkdir /sys/fs/cgroup/cpuset
$ sudo mount -t cgroup -o cpuset cpuset /sys/fs/cgroup/cpuset
cgroup을 만듭니다.
$ sudo mkdir /sys/fs/cgroup/cpuset/${USER}
$ sudo chown -R ${USER} /sys/fs/cgroup/cpuset/${USER}
이제 cgroup의 구성을 일반 사용자로 수정할 수 있습니다.
$ echo 0-3 > /sys/fs/cgroup/cpuset/${USER}/cpuset.cpus
해당 그룹에 프로세스를 추가하십시오.
$ ./my_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/tasks
또는 하위 그룹을 작성하십시오.
$ mkdir /sys/fs/cgroup/cpuset/${USER}/subgroup
$ echo 0-1 > /sys/fs/cgroup/cpuset/${USER}/subgroup/cpuset.cpus
$ ./my_other_task &
$ echo $! > /sys/fs/cgroup/cpuset/${USER}/subgroup/tasks
rm -r
먼저 파일을 삭제하려고 시도하는데 실패합니다. rmdir
cgroup을 제거하는 데 사용 합니다.
rmdir
질 때까지 할 수 없습니다 tasks
. root는 하위 그룹의 tasks 파일을보고 거기에있는 각 pid를 root cgroup의 tasks 파일 ( /dev/cpuset/tasks
RHEL 6.7 [kernel 2.6.32-358] 상자에 있지만 /sys/fs/cgroup/cpuset/tasks
여기에 적절한 것처럼 보입니다)에 에코 합니다.
cgroup 에 대한 LWN 에 관한 일련의 기사 가 있습니다. 1 부를 보거나 검색하십시오. Systemd 에는 cgroup을 관리 (프로세스가 관리하는) 할 수있는 일련의 도우미가 포함되어 있습니다.
rm -r
나를 위해 실패