2015-02-05 6 views
2

cpuset (7) 매뉴얼에서 예제를 시도하고 cpuset Charlie를 만들었습니다. 에 모두 우분투 14.4 LTS와 SLES 12 I 얻을의 cpuset에 현재 프로세스를 넣어하려고 다음과 같은 오류 :

/dev/cpuset/Charlie# echo $$ > tasks

bash: echo: write error: No space left on device

어떤 도움?

+0

태그가 생성되었습니다. 이제 요약을 추가하십시오. –

답변

5

이것은 일반적으로 cpuset에 할당 된 메모리 노드가 없음을 의미합니다.

은 빈 줄을 반환합니다. 따라서 작업 할 메모리가 없으므로이 작업 그룹에 새 작업을 할당 할 수 없습니다.

이 cgroup에 하나 또는 모든 메모리 노드를 지정하면 문제를 해결할 수 있습니다.

$ echo 0 > /dev/cpuset/Charlie/cpuset.mems 

또한 비어있을 가능성이 높은 CPU 노드를 지정해야합니다. 자식 cgroup에 만들 때 1

$ echo 0 > /dev/cpuset/Charlie/cpuset.cpus 

설정 cgroup.clone_children은 부모 cgroup에에서 설정 메모리와 노드를 상속 자동으로 할 수 있습니다.

+0

예에서 그들은 찰리 디렉토리에 echo 1> cpuset.mems를 수행했습니다. 그러나 그것이 0인지 1인지에 상관없이 작동하지 않으며 동일한 오류를줍니다. –

+0

죄송합니다. 불완전한 답변입니다. 나는 기억을 위해 말한 것이 cpu에 대해서도 사실임을 잊었다. cpu 마스크도 설정되어 있지 않습니다. 메모리를 고정하는 것 외에도 CPU 마스크를 추가하십시오 : $ echo 0> /dev/cpuset/Charlie/cpuset.cpus cpuset.cpus와 cpuset.mems가 모두 비어 있으면 추가 할 수 있습니다. 그것에 대한 과제. 내가 처음에 언급 된 –

+0

의 예는 다음을 수행합니다 $에서 mkdir는/dev/cpuset에 $ 마운트 -t의 cpuset의 cpuset은/dev/cpuset에 $ CD는/dev/cpuset에 $에서 mkdir 찰리 $ CD를 찰리 $/bin/echo $$> 작업 # 현재 쉘이 cpuset Charlie에서 실행 중임 # 다음 줄에 '/Charlie ' $ cat/proc/self/cpuset 모든 "echo"는 끝났지 만 여전히 작동하지 않습니다. :-( –