Cannot allocate memory: программе на сервере не хватило памяти
Программа попросила у системы память, а та отказала. Сервер не справляется: память занята другими программами или её просто мало. Найдите, кто её занимает, и освободите.
Содержание 7
Как выглядит ошибка
Слова Cannot allocate memory — «не удалось выделить память» — пишет программа, которой система отказала в памяти. Перед ними стоит имя программы или команды, а после — иногда подробности. Сообщение могут показать командная оболочка, apt, база данных, PHP, Docker. Сервер при этом может отвечать медленно.
Шаг 1. Проверьте свободную память
Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
free -hСмотрите колонку available в строке Mem: сколько памяти ещё могут взять программы. Если там несколько мегабайт — память кончилась. Строка Swap покажет, есть ли подкачка: нули — её нет.
Шаг 2. Найдите, кто занял память
ps aux --sort=-%mem | head -6Пять программ с наибольшим расходом памяти. Колонка %MEM — доля памяти, COMMAND — что это за программа. Если среди них что-то лишнее — зависшая команда, забытый процесс, — остановите это. Служба останавливается так (подставьте её имя):
sudo systemctl stop myappЕсли система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter.
Шаг 3. Не дайте памяти кончиться снова
- Включите файл подкачки — Как настроить VPS: время и подкачка.
- Уменьшите память, которую забирают база данных и PHP, — подробнее на странице Out of memory: Killed process.
- Если памяти мало даже после этого, перейдите на тариф с большей памятью в панели провайдера.
Если память кончается полностью, ядро начинает само останавливать программы — это разобрано на странице Out of memory.
Как проверить
free -hВ колонке available должно появиться свободное место, а команда, которая давала ошибку, — выполняться.
Источники
- Исходный код glibc 2.39: errlist.h — текст системной ошибки Cannot allocate memory.
- Справка free(1) в Ubuntu 24.04 — вывод free -h.
- Справка ps(1) в Ubuntu 24.04 — параметр --sort.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026