2013-06-19 72 views
0

我cat/cgroup/memory/tasks和/ cgroup/cpuset/tasks,我發現了很多重複的任務。難道一個任務只能出現在一個cgroup層次結構中嗎?我對cgroup機制不是很熟悉,內存和cpuset是否可以控制任務行爲的不同方面?爲什麼同一個任務可能在不同的cgroup中

更具體地說,如果不同的子系統的行爲與任務所涉及的另一個行爲衝突會發生什麼?

回答

0

您正在混合使用2個priciples:任何進程始終是某個cgroup的成員,但這適用於cgroup層次結構(彼此獨立)。因此,每個進程都將成爲您定義的每個cgroup層次結構中某個cgroup的成員(通常安裝在/cgroup/HIERARCHY_NAME中)。

例如,在配置機器有2個層次:

  • 安裝在/cgroup/memory與安裝在與cpuset的cgroup控制器相關/cgroup/cpusetmemory的cgroup控制器
  • 相關

你將開始與這兩個文件包含/cgroup/cpuset/tasks/cgroup/memory/tasks所有正在運行的進程的pid,直到您創建新的cgroup並在其中放入一些進程。所以難怪你在這裏看到相同的pid。

此外,由於cgroup層次結構是獨立的,因此無法將cgroup控制器連接到多個層次結構 - 這消除了明顯的衝突。

相關問題