cgroup과 네임스페이스가 어떻게 작동하는지 이해하려고 노력 중입니다. 샘플 cgroup에서 샘플 프로그램을 실행하고 메모리 리소스가 어떻게 제어되는지 확인할 수 있었습니다.
메모리 제한이 8MB(memory.limit_in_bytes + memory.memsw.limit_in_bytes)인 샘플 Cgroup이 있습니다. 또한 1MB 청크로 메모리를 할당하는 간단한 C 프로그램이 있습니다. 샘플 Cgroup에서 프로그램을 실행할 때마다 3MB를 할당한 후 종료됩니다. 메모리 + 스왑 제한을 8MB로 설정했을 때 왜 이런 일이 발생하는지 이해하려고 합니다.
이 Cgroup에 대한 자세한 메모리 .stat를 살펴보면 특정 바이트 수를 보고하는 "total_inactive_anon" 필드가 있습니다. 프로그램에서 할당한 3MB에 이것을 추가하면 총 7MB가 조금 넘습니다. 이것이 프로그램이 3MB 이상의 메모리를 얻지 못하는 이유인지 궁금합니다. 그런데 "total_inactive_anon"이 무슨 뜻인지, 프로그램에서 할당한 메모리와 별개인지는 잘 모르겠습니다.
혹시 안내해 주시면 감사하겠습니다.