6

我希望我的应用MemoryError在使用量超过 1GB 时抛出异常。我在 WSGI 守护进程模式下运行。

我看到 3 个地方的内存限制可能是:

  • apache.conf
  • wsgi 某处
  • django配置

但我找不到正确的配置选项。在 PHP 中,您可以这样做:

php_value memory_limit 1GB

在你的apache.conf

4

2 回答 2

3

尽管存在 C API 定义,但大多数平台并未实现资源内存限制。因此,mod_wsgi 不会尝试实施此类限制。如果 PHP 正在这样做,那么它能够这样做是因为它是一个比 Python 更受约束和受控的环境。

唯一可移植的方法是运行一个单独的守护进程,它运行“ps”或使用“/proc”来监视进程的内存使用情况,然后向超过某个预定义值的进程发送 SIGINT 信号。


更新

mod_wsgi 3.4 版支持可以限制内存使用的守护程序模式选项。看:

它们是否有效取决于您使用的操作系统。

于 2010-02-14T22:40:25.333 回答
2

resource.setrlimit()与 一起使用resource.RLIMIT_VMEM

于 2010-02-13T22:23:12.753 回答