Na página de manual de free(1)
:
cache Memory used by the page cache and slabs (Cached and Slab in /proc/meminfo)
free
inclui alocação de blocos no cache; UCD-SNMP-MIB não. Se você adicionar a alocação da laje, você terá:
UCD-SNMP-MIB::memCached.0 + slab = 44238560 + 23961488
= 68200048 KB
que é muito mais próximo do que free
relatou (67885056 KB).
Quanto a obter memória física real e gratuita, o melhor que você pode fazer com este MIB é obter uma estimativa aproximada:
totFree = memAvailReal.0 + memBuffer.0 + memCached.0
= 4429580 + 534804 + 44238560
= 49202944 KB
que ainda é significativamente menor que o valor de free + buffers / cache relatado por free
.
Observe que o HOST-RESOURCES-MIB não é melhor; veja minha resposta para uma pergunta semelhante no Stack Overflow.
Os novos kernels realmente fornecem uma métrica melhor para isso. Novamente na% man_de% manpage:
available
Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the cache or free fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as free)
Esse valor será menor que o total de free + buffers / cache e seria um medidor melhor de memória disponível, mas não o vejo no seu free(1)
e não encontrei um MIB que o use .