Не удалось выделить память, процесс прерывается.

Вопрос или проблема

Что может быть причиной этой ошибки? Вот мой полный лог с момента, когда мой VM перестал работать.

Машина запускает Rails, но база данных находится на другой машине, так что никакой особой нагрузки на саму VM не должно быть.

App 59191 stdout:
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[ W 2018-01-21 14:42:43.3651 4562/T8 age/Cor/Con/InternalUtils.cpp:96 ]: [Клиент 1-6207] Отправка ответа 502: приложение не отправило полный ответ
[ N 2018-01-21 14:42:44.4661 4562/Ta age/Cor/CoreMain.cpp:994 ]: Проверка необходимости отключения долгоживущих соединений для процесса 16877, приложение /var/www/html/XXXX
[Sun Jan 21 14:42:47.777743 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59522 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777800 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59523 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777817 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59526 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777833 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59527 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777855 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59528 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777870 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59529 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777886 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59532 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777902 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59533 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777917 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59534 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777933 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59536 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777948 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59537 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777964 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59538 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777983 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59539 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.777999 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59541 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778014 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59542 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778029 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59544 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778055 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59545 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778069 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59546 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778082 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59547 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778096 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59548 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778109 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59549 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:47.778123 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59553 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
App 59586 stdout:
[Sun Jan 21 14:42:48.779988 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59524 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:42:48.780038 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 59540 вышел с сигналом Ошибка сегментации (11), возможный дамп памяти в /etc/apache2
App 59924 stdout:
App 59931 stdout:
[ W 2018-01-21 14:43:43.0161 4562/Ta age/Cor/Con/InternalUtils.cpp:96 ]: [Клиент 2-6205] Отправка ответа 502: приложение не отправило полный ответ
[ N 2018-01-21 14:43:43.8161 4562/Ta age/Cor/CoreMain.cpp:994 ]: Проверка необходимости отключения долгоживущих соединений для процесса 17194, приложение /var/www/html/XXXX
App 60060 stdout:
[crit] Не удалось выделить память, завершение процесса.
[crit] Не удалось выделить память, завершение процесса.
[ N 2018-01-21 14:53:00.9188 4562/T4 age/Cor/CoreMain.cpp:994 ]: Проверка необходимости отключения долгоживущих соединений для процесса 60060, приложение /var/www/html/XXXX
[ W 2018-01-21 14:53:01.8681 4562/Ta age/Cor/Con/InternalUtils.cpp:96 ]: [Клиент 2-6253] Отправка ответа 502: приложение не отправило полный ответ
[ W 2018-01-21 14:53:01.8691 4562/T3 age/Cor/App/Poo/AnalyticsCollection.cpp:102 ]: Процесс (pid=59924, группа=/var/www/html/XXXX) больше не существует! Отключение от пула.
[ N 2018-01-21 14:53:01.8692 4562/T3 age/Cor/CoreMain.cpp:994 ]: Проверка необходимости отключения долгоживущих соединений для процесса 59924, приложение /var/www/html/XXXX
[Sun Jan 21 14:53:06.706284 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 60392 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2
[Sun Jan 21 14:53:06.706343 2018] [core:notice] [pid 37465] AH00051: дочерний процесс pid 60418 вышел с сигналом Прервано (6), возможный дамп памяти в /etc/apache2

Ошибка [crit] Не удалось выделить память, завершение процесса. указывает на недостаток памяти. На Stack Overflow есть вопрос с хорошим ответом на эту тему.

Вы можете добавить дополнительную оперативную память, если это невозможно, добавьте swap или измените конфигурацию Apache.

Ответ или решение

Ошибка "Не удалось выделить память, процесс аварийно завершён" часто указывает на то, что виртуальной машине или приложению не хватает доступной памяти для выполнения своих операций. Давайте разберём возможные причины и решения для этой проблемы.

Причины

  1. Недостаток физической памяти (RAM): Ваша виртуальная машина может не иметь достаточно выделенной оперативной памяти для выполнения текущих задач.

  2. Отсутствие или недостаток подстраховочной памяти (Swap): Если ваша VM использует больше памяти, чем доступно, и нет подстраховочной памяти, это может привести к отказу в выделении памяти.

  3. Утечка памяти в приложении: Возможно, приложение расходует память неэффективно, оставляя утечки, что в конечном итоге ведет к исчерпанию доступной памяти.

  4. Некорректные настройки Apache или других сервисов: Некорректные конфигурационные файлы могут приводить к избыточному потреблению ресурсов.

Решения

  1. Увеличение объёма RAM: Если возможно, добавьте больше оперативной памяти на вашу виртуальную машину, чтобы обеспечить приложению необходимые ресурсы.

  2. Настройка подкачки (Swap): Если добавить оперативную память невозможно, увеличьте размер файла подкачки. Это позволится операционной системе выделять дополнительные ресурсы, хотя она будет работать медленнее, чем при использовании RAM.

  3. Оптимизация кода приложения: Проведите аудит кода вашего приложения на наличие возможных утечек памяти и попытайтесь их устранить.

  4. Оптимизация конфигурации сервера: Проверьте конфигурационные файлы вашего сервера (например, Apache) и убедитесь, что они оптимально настроены для вашего текущего трафика и нагрузки. Ограничьте максимальное количество подключений или используйте модули кэширования.

  5. Мониторинг использования ресурсов: Внедрите инструменты мониторинга для отслеживания использования памяти, чтобы заранее предотвращать наличие проблем.

  6. Частично отключите менее критичные сервисы: Временно остановите или ограничьте выполнение менее значимых процессов до момента решения проблемы.

Заключение

Проблема с выделением памяти может иметь множество корней, от аппаратных до программных. Постоянный мониторинг и своевременная оптимизация конфигураций, как и установка достаточного объема ресурсов, помогут предотвратить эти сбои в будущем. Если же проблема не решается этими методами, целесообразным будет обращение за помощью к специалистам для детальной диагностики.

Оцените материал
Добавить комментарий

Капча загружается...