Выход из Amazon EC2 Electric Fence: сбой mprotect(): невозможно выделить память

При выполнении моей программы внутри экземпляра Amazon EC2 (t2.small, Oregon, Ubuntu 16.04) я получаю сообщение об ошибке

ElectricFence Exiting: mprotect() failed: Cannot allocate memory

Шаги, которые я выполняю после запуска экземпляра:

  1. Установите основные сборки, pip и cmake

    sudo apt-get update && sudo apt-get install build-essential python-pip cmake

  2. Установите менеджер пакетов conan

    pip install conan

  3. Клонировать хранилище

    git clone https://github.com/oyarsa/faptp.git

  4. Перейдите в репозиторий, создайте папку сборки, установите зависимости и запустите cmake

    mkdir build && cd build conan install .. -s compiler=gcc -s compiler.libcxx=libstdc++11 --build=missing cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release cmake --build .

  5. После компиляции я возвращаюсь в корневой каталог и пытаюсь запустить программу

    cd .. && ./build/bin/faptp

При этом программа выполняется некоторое время, а затем завершается с таким выводом:

SA-ILS

ElectricFence Exiting: mprotect() failed: Cannot allocate memory

SA-ILS выводится из моей программы. Ошибка от ElectricFence - проблема. Я никогда не слышал об этом раньше, и это первый раз, когда я запускаю эту программу в EC2, поэтому я предполагаю, что она как-то связана с этим.

Исходный код находится по адресу https://github.com/oyarsa/faptp, если это поможет.

1 ответ

Вы уверены, что ошибка не в том, что она не может выделить больше памяти?

Экземпляр t2.small имеет 2 ГБ ОЗУ, и по умолчанию подкачка не включена. Так что если вам нужно больше, вы увидите эту ошибку.

Существует простой способ определить, является ли это проблемой с ОС, или вам не хватает памяти: остановите экземпляр, измените его на более крупный тип и перезапустите. T2.large имеет 8 ГБ ОЗУ, и его раскрутка и тестирование обойдутся вам в $0,094, при условии, что вы не оставите его работать больше, чем из-за ошибки. Если это сработает, попробуйте t2.medium, который будет стоить $0,047. (Или, если тратить десять центов слишком дорого, вы можете попробовать начать с t2.medium)

Другие вопросы по тегам