MeM 예상보다 높게 사용 가능

MeM 예상보다 높게 사용 가능
$ free -h
              total        used        free      shared  buff/cache   available
Mem:          7.7Gi       4.5Gi       692Mi       305Mi       2.5Gi       2.6Gi
Swap:         2.0Gi        25Mi       2.0Gi

MemAvailable내 시스템이 왜 이렇게 높아졌나요?

내가 읽을 때커널 코드, 내 생각엔 MemAvailable비슷한 공식으로 대략적으로 계산할 수 있을 것 같아요 MemFree + (Buffers + Cached - Shmem)/2 + SReclaimable/2. 따라서 MemAvailable은 1.8G와 비슷할 것 같습니다.

나는 100M만 가지고 있기 때문에 0.8G 차이가 Reclaimable Slabs 부분 때문이라고 생각하지 않습니다.

$ grep SReclaimable /proc/meminfo
SReclaimable:     106492 kB

$ uname -r
4.20.3-200.fc29.x86_64

$ cat /proc/meminfo
MemTotal:        8042592 kB
MemFree:          708864 kB
MemAvailable:    2740432 kB
Buffers:          225472 kB
Cached:          2289436 kB
SwapCached:         1768 kB
Active:          4367844 kB
Inactive:        2538636 kB
Active(anon):    3443868 kB
Inactive(anon):  1265012 kB
Active(file):     923976 kB
Inactive(file):  1273624 kB
Unevictable:       11528 kB
Mlocked:           11528 kB
SwapTotal:       2097148 kB
SwapFree:        2071412 kB
Dirty:                80 kB
Writeback:            44 kB
AnonPages:       4402684 kB
Mapped:           554452 kB
Shmem:            313044 kB
KReclaimable:     106492 kB
Slab:             249164 kB
SReclaimable:     106492 kB
SUnreclaim:       142672 kB
KernelStack:       17888 kB
PageTables:        37020 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6118444 kB
Committed_AS:   12077056 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
Percpu:             2688 kB
HardwareCorrupted:     0 kB
AnonHugePages:   2160640 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
Hugetlb:               0 kB
DirectMap4k:      297524 kB
DirectMap2M:     7968768 kB
DirectMap1G:     1048576 kB

답변1

어떻게 MemAvailable계산 되나요?. 여기서 최저 워터마크를 빼야 하지만 사용 가능한 메모리 는 /proc/zoneinfo놀랄 일이 아니며 MemFree, 이는 3012956 KiB를 제공합니다.Active(file)Inactive(file)SReclaimable

관련 정보