top/htop 메모리 사용량을 해석하는 방법

top/htop 메모리 사용량을 해석하는 방법

집에는 kodi(xbmc)와 몇 가지 다른 네트워크 서비스를 실행하는 htpc/server-ish 우분투 상자가 있습니다.

kodi가 느린 것을 확인하여 무슨 일이 일어나고 있는지 확인하기 위해 상자에 SSH를 연결했습니다. 나는 이 htop 출력을 보았습니다:

여기에 이미지 설명을 입력하세요.

이것은 free -m의 출력입니다.

richard@RMD-HTPC:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          7642       7505        137        152        196       1296
-/+ buffers/cache:       6012       1630
Swap:         1905         10       1895

스크린샷에서 사용 가능한 메모리 사용량이 7600mb 중 6000인 이유는 7505입니다.

하지만 htop의 고유 프로세스 비율을 모두 더하면 약 22-25%밖에 나오지 않나요? 훨씬 더 높아야 하지 않나요?

답변1

htop버퍼와 캐시 메모리는 실제로 그렇게 볼 수 있기 때문에 여유 메모리로 간주되기 때문입니다 .

일부 캐시된 데이터를 메모리에 보관하는 데는 "비용"이 없으므로 커널은 나중에 필요할 경우를 대비해 데이터를 메모리에 보관합니다.

예를 들어, 약 500mb의 비디오를 시청하고 비디오를 닫은 후 커널은 비디오가 다시 필요할 경우를 대비하여 해당 부분을 정리하는 대신 메모리에 보관하기로 결정할 수 있습니다. 느린 하드 드라이브에서 로드되어 다시 읽습니다. 하지만 다른 용도로 메모리가 필요할 때마다 커널이 해당 메모리를 사용할 수 있기 때문에 500MB는 무료로 간주될 수 있습니다.

해당 프로그램이 현재 해당 메모리를 사용하고 있기 때문에 실행 중인 프로그램에서 해당 메모리를 사용하는 경우에는 해당되지 않습니다.

used메모리에서 buffers합계 값을 빼면 cached표시된 값을 얻게 됩니다 htop.

그러면 언급한 비율은 어떻게 요약하느냐에 따라 달라집니다.

관련 정보