База знаний VPS/VDS/Сервера Почему на моем сервере кончается RAM (память)?

Почему на моем сервере кончается RAM (память)?

Прежде всего, стоит рассмотреть два отдельных случая. 

Оперативной памяти на сервере может быть мало, потому что:

1) Софт на сервере использует её максимально. В таком случае Вам может помочь оптимизация софта, который Вы используете, изменение настроек ПО. Часто бывает, что MySQL-сервер может забрать всю оперативную память, если на сервере размещены "толстые" базы данных.

2) Вся оперативная память ушла в кэш сервера. Для проверки использования оперативной памяти, введите в консоли сервера команду

free -m

После выполнения Вы получите примерно такой вывод:

         total used free shared buff/cache available
Mem: 64215 36763 10615 9730 16836 16925

total - всего памяти на сервере
used - используемая память
free - свободная память
shared - выделено в tmpfs
buff/cache - памяти в кэше
available - доступно памяти всего

В некоторых случаях может быть так, что значение free минимально настолько, что кажется, будто память на сервере почти закончилась. Однако это не совсем так. 

Большая часть памяти в кэше сервера (графа buff/cache) при необходимости будет моментально выделена нужным процессам. Даже если значение free минимально, нужная память будет взята из кэша.

Если Вы хотите, чтобы кэш освобождался, просто время от времени выполняйте команду

echo 3 > /proc/sys/vm/drop_caches

Если желаете, чтобы это происходило постоянно, добавьте в файл /etc/crontab строку (будет работать при наличии cron на сервере):

@daily root  echo 3 > /proc/sys/vm/drop_caches

и перезапустите службу cron.