CentOS занимает всю свободную оперативную память
30 Jun 2014 | Автор: dd |Поднял себе хостинг на имевшемся дедике, который под VNC и несколькими виртуалками VirtualBox фактически простаивал, т.к. кушал де то полгига от имеющихся 6.
И вот как только запустил весь фарш LAMP, то обнаружил что CentOS куда то профуфыкал всю имеющуюся свободную оперативную память:
На VPS я на этот момент как то внимания не обращал, т.к. памяти обычно было не более 2Gb, но тут куда по подевалось все 6 гиг. С перепуга можно решить, что память куда то протекает, как например в апач, но это не так.
В процессах не было ни одного процесса кто бы отжирал хотя бы 1% от оперативной памяти, хотя размер кэшированной виртуальной памяти разросся значительно. Чтобы понять более подробно, что случилось с памятью, используем free -m
Как видим, большая часть оперативной памяти использована под файловый кэш CentOS, что является нормальной процедурой для системы Linux. Данное выделение ресурсов системы под файловый кэш позволяет значительно ускорить работу системы и приложений, при этом, в случае нехватки памяти для запущенных процессов, необходимое количество памяти будет высвобождено из под кэша и передано в процессы. Причем без использования swap памяти.
В принципе если это дело напрягает, то дисковый кэш можно полностью обнулить командой:
# echo 3 > /proc/sys/vm/drop_caches
если же просто обнулить подкачку, то можно использовать команду
# echo 1 > /proc/sys/vm/drop_caches
тогда картинка поменяется, но со временем кэш все равно отберет “свое” в виде неиспользуемой памяти, обратно.
В принципе это даже можно делать по крону, если добавить в него строку
0 * * * * sync; echo 3 > /proc/sys/vm/drop_caches
но имхо, загоняться на эту тему не стоит, ибо эта память все равно свободная, хотя в терминологии Linux и используется термин used, тем не менее память занята под системный процесс, но доступна для использования приложениями.
Число доступной для приложений памяти в этом случае можно увидеть в листинге
# free – m
Тем более это выделение оперативной памяти нельзя отключить, хотя некоторые опции использования памяти и можно настроить с помощью sysctl
CentOS занимает всю свободную оперативную память,Теги: centos, настройка системы