「第13回コンテナ技術の情報交換会@オンライン」の発表資料です。 参考となる情報にはPDF中からリンクをしていますが、資料中のリンクは Speaker Deck 上ではクリックできないので PDF をダウンロードしてご覧ください。
cgroup v1 〣෦ߏՃ౻ହจ2020-12-051/37
View Slide
ࣗݾհʢ1ʣՃ౻ହจTwitter @ten_forwardgithub https://github.com/tenforwardٕज़ϒϩά https://tenforward.hatenablog.com/ॴଐ גࣜձࣾ IDC や゜アふくぎ / lxc-jp Project /Plamo Linux ゐアふべそ゚がゆ2/37
ࣗݾհʢ2ʣझຯ〜ぢアふべ〹〘〛〳『ɻぢアふべ〣ओ〠じがぼ゚पล〣࣮〠ڵຯ⿴〿〳『ɻ2007 ぢアふべぇ〘〔つがもと։ൃʢVirtuozzoʣ2009 OpenVZ/LXC ৮〿〕『2013 ୈ 1 ճぢアふべܕԾԽ〣ใަձ։࠵LXC ຊޠ man pages ༁&ろがでʢݱࡏ〤 LXD ؔ࿈〣༁ɺlinuxcontainers.org ༁〷〹〘〛〳『ʣ2014 gihyo.jp 〜ʮLXC 〜ֶ〫ぢアふべೖ ʵܰྔԾԽڥぇ࣮ݱ『ٕज़ʯ࿈ࡌ։࢝ݱࡏ CloudNative 〣〠〿ぁ3/37
ຊ〣༰cgroup 〣ߏମؒ〣ؔぇத৺〠「〳『ɻ• cgroup v1 〣ぢがへぇཧղ『্〜〘〛⿶〝ྑ《〒⿸〟 cgroup 〣෦ߏ〠〙⿶〛આ໌「〳『• cgroup v1 〜のとぜ cgroup ؒぇҠಈ『ࡍ〣ॲཧ〠ؔ『ߏମぇઆ໌「〳『આ໌〣લఏ〝「〛:• جຊత〠〤 cgroup v1 〠〙⿶〛「〳『ɺߏࣗମ〤 v2 〜〷มい〿〳【え〣〜 v2ぇཧղ『ࡍ〠〷ཱ〙〤』〜『• આ໌〣よがと〤 4.19 kernel 〜『جຊత〟 cgroup v1 〣આ໌〠〙⿶〛〤ɺࢲ〣࿈ࡌぇ〉ཡ。〕《⿶ʢୈ 3ʙ5 ճʣɻ• LXC 〜ֶ〫ぢアふべೖ ʵܰྔԾԽڥぇ࣮ݱ『ٕज़ ʢgihyo.jpʣ4/37
cgroup 《〾⿶cgroup• cgroup ༻〣ٙࣅやきぐ゚てとふわぇろげアぷ「〛⿸• び゙がߏぇ〝〿ɺぶく゛ぜぷ゙ cgroup ぇද『ʢkernfs 〣ػೳぇ༻ʣ• ぶく゛ぜぷ゙த〠ग़ݱ『やきぐ゚〜ぢアぷ゜が゚ぇߦ〘〔〿ઃఆぇऔಘ「〔〿『• ぢアぷ゜が゚「〔⿶゙ぬがと〉〝〠ʮぢアぷ゜ががʢつゅてとふわʣʯ४උ《ぁcgroup v1• ෳ֊ʢび゙がʣߏ• び゙が〉〝〠ぢアぷ゜ががぇ〧〷〚々• ҙ〣 cgroup 〠のとぜʢゆ゜なとɺと゛ひへʣॴଐ〜 • ෳ〣び゙が⿴߹ɺてとふわ্〣のとぜ〤ඞ』֤び゙が〜〧〝〙〣 cgroup 〠ॴଐ『5/37
cgroup v1 び゙が• ֊ߏɻ֊〉〝〠ߏҟ〟• cgroup 〠のとぜ〝ぢアぷ゜ががඥ⿶〛⿶6/37
cgroup 〝のとぜ〠ؔ『ॲཧ〣લఏcgroup 〠ؔいॲཧɿ1. のとぜぇ cgroup 〠ׂ〿〛ɻのとぜ cgroup ؒぇҠಈ『2. cgroup 〠ॴଐ『のとぜぇऔಘ『ɻのとぜ〠ର『 cgroup ぇऔಘ『ɻのとぜぢアぷ゜がが〣ঢ়ଶ〠ぎぜなと『̍ʹൺΔͱ̎ͷස͕ߴ͍ɻͳͷͰ͕̎ศརͳߏΛऔ͍ͬͯΔʢ々〞ɺ〒ぁ〜〤ෆศ〟〣〜てゖがぷじひぷߏମ〠ؚ〳ぁ〛⿶〔〿『ˠ༨ܭ〹〹〈「⿶ʣ7/37
cgroup 〠ؔ『ॏཁ〟ߏମ〝〒〣ؒ〣ؔ
cgroupɺのとぜ〝゙ぬがとཧ〟〞〣ؔ࿈ぇݟલ〠ɺ〳』〤ぢアぷ゜ががʢつゅてとふわʣぇද『ߏମぇݟ〛〴〳「〼⿸ɻɹ৽「⿶ぢアぷ゜ががぇ࣮「〽⿸〝『〝ɺ࣍〠հ『ߏମ〣֤ゐアみが〠ઃఆ『ؔぇ࣮「〛⿶。ײ」〠〟〿〳『ɻ8/37
cgroup_subsys ߏମぢアぷ゜がが〒〣〷〣ɻぢアぷ゜ががぇ࣮『ࡍ〤ɺ〈〣ߏମぇఆٛ「〛ඞཁ〟ぢが゚みひぜؔ〟〞ぇඞཁ〠Ԡ」〛࣮「〛⿶。ɻ• ぢアぷ゜がが〣ใぇఆٛ『• cgroup 〠ؔい༷ʑ〟ॲཧぇߦ⿸໘〜⿸ぢが゚みひぜؔぇఆٛ『• てとふわ〜⿺ぢアぷ゜がが〤ɺじがぼ゚〣 config ࣌〠ܾఆ《ぁTable 1: cgroup_subsys ߏମʢൈਮʣม໊ ઃఆ『ؔ〣ॲཧname ぢアぷ゜がが໊css_alloc cgroup_subsys_state ߏମ〣ゐゑ゙がぇ֬อ『ؔcss_online ぢアぷ゜がが〣ઃఆぇྃ《【ؔcan_attach ʢぢアぷ゜がが〝「〛ʣcgroup 〠のとぜҠಈ〜 ぇ֬ೝ『ؔattach cgroup 〠のとぜҠಈ「〔⿴〝〣ॲཧぇߦ⿸ؔlegacy_cftypes cgroup v1 〣 cgroup 〜ग़ݱ『やきぐ゚ใ〠ؔ『 cftype ߏମ〣ྻ9/37
〒ぁ〜〤⿶〽⿶〽 cgroup ぢぎ〣ߏ〠ؔいߏମぇ〴〛⿶ 〳『ɻ10/37
cgroup v1 び゙がʢ࠶ܝʣ• ֊ߏɻ֊〉〝〠ߏҟ〟• cgroup 〠のとぜ〝ぢアぷ゜ががඥ⿶〛⿶11/37
cgroup ߏମ〳』〤 cgroup ߏମぇݟ〛〴〳「〼⿸ɻTable 2: cgroup ߏମʢൈਮʣܕ ม໊ આ໌cgroup_subsys_state self ࣗ〣ૢ࡞〠⿸〔〶〣 cgroup_subsys_state ߏମunsigned long flags ࣗ〣ڍಈぇઃఆ『やそint id ֊〣 cgroup 〣 IDint nr_populated_csets ࣗ〠〧〷〚⿶〛⿶ۭ〜〟⿶ css_set 〣kernfs_node kn ࣗ〣ぶく゛ぜぷ゙ぇද『 kernfs 〣ぽがへcgroup_subsys_state* subsys ࣗ〠〧〷〚。 cgroup_subsys_state ߏମ〣ྻcgroup_root root ࣗॴଐ『֊〣 root cgrouplist_head cset_links ࣗ〠ॴଐ『のとぜ〠ؔ『 css_set ぇࢦ『 cgrp_cset_links ߏମlist_head pidlists tasksɺcgroup.procs やきぐ゚〠ॻぁ PID/TID 〣゙とぷ〜⿴cgroup_pidlist ߏମ〣゙とぷwork_struct release_agent_work cgroup 〣のとぜ〟。〟〘〔〝 〠༻『ぢが゚みひぜؔぇొ『ゞがぜずゔが)12/37
cgroup ߏମ• のとぜぇද『 task_struct ߏମ〠ؔ࿈『ゐアみ〤⿶〟⿶• ぢアぷ゜がが〠ؔ࿈『ゐアみ〤ଘࡏ『ˠ cgroup_subsys_state ߏମ〣ྻsubsysʢޙड़ʣ• やきぐ゚てとふわ〝「〛〣֊ߏ〤 kernfs_node ߏମ〣 kn 〜ཧ《ぁ• やきぐ゚てとふわ〝「〛〕々〜〟。ɺ゙ぬがとཧ〣؍〾֊ߏʢઌ〹ࢠଙʣぇ〔〞ඞཁੑ⿴• subsys 〝〤ผ〠〷⿸〧〝〙 cgroup_subsys_state ߏମ self ଘࡏ『ˡॏཁ13/37
〞〈〜のとぜ〝〣ؔ࿈〹゙ぬがと੍ޚ〠ؔ『ใཧ《ぁ〛⿶〣〜「〼⿸?〒〣⿴〔〿ぇॱ〠〘〛⿶ 〳『ɻ14/37
cgroup_subsys_state ߏମ• ໊લ௨〿ɺಛఆ〣ʮcgroupʯ〣ಛఆ〣ʮίϯτϩʔϥʔʢαϒγεςϜʣʯʢsubsysʣ〣ʮঢ়ଶʯʢstateʣぇཧ『• 〙〳〿• 〧〝〙〣 cgroup 〠ର『• ʢ〒〣 cgroup 〜ཧ《ぁʣ〧〝〙〣ぢアぷ゜がが〉〝〠〧〝〙 cgroup_subsys_state ߏମଘࡏ『15/37
ゆ゜なと〝 cgroup_subsys_state ߏମ〝 css_set ߏମ16/37
cgroup_subsys_state ߏମTable 3: cgroup_subsys_state ߏମʢൈਮʣܕ ม໊ આ໌cgroup cgroup ࣗ〧〷〚。 cgroup ߏମcgroup_subsys ss ࣗ〠〧〷〚。 cgroup_subsys ߏମʢ=ぢアぷ゜ががʣpercpu_ref refcnt ࢀরじげアのがcgroup_subsys_state parent ֊〣 cgroup_subsys_stateʢҎ߱ cssʣlist_head sibling ࣗ〣 css 〣ࢠ css 〣࿈゙݁とぷɻ〙〳〿ܑఋ〣゙とぷlist_head children ࣗ〣ࢠ cgroup 〣 css 〣࿈゙݁とぷunsigned int flags ࣗ〣ঢ়ଶʢonline ? ࢀর⿴? ऴྃ「々? 〟〞ʣwork_struct destroy_work css ぇআ『ࡍ〠༷『ぢが゚みひぜؔぇొ『ゞがぜずゔが• ࣮ࡍ〣ぢアぷ゜がが〭〣ࢀরぇ࣋〙• cgroup 〣֊ߏ〠ؔ『ゐアみぇ࣋〙ʢparent, sibling, childrenʣ• cgroup ߏମ〠〤 self 〝⿶⿸໊લ〣 cgroup_subsys_state ߏମ⿶〔ɻ〈〣 self 〤ぢアぷ゜がが〭〣ࢀর〟⿶ʢNULLʣঢ়ଶ〜ɺ֊ߏぇ〔〞〘〔〿『ࡍ〠いぁʢcgroup_subsys_state ߏମ〣。【〠ぢアぷ゜がが〠ؔ『ॲཧぇ「〟⿶⿶ճ「త〟いぁํ〜〹〹〈「⿶ʂʣ17/37
css_set ߏମ• cgroup v1 〜〤ෳ〣 cgroupfs ぇろげアぷ〜 ɻ֤び゙がʢろげアぷʣ〠ಛఆ〣ぢアぷ゜ががぇ〧〷〚々〾ぁ• ⿴のとぜ〠ؔ『゙ぬがとফඅ〣ঢ়ଶぇݟ〔⿶߹ɺෳび゙が〠ࢄ「〛⿶cgroup_subsys_state ߏମぇ〳〝〶〔ߏମ⿴〝ศརˠɹ〈〣త〣ߏମ css_set ߏମ• ಉҰ〣のとぜ〠ؔ࿈『 cgroup_subsys_state ߏମ〣ʢಉҰ〣 cgroup 〠〧〷〚。ぢアぷ゜ががใ〣ʣ〉〝〠 css_set ߏମ࡞〾ぁ• のとぜ〾〤〈〣 css_set ぇࢀর『ɻෳび゙が〠〳〔〘〔ぢアぷ゜がが〣ใぇࢀর『〣؆୯18/37
ゆ゜なと〝 cgroup_subsys_state ߏମ〝 css_set ߏମʢ࠶ܝʣ19/37
css_set ߏମ〣ੜのとぜҠಈ『〝のとぜࢀর『 css_set ߏମมい• のとぜ cgroup ؒʢroot ˠ root Ҏ֎〣 cgroupɺroot Ҏ֎〣 cgroup ಉ࢜ʣぇҠಈ『ࡍ〠〤ɺのとぜࢀর『 cgroup_subsys_state ߏମ〣มԽ『ˠ৽〔〟 css_set ߏମඞཁのとぜ〣〕々 css_set ߏମඞཁʁ てとふわ্〠େྔ〣 css_set ߏମੜ《ぁʁ• ಉ」 cgroup_subsys_state ߏମ〣ぇࢀর『のとぜ『〜〠⿴〷「ぁ〟⿶ˠ৽〔〠 css_set ぇ࡞ඞཁ〟⿶ʢಉ」ぇࢀর「〛߹〤⿶ճ「ʣ• ⿶ճ【 css_set ߏମてとふわ্〠ଘࡏ『ぇݕࡧ『〔〶〠ɺてとふわ্〠ଘࡏ『『〮〛〣 css_set ߏମ〤まひてゔふがゅ゚〠゙アぜ《ぁ〛⿶20/37
のとぜ〣Ҡಈ〠〽 css_set ߏମ〣ੜ21/37
࣮ࡍ〣てとふわ্〣 css_set ߏମび゙が〉〝〠のとぜॴଐ『 cgroup ぇҙ〠બ〮ˠてとふわ্〠 css_set ߏମେྔ〠ੜ《ぁՄೳੑ〔〕ɺ࣮ࡍ〣てとふわ〜〤ɺ• ෳび゙がଘࡏ「〛〷ɺ『〮〛〣び゙がಉ」び゙がߏぇ「〛⿶• ぢアふべろぼがでをが〤ぢアふべ༻〣 cgroup ֊ߏぇશび゙が〜ಉ」〽⿸〠࡞『ʢsystemd 〷ʣ• ろ゚ばと゛ひへ〣のとぜɺಉ」ゆ゜そわ〣ࢠゆ゜なと〤〰〝え〞〣߹ಉ」 cgroupʢ〣ʣ〠ॴଐ『• ぢアふべろぼがでをがぢアふべ〣શゆ゜なとぇಉ」 cgroupʢ〣ʣ〠ॴଐ《【ͭ·Γ͋ΔఔͷλεΫͷ͔ͨ·Γʢʣ͕ಉ͡ css_set ߏମΛࢀর͍ͯ͠Δ͜ͱ͕΄ͱΜͲˠてとふわ css_set ߏମ〜⿴〪ぁ〽⿸〟〈〝〤〳⿴〟⿶22/37
task_struct ߏମ〝 cgroupLinux ্〜のとぜぇද『 task_struct ߏମ〠〤 cgroup ؔ〣ゐアみ⿶。〙ଘࡏ『ɻ〒〣⿸〖 cgroup 〝のとぜ〣ؔੑぇࣔ『〣〠ॏཁ〟〣ɿ struct task_struct {:ʢུʣ#ifdef CONFIG_CGROUPS/* Control Group info protected by css_set_lock: */struct css_set __rcu *cgroups;/* cg_list protected by css_set_lock and tsk->alloc_lock: */struct list_head cg_list;#endif:ʢུʣ} • css_set ߏମぇද『ม໊ cgroupsʢ࣮࣭ɺ゙ぬがとؔ࿈〣ใ〤 css_set ߏମ〣ઌ〠⿴〣〜のとぜ〾ݟ〔 cgroup 〤 css_set 〕〝⿶⿸〈〝ʣ• cg_list 〝⿶⿸゙とぷぇ࣋〘〛⿶ʢޙड़ʣ23/37
のとぜ〝 css_set 〣ؔ• task_struct ߏମ〾 css_set ߏମ〭〣ࢀর⿴• ಉ」 css_set ߏମぇࢀর「〛⿶ task_struct ߏମぇ〙〟〃゙アぜଘࡏ『ʢcg_listʣ24/37
cgroup 〝 css_set 〣゙アぜ• css_set 〤ɺෳଘࡏ『 cgroup び゙が〜〒ぁ〓ぁ〣び゙が〣 cgroup 〧〝〙』〙〝ؔ࿈〚⿶〛⿶ɻ〙〳〿ෳ〣 cgroup 〝ؔ࿈〚⿶〛⿶• cgroup 〠〤ෳ〣のとぜॴଐ『ɻのとぜ〤〒ぁ〓ぁ css_set 〝ؔ࿈〚⿶〛⿶〣〜ɺcgroup 〠ؔ࿈『 css_set 〤ෳଘࡏ『〙〳〿ෳ〣 css_set 〝ෳ〣 cgroup ゙アぜ「⿴〘〛⿶〽⿸〟ߏ〜ɺ୯Ұ〣゙アぜ〜〤ؔੑ〤ද【〟⿶• css_set ߏମ〝 cgroup ߏମ〣ཱ〖ぇ『〣 cgrp_cset_link ߏମ25/37
cgrp_cset_link ߏମTable 4: cgrp_cset_link ߏମܕ ม໊ આ໌cgroup cgrp ࣗ〝〧〷〚⿶〛⿶ cgroup ߏମcss_set cset ࣗ〝〧〷〚⿶〛⿶ css_set ߏମlist_head cset_link cgroup->cset_links ぇ〙〟〆゙アぜlist_head cgrp_link css_set->cgrp_links ぇ〙〟〆゙アぜ26/37
cgrp_cset_link ߏମ27/37
cgrp_cset_link ߏମcgrp_cset_link ߏମ〤ɺ• のとぜ〝 cgroup ぇޮత〠゙アぜ• ⿴のとぜ〠ର『 cgroup ぇ『〮〛ݟ〙々ɺ〷「。〤⿴ cgroup 〠ର『『〮〛〣のとぜぇݟ〙々〣〠ඇৗ〠ྑ⿶ߏ「「• ⿴のとぜ〠ର『ぢアぷ゜ががؔ『 cgroup ぇݟ〙々ʜ〠〤⿶〛⿶〟⿶〈〣〔〶〠• css_set ߏମ〤 cgroup_subsys_state ߏମ〣ྻぇ࣋〙struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];28/37
のとぜ〣Ҡಈ
Ҡಈॲཧ〒〣〷〣〣આ໌〜〤〟。ɺҠಈ༻〠४උ《ぁ〔ぶがのߏ〠〙⿶〛આ໌「〳『ɻ29/37
のとぜ〣 cgroup ؒҠಈ• 〈〣〽⿸〠ෳࡶ〠ߏମಉ゙࢜アぜ「〛⿶〣〜ɺcgroup ぇのとぜҠಈ『〝 〤େมʂ• ෳ〣のとぜಉ࣌〠Ҡಈ『Մೳੑ⿴ˡॏཁ⿶。〙〣のとぜҠಈぇྃ「〔⿴〝〜ɺ⿴のとぜ〣Ҡಈࣦഊ『〽⿸〟〈〝⿴〘〔〾!?30/37
のとぜ〣 cgroup ؒҠಈのとぜ〣Ҡಈॲཧ〤େ 。 4 ஈ֊〠ぁ〛⿶:1. Ҡಈݩ४උॲཧ2. Ҡಈઌ४උॲཧ3. Ҡಈॲཧ4. Ҡಈྃॲཧ४උॲཧ〜࣮ࡍ〠ࣦഊ『Մೳੑ〣⿴ॲཧぇߦ⿸ɻҠಈ४උ〠ޭ「〔߹〠ɺ࣮ࡍ〣Ҡಈॲཧぇߦ⿸ɻ31/37
のとぜҠಈॲཧ༻ߏମෳࡶ〠゙アぜ「〔ߏମ〣ใ〹゙アぜぇมߋ『〔〶〠ɺ• cgroup 〠〤Ҡಈઐ༻ͷߏମ४උ《ぁ〛⿶• css_set ߏମ〠〤Ҡಈ࣌〠༻『ઐ༻〣ゐアみม४උ《ぁ〛⿶〳〔ɺҠಈ४උॲཧぇߦ⿸〔〶• Ҡಈ४උॲཧ〜⿸ม• Ҡಈॲཧ〜⿸ม〒ぁ〓ぁ४උ《ぁ〛⿶〔〿『ɻ32/37
cgroup_mgctx ߏମTable 5: cgroup_mgctx ߏମܕ ม໊ આ໌list_head preloaded_src_csets Ҡಈ४උ〜औಘ「〔Ҡಈର〝〟Ҡಈݩ css_set ߏମぇ〙〟〃゙とぷlist_head preloaded_dst_csets Ҡಈ४උ〜औಘ「〔Ҡಈର〝〟Ҡಈઌ css_set ߏମぇ〙〟〃゙とぷcgroup_taskset tset Ҡಈத〣 css_set 〝のとぜぇ『〔〶〣 cgroup_taskset ߏମu16 ss_mask Ҡಈ〜Өڹ『ぢアぷ゜ががぇࣔ『ろとぜ4.11 〜Ճ《ぁ〔ߏମɻ〒ぁ〳〜〤 src,dst ߹い【〔 preloaded_csets 〝⿶⿸゙とぷ〝cgroup_taskset ߏମ⿴〘〔ɻ4.11 〜〒ぁぇ〳〝〶〔ײ」ɻ33/37
cgroup_taskset ߏମTable 6: cgroup_taskset ߏମʢൈਮʣܕ ม໊ આ໌list_head src_csets Ҡಈର〣Ҡಈݩ css_set ぇ〙〟〃゙とぷlist_head dst_csets Ҡಈର〣Ҡಈઌ css_set ぇ〙〟〃゙とぷint nr_tasks ݱࡏ cgroup_taskset 〠ొ《ぁ〛⿶のとぜint ssid ॲཧத〣ぢアぷ゜がが• Ҡಈ४උஈ֊〜〙〟⿶〕゙とぷ〝〤ผ〠࣮ࡍ〣Ҡಈॲཧ〜〷゙とぷぇ࡞『34/37
css_set ߏମTable 7: css_set ߏମʢൈਮʣܕ ม໊ આ໌cgroup_subsys_state[] subsys cgroup_subsys_state ߏମ〣ྻrefcount_t refcount ࣗʢcss_set ߏମʣ〭〣ࢀরcgroup dfl_cgrp 〈〣ߏମ〠〧〷〚。 cgroupʢv2ʣߏମlist_head tasks task_struct ߏମ〣 cg_list ぇ〙〟〆゙とぷlist_head mg_tasks cgroup 〣Ҡಈぇߦ⿸のとぜぇొ『࿈゙݁とぷlist_head cgrp_links ࣗぇࢀর『 cgroup ぇࢦ『 cgrp_cset_links ߏମ〣゙とぷlist_head mg_preload_node cgroup 〣Ҡಈ࣌〠 css_set ߏମぇొ『〔〶〣࿈゙݁とぷ〠〙〟〃list_head ߏମlist_head mg_node cgroup 〣Ҡಈ࣌〠 css_set ߏମぇొ『〔〶〣࿈゙݁とぷ〠〙〟〃list_head ߏମcgroup* mg_src_cgrp のとぜҠಈ࣌〣Ҡಈݩ cgroup 〣 cgroup ߏମcgroup* mg_dst_cgrp のとぜҠಈ࣌〣Ҡಈઌ cgroup 〣 cgroup ߏମcss_set* mg_dst_cset のとぜҠಈ࣌〣Ҡಈઌ cgroup 〣 css_set ߏମ• mg_〜〤」〳ゐアみม⿶。〙⿴ˠ mg=migration• Ҡಈॲཧ〣్த〜 mg_ 〜〤」〳ม〠ؔ『 css_set 〟〞ぇొ「〟〾ॲཧਐ〵35/37
〳〝〶
〳〝〶cgroup 〣෦ߏ〣ೖ〿ޱ〠গ「〕々౿〴ࠐえ〕ぇ「〳「〔ʢ〙〷〿ʣɻv1 〠〙⿶〛「〳「〔ɺߏମ〤 v1/v2 ڞ௨〟〣〜ߏମಉ࢜〣ؔ〟え〤ڞ௨〜⿺ぇ「〔〙〷〿〜『ɻ• cgroup 〣ෳ֊ߏ〠߹〘〔ߏぇऔ〘〛⿶• css_set ߏମ• のとぜʢtasksetʣˡˠ css_set ߏମˡˠ cgrp_cset_links ߏମˡˠ cgroup ߏମ• ゙アぜぇ〔〞〝ぢとぷߴ⿶ใ〠〙⿶〛〤てゖがぷじひぷ४උ《ぁ〛⿶〔〿『• ࠓճ〣ぇ 〘々〠 cgroup 〣෦Ԟਂ。〭ೖ〘〛⿶。ํ૿⿺〔〾⿸ぁ「⿶〜『 w36/37
Ҏ্͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠37/37