Разбираемся, как Linux использует оперативную память
Ошибочное мнение
Многим кажется что Linux жёстко “течёт” по памяти во время своей работы. Но это не так, дело в неправильной визуализации.
Как видно, used память не изменяется, а cached получили максимальный прирост. И остаётся достаточно мало Free памяти. Но если она начнёт расходоваться реальными приложениями – Linux начнёт освобождать Cached-память.
Зачем вообще нужна Cached-память? Чтобы не обращаться лишний раз к медленному дисковому I/O, например.
Реально разбираться в проблеме стоит если растёт именно used-память.
Как читать вывод Free
Для того чтобы понимать что происходит необходимо уметь читать вывод команды free:
disetern@host:/# free
total used free shared buff/cache available
Mem: 131998392 4946584 1629068 607664 125422740 121985672
Swap: 134179836 0 134179836
- Mem-total – общий объём имеющейся оперативной памяти без учёта swap
- Mem cached – как правило кэшированное дисковое I/O. Очищать кэш – затратное дело (одно только принятие решения о каждой области памяти чего стоит) и просто так этим заниматься, когда свободной памяти достаточно – странное решение.
- Mem used – память использованная приложениями, буферами, кэшами
- Mem free – вообще никак не используемая в текущий момент память
- Swap-total – общий объём swap
Когда нужно беспокоиться, а когда нет
- buffers/cache /Mem-total < 4/5 – можно спать спокойно
- Swap used / Swap total > 1/2 – вообще, ситуация так себе, система должна начать сильно тормозить
- Swap used > 2Gb (при объёмах памяти до 16Gb) и эта цифра РАСТЁТ НА ГЛАЗАХ – тоже ситуация не очень.
Чистить swap дело тоже довольно затратное, так что если не растёт, -/+ buffers cache free довольно велика – то и фиг с ним.





Comments
So empty here ... leave a comment!