Как вы можете установить ограничение памяти в приложениях Django WSGI? - PullRequest
6 голосов
/ 14 февраля 2010

Я хочу, чтобы мое приложение выдавало MemoryError, когда его использование превышает 1 ГБ. Я работаю в режиме демона WSGI.

Я вижу 3 места, где может быть предел памяти:

  • apache.conf
  • WSGI где-то
  • конфигурация django

но я не могу найти правильные параметры конфигурации. В PHP вы можете сделать это с помощью:

php_value memory_limit 1GB

в вашем apache.conf

Ответы [ 2 ]

3 голосов
/ 15 февраля 2010

Ограничения памяти ресурса не реализованы на большинстве платформ, даже если существуют определения C API. Таким образом, mod_wsgi не пытается реализовать такие ограничения. Если это делает PHP, он может сделать это благодаря тому, что это более ограниченная и контролируемая среда, чем Python.

Единственный переносимый способ - запустить отдельный процесс-демон, который запускает «ps» или использует «/ proc» для мониторинга использования памяти процессами, а затем отправляет сигнал SIGINT тем, которые выходят за пределы некоторого предопределенного значения.


UPDATE

Версия 3.4 mod_wsgi поддерживает параметры для режима демона, которые могут ограничивать использование памяти. См:

Работают ли они, зависит от используемой операционной системы.

2 голосов
/ 14 февраля 2010

Использование resource.setrlimit() с resource.RLIMIT_VMEM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...