Каждому виртуальному серверу назначается фиксированный объём оперативной памяти, в зависимости от выбранного тарифного плана: от 1ГБ до 32ГБ.
Когда запущенные процессы и приложения хотят получить больше памяти, операционная система обычно начинает случайным образом выбирать некоторые процессы и принудительно завершать их в аварийном режиме.
В результате некоторые службы на сервере перестают работать, сервер часто перегружается и «зависает» в целом, выдавая ошибку «out of memory» (OOM) — нехватка операционной памяти.
Если процесс завершается в целях экономии памяти, она регистрируется в системных журналах и хранится в /var/log/, где вы можете найти подобное сообщения о нехватке памяти:
Jav 11 17:12:34 ovzhost114 kernel: [63353551.892881] Out of memory in UB 33222955: OOM
killed process 110919 (mysqld) score 0 vm:404635kB, rss:06665kB, swap:0kB
В зависимости от дистрибутива Linux и конфигурации системы, вид этой записи может меняться.
Вам нужно узнать обо всех запущенных процессах и сколько оперативной памяти они потребляют.
free -h,
которая предоставляет текущую статистику памяти. К примеру, результаты, предоставленные системой в 1ГБ, будут выглядеть примерно так:
total | used | free | shared | buffers |
cached |
|
Mem |
993M | 738M | 255M | 5.7M | 64M |
439M |
-/+ buffers/cache: |
234M | 759M | ||||
Swap: |
0B | 0B | 0B |
Программа будет работать до тех пор, пока вы не выйдете их неё нажатием «q». Использование ресурсов отображается в процентах и предоставляет лаконичный обзор нагрузки на вашу систему.
Ограничьте работу ресурсоёмких плагинов и удалите лишние расширения и плагины сайта.
Mysqltuner – это высокопроизводительный сценарий для настройки MySQL, который предоставляет подробную информацию о состоянии и работоспособности сервера MySQL, и даёт конкретные рекомендации по улучшению и повышению производительности.
Debian/Ubuntu:
sudo apt-get -y install mysqltuner
CentOS:
sudo yum -y install mysqltuner
В результате анализа вы получите крайне полезную информацию. Обратите внимание на раздел Recommendations.
Вы сможете найти этот файл в директории:
Debian/Ubuntu:
/etc/mysql/my.cnf
CentOS:
/etc/my.cnf
Debian/Ubuntu:
sudo /etc/init.d/mysql restart
CentOS:
sudo systemctl restart mariadb
Неправильная настройка параметров Apache может стать огромной головной болью и привести к нехватке оперативной памяти VPS.
Вы можете выполнить следующие действия:
KeepAlive Off MaxKeepAliveRequests |
100 |
KeepAliveTimeout |
15 |
StartServers |
2 |
ServerLimit |
2 |
MinSpareThreads |
50 |
MaxSpareThreads |
100 |
ThreadLimit |
100 |
ThreadsPerChild |
50 |
MaxClients |
100 |
MaxRequestsPerChild |
10000 |
Nginx служит хорошим балансировщиком нагрузки в сочетании с Apache и потребляет значительно меньше памяти. Больше о нём вы сможете узнать из нашей статьи Что такое nginx и как правильно его настроить.
Включение кэша вашего сайта уменьшит возникающие ошибки. Этот способ будет особенно полезен, если ваш сайт получает огромный объём трафика.
При нехватке оперативной памяти рекомендуется выбрать другой тариф VPS. Вы можете ознакомиться с тарифами VDS/VPS на нашем сайте.
Услуга «Администрирование по запросу» может существенно облегчить вам решение этой проблемы. Просто доверьтесь специалистам RU-CENTER, и они сделают всю сложную работу за вас.