몇 년 동안 커널 및 사용자 공간 도구는 사용 가능한 실제 메모리에 대한 더 나은 프록시인 사용 가능한 메모리를 표시할 수 있었지만 다음은 나에게 이해가 되지 않습니다.
top - 23:47:56 up 13 days, 7:48, 1 user, load average: 0.06, 0.64, 0.62
Tasks: 450 total, 1 running, 245 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 65804776 total, 40605824 free, 17817976 used, 7380976 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 60642008 avail Mem
총 64GiB에서 실제 사용된 메모리를 뺀 16GiB는 절대 60GB의 사용 가능한 메모리로 끝나지 않습니다. 그렇죠?
/고쳐 쓰다
cat /proc/meminfo
MemTotal: 65804776 kB
MemFree: 40606636 kB
MemAvailable: 60643028 kB
Buffers: 5519324 kB
Cached: 1411404 kB
SwapCached: 0 kB
Active: 7135492 kB
Inactive: 16794208 kB
Active(anon): 3674000 kB
Inactive(anon): 1176 kB
Active(file): 3461492 kB
Inactive(file): 16793032 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 2097148 kB
SwapFree: 2097148 kB
Dirty: 288 kB
Writeback: 0 kB
AnonPages: 16999208 kB
Mapped: 316332 kB
Shmem: 1872 kB
Slab: 722784 kB
SReclaimable: 450364 kB
SUnreclaim: 272420 kB
KernelStack: 17616 kB
PageTables: 44752 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 34999536 kB
Committed_AS: 23735028 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 0 kB
VmallocChunk: 0 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
CmaTotal: 0 kB
CmaFree: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 600688 kB
DirectMap2M: 17063936 kB
DirectMap1G: 51380224 kB
답변1
~을 위한선적 서류 비치/proc
:
MemAvailable: 새 응용 프로그램을 시작하는 데 사용할 수 있는 메모리 양(스왑 없이)에 대한 추정치입니다. MemFree, SReclaimable, 파일의 LRU 목록 크기 및 각 지역의 최저 워터마크를 기준으로 계산됩니다. 이 추정치는 시스템이 제대로 작동하려면 일부 페이지 캐싱이 필요하다는 점과 프로젝트가 사용 중일 때 모든 회수 가능 슬래브가 회수 가능하지는 않다는 점을 고려합니다. 이러한 요소의 영향은 시스템마다 다릅니다.
이는 다음과 같습니다.추정.
질문에 제공된 특정 예에서 Inactive(file)
이 필드의 엄청난 값인 16,793,032KiB를 관찰하세요. 이는 최근에 사용되지 않은 페이지 캐시 메모리입니다.즉시 재활용 가능한 것으로 간주됨성능에는 큰 영향을 미치지 않습니다. 40,606,636KiB의 미사용 메모리와 결합하여 이미 새로운 요청을 처리하기 위해 즉시 할당할 수 있는 57,399,668KiB의 메모리를 제공합니다. 시스템은 다른 조각화(주로 Active(file)
필요한 경우 다시 읽을 수 있도록 디스크의 파일이 지원하는 페이지 캐시 메모리)를 버릴 수도 있다고 생각합니다 .추정이는 60,643,028KiB의 메모리 요청을 충족합니다.