htop의 총 메모리는 /proc/meminfo를 기반으로 계산된다는 것을 알고 있습니다. 코드에서도 교차 확인하고 확인할 수 있다고 생각했습니다. 그러나 htop의 메모리 스틱과 비교됩니다. /proc/meminfo에 표시된 메모리 값에서 상당한 차이를 발견했습니다.
내 /proc/meminfo에 메모리 소비가 표시됩니다.
MemTotal: 4144807288 kB
MemFree: 3513532764 kB
MemAvailable: 3936769368 kB
Buffers: 1119392 kB
따라서 메모리 스틱으로 표시되는 총 사용 메모리는 MemTotal-MemFree(GB 단위)여야 한다고 생각하며, 제가 아는 한 이는 (4144807288-3513532764)/1024^2=602Gb여야 합니다. 그러나 나에게 이 값은 거의 180Gb로 표시됩니다. /proc/meminfo와 htop의 값이 어떻게 달라지는지 설명할 수 있는 사람이 있나요?
답변1
이 값들이 다른 이유는 다음과 같을 것으로 추측됩니다.
htop "180G" 값에는 /proc/meminfo가 할당된 것으로 보고하는 운영 체제에서 사용하는 시스템 버퍼 및 기타 메모리가 포함되지 않습니다.
파기https://github.com/htop-dev/htop/blob/541c17c975bc8a4f1f243e568006b0e26ae52c47/linux/LinuxMachine.c#L130htop 값이 계산되는 방법을 이해하는 데 도움이 될 수 있습니다.