CentOS занимает всю свободную оперативную память

30 Jun 2014 | Автор: dd |

Поднял себе хостинг на имевшемся дедике, который под VNC и несколькими виртуалками VirtualBox фактически простаивал, т.к. кушал де то полгига от имеющихся 6.

И вот как только запустил весь фарш LAMP, то обнаружил что CentOS куда то профуфыкал всю имеющуюся свободную оперативную память:

CentOS занимает всю свободную оперативную память

На VPS я на этот момент как то внимания не обращал, т.к. памяти обычно было не более 2Gb, но тут куда по подевалось все 6 гиг. С перепуга можно решить, что память куда то протекает, как например в апач, но это не так.

В процессах не было ни одного процесса кто бы отжирал хотя бы 1% от оперативной памяти, хотя размер кэшированной виртуальной памяти разросся значительно. Чтобы понять более подробно, что случилось с памятью, используем free -m

виртуальная память под файловый кэш в CentOS

Как видим, большая часть оперативной памяти использована под файловый кэш 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

VN:F [1.9.21_1169]
Rating: 4.0/10 (25 votes cast)
VN:F [1.9.21_1169]
Rating: +3 (from 3 votes)
CentOS занимает всю свободную оперативную память, 4.0 out of 10 based on 25 ratings

Теги: ,

Ваш отзыв