메모리를보고하는 표준 파일 / 도구는 Linux 배포판마다 형식이 다른 것 같습니다. 예를 들어, 아치와 우분투에서.
아치
$ free total used free shared buff/cache available Mem: 8169312 3870392 2648348 97884 1650572 4110336 Swap: 16777212 389588 16387624 $ head /proc/meminfo MemTotal: 8169312 kB MemFree: 2625668 kB MemAvailable: 4088520 kB Buffers: 239688 kB Cached: 1224520 kB SwapCached: 17452 kB Active: 4074548 kB Inactive: 1035716 kB Active(anon): 3247948 kB Inactive(anon): 497684 kB
우분투
$ free total used free shared buffers cached Mem: 80642828 69076080 11566748 3063796 150688 58358264 -/+ buffers/cache: 10567128 70075700 Swap: 20971516 5828472 15143044 $ head /proc/meminfo MemTotal: 80642828 kB MemFree: 11565936 kB Buffers: 150688 kB Cached: 58358264 kB SwapCached: 2173912 kB Active: 27305364 kB Inactive: 40004480 kB Active(anon): 7584320 kB Inactive(anon): 4280400 kB Active(file): 19721044 kB
그렇다면 어떻게 소프트웨어를 특정 시간에 사용할 수있는 스왑을 제외한 메모리 양을 안정적으로 확보하고 (리눅스 배포판에서만) 어떻게 신뢰할 수 있습니까? 아마도 그것은 아치 의 출력 free
과 출력에서 "사용 가능"과 "MemAvailable"로 표시 cat /proc/meminfo
되지만 우분투 또는 다른 배포판에서 어떻게 동일합니까?
awk -v low=$(grep low /proc/zoneinfo | awk '{k+=$2}END{print k}') '{a[$1]=$2}END{m=a["MemFree:"]+a["Active(file):"]+a["Inactive(file):"]+a["SReclaimable:"]; print a["MemAvailable:"],m-low}' /proc/meminfo
동일한 번호를 두 번 인쇄 해야하는 제안을 테스트하고 있습니다 . 그러나 두 번째 숫자 (내가 제안한 알고리즘에 대한 이해)는에MemAvailable
표시된 것보다 높습니다/proc/meminfo
. 내가 무엇을 잘못하고 있지?