사용 가능한 메모리는 총 메모리에서 사용된 메모리를 뺀 값보다 큰 값을 표시합니다.

사용 가능한 메모리는 총 메모리에서 사용된 메모리를 뺀 값보다 큰 값을 표시합니다.

몇 년 동안 커널 및 사용자 공간 도구는 사용 가능한 실제 메모리에 대한 더 나은 프록시인 사용 가능한 메모리를 표시할 수 있었지만 다음은 나에게 이해가 되지 않습니다.

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의 메모리 요청을 충족합니다.

관련 정보