Как настроить 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
Для увеличения лимита выделения памяти на сервере вам следует отредактировать параметр vm.overcommit_memory в файле /etc/sysctl.conf.
Откройте файл /etc/sysctl.conf с помощью текстового редактора:sudo nano /etc/sysctl.conf
Добавьте следующую строку в конец файла:vm.overcommit_memory=1
Сохраните и закройте файл.
Затем выполните команду:
sudo sysctl -p
После этого перезагрузите сервер.После внесения этих изменений система должна разрешать выделение памяти в своп-файле, даже если основная оперативная память уже заполнена.