clone()์ ํตํ ์ ๊ท ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๋ฉด์ ์๋ก์ด namespace์์ฑํ๋ ๋ฐฉ์. clone()์ ์ฌ์ค์ fork()์ ๊ตฌํ์ด๋ค.
| namespace | system parameter | ๊ฒฉ๋ฆฌ๋ด์ฉ |
|---|---|---|
| UTS | CLONE_NEWUTS | host๋ค์, ๋๋ฉ์ธ๋ค์ |
| IPC | CLONE_NEWIPC | ์๊ทธ๋, ๋ฉ์ธ์งํ์ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ |
| PID | CLONE_NEWPID | ํ๋ก์ธ์ค ID |
| Network | CLONE_NEWNET | ๋คํธ์ํฌ์ฅ๋น, ๋คํธ์ํฌ ์คํ, ํฌํธ ๋ฑ |
| Mount | CLONE_NEWNS | ํ์ผ์์คํ |
| User | CLONE_NEWUSER | ์ฌ์ฉ์ ๋ฐ ์ฌ์ฉ์ ๊ทธ๋ฃน |
์ฌ์ฉ์๊ฒฉ๋ฆฌ๋ ๋ฆฌ๋ ์ค์ปค๋ 3.8 ์ด์์ด๊ณ ์ปค๋์ปดํ์ผ ์ USER_NS ๊ธฐ๋ฅ์ ์ฌ์ฉํด์ผ ํ๋ค. ํ์ธ์ด ์ด๋ ค์ฐ๋ฉด Ubuntu10.04๋ฒ์ ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
cgroups ๋ controller groups.
- ์์์ ์ ํ. cgroups์ task๊ฐ ์ฌ์ฉํ ์์์ ์ด๋์ ๋ํด ์ ํํ๋ค. task๊ฐ ์ด ์ ํ์ ์ด๊ณผํ๋ฉด OOM(Out of Memory)๊ฐ ๋ฐ์๋๋ค.
- ์ฐ์ ์์ ๋ถ๋ฐฐ. CPU ์๊ฐ ํ ๋น, ๋์คํฌ IO throughput๋ฅผ ํ ๋นํ๋ฉด์ ์ฌ์ค์ task์ ์ฐ์ ์์๋ฅผ ์ ํํ๊ฒ์ด๋ค.
- ์์ ํต๊ณ. cgroups๋ ์์คํ ์์์ ์ฌ์ฉ๋์ ๋ํ ํต๊ณ๋ฅผ ๋ผ ์ ์๋ค. ์๋ฅผ ๋ค์ด cpu์ ์ฌ์ฉ์๊ฐ, ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ๋ ๋ฑ์ด๋ค. ์ด๋ ๊ณผ๊ธ์ ๋ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ ์ ์๋ค.
- task ์ปจํธ๋กค. cgroups๋ task์ ๋ํด ๋๊ธฐ, ์ฌ์คํ ๋ฑ ์์ ์ ์คํํ ์ ์๋ค.
- task๋ ํ๋ก์ธ์ค์ผ์๋ ์๊ณ ์ค๋ ๋ ์ผ ์๋ ์๋ค.
- cgroup์ ์์์ ๋ํ ์ปจํธ๋กค์ ๋จ์๋ค. ํ๋ ํน์ ์ฌ๋ฌ๊ฐ์ subsystem์ผ๋ก ๊ทธ์ฑ๋๋ค.
- subsystem์ ํ๋์ ์์์ ๋ํ ์ปจํธ๋กค๋ฌ์ด๋ค. ์๋ฅผ ๋ค์ด CPU subsystem์ CPU ์๋ถํ ์ ๋ํ ์ปจํธ๋กค์ ํ ์ ์๊ณ ๋ฉ๋ชจ๋ฆฌ subsystem์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ํ ์ปจํธ๋กค์ ํ ์ ์๋ค.
- hierachy. ํ๋์ ๊ณ์ธต์ ํ๋์ ํธ๋ฆฌ๋ชจ์์ cgroup์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ๋งค ๊ณ์ธต์ ๋์๋๋ subsystem์ ๋ํ ์์์ ์ปจํธ๋กคํ ์ ์๋ค. ๊ณ์ธต์์ cgroup ๋ ธ๋๋ ๋ถ๋ชจ์ ๋ ธ๋์ subsystem์ ์์๋ฐ๋๋ค. ํ๋์ ์์คํ ์ ์ฌ๋ฌ hierachy๋ฅผ ๊ฐ์ง ์ ์๋ค.
๊ทธ๋ฆผ์์ Cgroup Hierarchiy A๋ CPU subsystem๊ณผ CPUACCT(cgroups์ CPU์ฌ์ฉ๋์ ์ง๊ณํ ์ ์๋ ์๋ธ์์คํ )subsystem์ ์ถ๊ฐ ํ๊ณ cgroup cgrp1๋ฅผ ์ฌ์ฉํ๋ task๋ CPU์ ์๋ถํ ์์์ 60% ์ ์ ํ ์ ์๊ณ cgroup cgrp2๋ฅผ ์ฌ์ฉํ๋ task๋ ์๋ถํ ์์์ 20% ์ ์ ํ ์ ์๋ค.
- ๊ฐ์ hierachy๋ ํ๋ ํน์ ์ฌ๋ฌ๊ฐ์ subsystem์ ์ถ๊ฐ ํ ์ ์๋ค.
- subsystem์ ์ฌ๋ฌ๊ฐ์ hierachy์ ์ถ๊ฐ ๋ ์ ์์ง๋ง ์ด๋ ์ถ๊ฐํ๋ hierachy๋ subsystem์ด ํ๋๋ง ์์ด์ผ ์๋ค.
- ์์คํ ์ด ํ๋์ hierachy๋ฅผ ์๋ก ์์ฑํ๋ฉด ์ด hierachy๋ ์์คํ ์ ๋ชจ๋ task์ ์ถ๊ฐ๋๋ฉฐ ์ด cgroup์ root cgroup์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค. task๋ ๋์ผํ hierarchiy์์ ํ๋์ cgroup์๋ง ์กด์ฌํ ์ ์๊ณ ์๋ก ๋ค๋ฅธ hierarchiy์ cgroup์๋ ๋์์ ์กด์ฌ ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ๋ cgroup์์ 10MB์ฉ๋๊ณผ 10GB์ฉ๋์ ๊ฐ๋๋ค๋๊ฒ์ ์ํธ ๋ชจ์๋๋ค. ์ฆ ํ๋๋ง ๊ฐ์ง ์ ์๋ค. ๋ฉ๋ชจ๋ฆฌ๋ 10GB ์ฌ์ฉ๋์ ํ๋ณดํ๊ณ CPU๋ 20%์ ์๋ถํ ์์์ ์ ์ ํ ์ ์๋ค.
- fork๋ ์์ํ๋ก์ธ์ค๋ ๋ถ๋ชจํ๋ก์ธ์ค์ ๋์ผํ cgroup์ ์ํ ์ ์์ง๋ง ์ํธ ๋ ๋ฆฝ๋ ํ๋ก์ธ์ค์ด๋ฏ๋ก ์์ผ๋ก ์์ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ cgroup์ผ๋ก ๋ณํ ์ ์๋ค.
