Как настроить swap, чтобы убрать std::bad_alloc? На сервере 500M RAM. Запускаю ресурсоемкое приложение, которому не хватает памяти и оно вываливается с исключением std::bad_alloc.
Подключаю своп-файл на 10G.
Та же ошибка.
Вывод free -h_ total used free shared buffers cached
Mem: 488M 125M 363M 6.2M 10M 47M
-/+ buffers/cache: 67M 421M
Swap: 9G 32M 9G
На сколько я понимаю, OC не может выделит больше 421M, не смотря на своп. Как это можно исправить?
OC: Ubuntu 15.10 x64

21 Авг 2019 в 06:52
319 +1
0
Ответы
1

Для увеличения лимита выделения памяти на сервере вам следует отредактировать параметр vm.overcommit_memory в файле /etc/sysctl.conf.

Откройте файл /etc/sysctl.conf с помощью текстового редактора:

sudo nano /etc/sysctl.conf

Добавьте следующую строку в конец файла:

vm.overcommit_memory=1

Сохраните и закройте файл.

Затем выполните команду:

sudo sysctl -p

После этого перезагрузите сервер.

После внесения этих изменений система должна разрешать выделение памяти в своп-файле, даже если основная оперативная память уже заполнена.

20 Апр 2024 в 13:12
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир