여러 프로세스가 동일한 공유 라이브러리(예: Gtk)를 사용하고 있다고 가정합니다. 아마도 mmap
라이브러리 파일과 물리적 RAM이 공유됩니까?
그러나 시스템 모니터에서 볼 수 있듯이 각 프로세스의 메모리 크기에 라이브러리 크기가 추가되어 숫자가 부풀려집니다. 이것이 정확합니까?
답변1
실제 메모리 계산은 공유 메모리와 개인 메모리를 분리하지만 일부 도구는 프로세스 메모리 사용량을 표시할 때 이를 집계합니다. 또한 cgroup은 프로세스에서 사용하는 메모리에 대해 요금을 부과하므로 cgroup에 최대 메모리 제한이 있는 경우 이는 중요합니다.
이는 프로세스의 메모리 사용량을 늘리는 것이 아니라 실제로 해당 메모리를 사용하는 것입니다. 그러나 프로세스 그룹의 총 메모리 사용량을 보고 합산된 총 메모리 사용량만 보면 실제 사용량보다 결과가 부풀려집니다. cgroup 내에서 올바르게 계산되어야 하지만 각 프로세스가 사용하는 라이브러리를 자세히 조사하지 않고는 공유 라이브러리가 재사용되는 횟수를 쉽게 알 수 있는 방법이 없습니다.
따라서 프로세스 그룹의 실제 메모리 사용량을 알고 싶고 해당 프로세스를 모두 동일한 메모리 cgroup에 추가하는 것이 합리적이라고 생각한다면 이것이 올바른 대답을 제공할 것입니다.