cgroup에 보고된 메모리 사용량이 free 명령과 다릅니다.

cgroup에 보고된 메모리 사용량이 free 명령과 다릅니다.

free 명령이 cgroup과 훨씬 다른 mem 사용량을 보고하는 이유는 무엇입니까?

$ free -b 
              total        used        free      shared  buff/cache   available
Mem:     2096914432   520863744  1112170496    35389440   463880192  1356828672
Swap:    2145382400           0  2145382400

$ cat /sys/fs/cgroup/memory/memory.usage_in_bytes 
857239552

cgroups 문서에 따르면 memory.usage_in_bytes는 "퍼즈 값"입니다. 나는 그것이 실제 가치에 가까운 추정치를 보고한다는 것을 의미한다고 추측합니다. 추정이라고 해도 이렇게까지 벗어나서는 안 될 것 같아요.

저는 VirutalBox VM에서 Linux Mint 18.2를 실행하고 있습니다.

답변1

memory.usage_in_bytesRSS+CACHE를 보고 하므로 출력 memory.max_usage_in_bytes측면에서 다음과 같습니다 free.

memory.usage_in_bytes ~= free.used + free.(buff/cache) - (buff)

에 관심이 있으실 수도 있지만 여전히 출력 에서 ​​값을 /sys/fs/cgroup/memory/memory.stat찾거나 계산할 수는 없습니다 .free.used/sys/fs/cgroup/memory/memory.stat

관련 정보