Tonal, а можете поподробней о файловаом кеше... и какое ПО вы все же запускаете.
А я вижу из той инфы, что вы предоставили, почти 5 ГБ - кешированые данные. И соответсвенно число free показывает сколько вообще памяти нераспределено, но при этом реально доступно 4,5ГиБ.
Попробую прояснить немножко, на пальцах, есть
- active memory - память занятая активными процессами,
- free - полностью свободная,
- shared - память, что используется для нескольких процессов,
- buffered - ну это ваши буферы обмена, кеш диска...,
- cached - кеш
- available - именно доступная.
Так вот
- cache используется для быстрого старта ПО которым вы пользуетесь часто (да, ядро умное и следит за вами), но в то же время сброс этой памяти в SWAP - сизифов труд (что читать с диска со SWAP, что читать файлы в память...) и если такая память надо - она просто освобождается (вытесняется) другим ПО.
- active/shared - занята активными процессами и не может быть вытеснена в SWAP из тех причин, что доступ к ней надо "здесь и сейчас"
- buffered - кеш диска сбрасывается по таймеру или при достижении определенного числа "грязных" страниц или % свободной ОЗУ
А потому, надо все же смотреть, что за ПО приводит к таким последствиям, что система не знает, какаю память переместить в своп. Ну и соответственно не передает данные ООМ киллеру за такой беспредел
Так же хочу уточнить, вы часом не "крутили" настройки самого дискового кеша?
И я тут копался в кое чем
> sysctl vm.swappiness
vm.swappiness = 10
> free -mh
total used free shared buff/cache available
Mem: 125G 3.0G 17G 8.7G 105G 112G
Swap: 8.0G 47M 8.0G
Так что 99% проблема в ПО (не в ОС) или битой ячейке памяти