Ответ 1
Для основной памяти фактический размер памяти можно вычислить как used+free+buffers+cache
ИЛИ used+free+buffers/cache
, потому что buffers/cache = buffer+cache
.
Страница руководства free
выделяет used
как Used memory (calculated as total - free - buffers - cache)
Как говорится на странице man free: -
всего Общая установленная память (MemTotal и SwapTotal in/proc/meminfo)
используется Используемая память (рассчитанная как общий - буфер - кеш)
бесплатно Неиспользуемая память (MemFree и SwapFree in/proc/meminfo)
общий Используемая память (в основном) tmpfs (Shmem in/proc/meminfo, на ядрах 2.6.32, отображается как ноль, если недоступно)
буферы Память, используемая буферами ядра (Буферы в /proc/meminfo )
кеш Память, используемая кешем страницы и слябами (Cached и Slab in /Proc/MemInfo )
buff/cache Сумма буферов и кешей
. Оценка того, сколько памяти доступно для запуска новых приложений без обмена. В отличие от данных, предоставленных кешем или свободными полями, в этом поле учитывается кеш страниц, а также то, что не все исправляемые плит памяти будут исправлены из-за использования элементов (MemAvailable in/proc/meminfo, доступных на ядрах 3.14, эмулированных на ядра 2.6.27+, в противном случае такие же, как и свободные)
В вашем случае
873224 (используется) + 389320 (бесплатно) + 25493068 (buff/cache) = 26755612 (всего)