如何在 Django WSGI 应用程序中强制限制内存?

发布于 2024-08-21 20:20:52 字数 305 浏览 6 评论 0原文

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

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

  • apa​​che.conf
  • wsgi 某处
  • django 配置

,但我找不到正确的配置选项。在 PHP 中,您可以使用以下命令执行此操作:

php_value memory_limit 1GB

apache.conf 中的

I want my app to throw an MemoryError when its usage goes over 1GB. I'm running in WSGI daemon mode.

I see 3 places the memory limit could be:

  • apache.conf
  • wsgi somewhere
  • django configuration

but I can't find the right config options. In PHP you can do this with :

php_value memory_limit 1GB

in your apache.conf

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

九八野马 2024-08-28 20:20:52

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

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


mod_wsgi 的更新

版本 3.4 支持守护程序模式选项,该选项可能能够限制内存使用。请参阅:

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

Resource memory limits aren't implemented on most platforms even though C API definitions exist. As such, mod_wsgi doesn't try to implement such restrictions. If PHP is doing it, is is able to do so by virtue that that it is a more constrained and controlled environment than Python.

The only portable way is to have a separate daemon process running which runs 'ps' or uses '/proc' to monitor memory usage of processes and then send a SIGINT signal to those which go over some predefined value.


UPDATE

Version 3.4 of mod_wsgi supports options for daemon mode that may be able to restrict memory usage. See:

Whether they work depends on the operating system you are using.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文