LINUX.ORG.RU
ФорумAdmin

Как связаны колонки shared и cache в выводе free

 , ,


0

2

Смотрю состояние памяти на виртуалке:

[user@server ~]$ free -h -w
              total        used        free      shared     buffers       cache   available
Mem:          7,5Gi       385Mi       138Mi       4,1Gi       0,0Ki       7,0Gi       2,8Gi
Swap:         1,0Gi       140Mi       883Mi

На виртуалке запущен PostgreSQL, который использует 4Гб shared_buffers. Пытаюсь интерпретировать вывод free.

  • total — объем физической памяти;
  • used — память, выделенная через malloc (used = total - free - shared - buffers - cache);
  • free — свободная память;
  • shared — память под tmpfs и shmget/mmap; buffers — память, используемая для буферизации ввода/вывода;
  • cache — файловый кеш;
  • available — сколько памяти можно получить с учетом free и освобождения части cache.

Возникает вопрос: как связаны колонки shared и cache в выводе? Изначально я думал, что shared никак не пересекается с cache и used + free + shared + buffers + cache должны давать в сумме total. Но в представленном выше листинге видно, что это не так.