我嘗試了cpuset(7)手冊中的示例並創建了一個cpuset Charlie。在這兩個Ubuntu的LTS 14.4和SLES 12,我得到試圖把當前進程進入cpuset如果出現以下錯誤:
/dev/cpuset/Charlie# echo $$ > tasks
bash: echo: write error: No space left on device
任何幫助嗎?
我嘗試了cpuset(7)手冊中的示例並創建了一個cpuset Charlie。在這兩個Ubuntu的LTS 14.4和SLES 12,我得到試圖把當前進程進入cpuset如果出現以下錯誤:
/dev/cpuset/Charlie# echo $$ > tasks
bash: echo: write error: No space left on device
任何幫助嗎?
這通常意味着您沒有任何內存節點分配給cpuset。
$ cat /dev/cpuset/Charlie/cpuset.mems
會返回一個空行。所以你不能給這個cgroup分配一個新的任務,因爲它沒有任何內存可用。
將一個或所有內存節點分配給此cgroup應修復它。
$ echo 0 > /dev/cpuset/Charlie/cpuset.mems
您還需要指定一個cpu節點,因爲它也可能是空的。
$ echo 0 > /dev/cpuset/Charlie/cpuset.cpus
設置cgroup.clone_children 1可以幫助自動繼承內存和節點從父cgroup中設置創建子cgroup中時。
在示例中,他們在目錄Charlie中回顯1> cpuset.mems。但是不管它是0還是1 - 它都不起作用,並給出相同的錯誤。 – 2015-02-06 17:07:40
對不起,不完整的答案。我忘記了我對內存所說的話也適用於cpu。 CPU掩碼也未設置。除了修復內存外,還要添加一個cpu掩碼: $ echo 0> /dev/cpuset/Charlie/cpuset.cpus 如果cpuset.cpus和cpuset.mems都是非空的,您將能夠添加一項任務。 – 2015-02-09 06:31:55
我指的是在開始的示例執行以下操作: $ MKDIR的/ dev/cpuset $安裝-t cpuset cpuset的/ dev/cpuset $ CD的/ dev/cpuset $的mkdir查理 $ CD查理 $/bin/echo 2-3> cpuset.cpus $/bin/echo 1> cpuset.mems $/bin/echo $$>任務 #當前shell正在cpuset中運行Charlie #下一行應顯示'/Charlie' $ cat/proc/self/cpuset 所以所有的「回聲」都完成了,但它仍然不起作用。 :-( – 2015-02-10 07:39:28
標籤爲您創建 - 現在請爲其添加摘要。 – 2015-02-09 06:37:23