/proc/meminfo в чем разница между MemFree и MemAvailable

Собственно, команда:

# cat /proc/meminfo 
MemTotal:        1882064 kB
MemFree:         1376380 kB
MemAvailable:    1535676 kB
Buffers:            2088 kB
Cached:           292324 kB
SwapCached:            0 kB
Active:           152944 kB
Inactive:         252628 kB
Active(anon):     111328 kB
Inactive(anon):    16508 kB
Active(file):      41616 kB
Inactive(file):   236120 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
Dirty:                40 kB
Writeback:             0 kB
AnonPages:        111180 kB
Mapped:            56396 kB
Shmem:             16676 kB
Slab:              54508 kB
SReclaimable:      25456 kB
SUnreclaim:        29052 kB
KernelStack:        2608 kB
PageTables:         5056 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     3038180 kB
Committed_AS:     577664 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       14664 kB
VmallocChunk:   34359717628 kB
HardwareCorrupted:     0 kB
AnonHugePages:     24576 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       69632 kB
DirectMap2M:     2027520 kB

В чем разница между MemFree и MemAvailable?
Учитывается ли SWAP в этих параметрах?


Ответы (1 шт):

Автор решения: Sergei Kirjanov

Free -- это которая вообще не используется

Available -- это сколько скорее всего можно освободить (от кэша и т. п.) если потребуется программе

Следовательно если вопрос стоит:

  • а запустится ли здесь Х "нормально" -- смотрим Available
  • а не убрать ли с сервера лишнюю память -- Free

Подробности от @avp:

Available ... amount of memory that is available for a new workload, without pushing the system into swap

Изменение в ядре /proc/meminfo: provide estimated available memory

→ Ссылка