linux에서 각 app별로 memory 사용량을 파악하는 것은 어렵습니다.
더욱이 현재 남아 있는 physical memory가 얼마인지 아는 것은 더욱 더 어렵죠.
이번에 3.8에서 memory control group에 대해서 좀 더 나은 시도를 하고 있다고 합니다.
이번 시도는 TCP buffer에 대해서 먼저 시도를 해봤고,
그게 괜찮으니까 memory system 전체로 확장하려고 하고 있습니다.
Per-cgroup TCP buffer limits
http://lwn.net/Articles/470656/
http://lwn.net/Articles/470656/
잘 되면 이런저런 응용이 될 수 있을 것같습니다.
당장 응용을 하려는 곳은 OpenVZ라고 하는 container 방식의 virtualization입니다.
이른바 OS level의 가상화인데, 쉽게 말하면 한 pc에서 여러개 web server를 운영하는데,
각 web server를 마치 별도의 pc에서 실행되는 것처럼 제공하는 방식입니다.
virtualbox나 vmware는 machine level에서 가상화를 제공하지만,
OpenVZ는 OS level에서 제공하기 때문에 overhead가 적다고 합니다.
문제는 각 virtual machine에게 필요한 memory를 배타적으로 제공하는데,
이것을 memory control group을 통해서 제공하는데,
아직은 memory cgroup으로 여유있게 제공해야 한다고 합니다.
아직은 memory cgroup으로 여유있게 제공해야 한다고 합니다.
3.8에서 시도하는 것이 어느 정도 잘 되면 좀 더 알뜰하게 memory를 제공할 수 있겠죠.