여유 메모리 보고서

여유 메모리 보고서

나는 지속적으로 파일을 RAM(/tmp/ 아래)에 저장하고 처리한 다음 삭제하는 시스템을 가지고 있습니다.

RAM에 보관해야 하는 파일도 있고 그렇지 않은 파일도 있습니다.

내 문제는 파일을 저장하는 데 사용할 수 있는 RAM의 양을 보고하고 싶다는 것입니다.

"무료"를 사용하면 다음과 같은 보고서를 받을 수 있습니다.

free: 10000 (KB)

그러나 달리면 cat /proc/meminfo다른/더 의미 있는 이야기를 듣게 됩니다.

memfree:     10000 (KB)
Cached:     100000 (KB)
SwapCached:      0 (KB)
Active:      59000 (KB)
Inactive:    41000 (KB)

좋습니다. 명확성을 위해 이러한 값을 대략적으로 계산/반올림했습니다.

이 기사에서:리눅스 비활성 메모리, "비활성" 메모리를 사용할 수 있음을 알 수 있으므로 – 제가 아는 한 – 그것은 무료입니다.

따라서 10000KB + 41000KB의 여유 메모리("무료"는 아니지만 사용 가능한) 메모리를 보고할 수 있어야 합니다.

총 "사용 가능한" 메모리를 보고하는 데 사용할 수 있는 명령(또는 다른 방법)이 있습니까?

내가 이해한 바로는 사용 가능한 총 공간은 "무료" + "비활성"이라고 생각합니다.

감사해요

답변1

3.14부터 Linux 커널은 사용 가능한 실제 메모리 양을 추적합니다.회수 가능한 메모리를 포함하여 할당을 위해 스왑을 실행할 필요가 없습니다 . 여기 MemAvailable에는 /proc/meminfo이미 비활성으로 추적되는 회수 가능한 메모리가 포함되어 있으므로 추가할 필요도 없습니다.

이전 코어에서는 답변에 제공된 공식을 사용할 수 있습니다배포판에서 이식 가능한 사용 가능한 메모리 양을 얻는 방법은 무엇입니까?:

awk -v low=$(grep low /proc/zoneinfo | awk '{k+=$2}END{print k}') \
 '{a[$1]=$2}
  END{ 
   print a["MemFree:"]+a["Active(file):"]+a["Inactive(file):"]+a["SReclaimable:"]-(12*low); 
  }' /proc/meminfo 

관련 정보