【问题标题】:mod_wsgi process getting killed and django stops workingmod_wsgi 进程被杀死并且 django 停止工作
【发布时间】:2011-09-30 07:50:23
【问题描述】:

我有 mod_wsgi 在自定义 Linux 构建上以守护程序模式运行。 我没有在 apache 配置中包含任何进程或线程数。这是我的配置:

WSGIDaemonProcess django user=admin
WSGIProcessGroup django
WSGIScriptAlias /django_apps /django/apache/django.wsgi
WSGIApplicationGroup %{GLOBAL}

在系统上,有一个 httpd 清理进程正在运行,它会杀死任何超过某个内存阈值的 httpd 进程。

看起来正在运行 mod_wsgi 的 httpd 进程被杀死了。之后,我网站的 django 部分停止工作。

我收到此错误消息:

Script timed out before returning headers: django.wsgi

每次访问 django 页面时,我都会收到以下日志消息:

<6> Jul  7 10:13:11 httpd[12598]: [info] mod_wsgi (pid=12598): Initializing Python.
<6> Jul  7 10:13:11 httpd[12598]: [info] mod_wsgi (pid=12598): Attach interpreter ''.
<6> Jul  7 10:13:16 httpd[12638]: [info] mod_wsgi (pid=12638): Attach interpreter ''.
<6> Jul  7 10:13:17 httpd[12615]: [info] mod_wsgi (pid=12615): Destroying interpreters.
<6> Jul  7 10:13:17 httpd[12615]: [info] mod_wsgi (pid=12615): Cleanup interpreter ''.
<6> Jul  7 10:13:17 httpd[12615]: [info] mod_wsgi (pid=12615): Terminating Python.
<6> Jul  7 10:13:17 httpd[12615]: [info] mod_wsgi (pid=12615): Python has shutdown.

谁能帮我理解这里发生了什么。为什么 mod_wsgi 进程无法重启?如何将其配置为正常重启?

非常感谢。

【问题讨论】:

  • 你试过停止清理进程守护进程吗?它仍然给你这个错误吗?我们可以看看这个过程的代码吗?

标签: python django mod-wsgi


【解决方案1】:

首先,阅读:

http://blog.dscpl.com.au/2009/11/save-on-memory-with-modwsgi-30.html

如果仅使用守护程序模式,则在嵌入式进程中禁用 Python 解释器的初始化。这些日志消息可能来自嵌入式进程,并且由于 Apache MPM 的过于激进的设置而显示,这会导致主要的 Apache 子进程启动和关闭很多。禁用未使用的解释器,这些消息可能会消失。

这个问题与您的守护进程模式进程的问题是分开的。

为此,在 WSGIDaemonProcess 上设置 'display-name=%{GROUP}' 选项。这将导致守护进程模式进程在“ps”输出列表中显示为“(wsgi:django)”。这样您就可以清楚地识别它是哪个进程。

然后,当您的进程杀手启动时,使用“ps”来验证进程的状态以及是否确实存在一个进程以及它是否正确关闭。可能发生的情况是该进程拒绝关闭,因为它正在等待某个子进程关闭或卡在某个远程文件系统操作上。或者,代码正在注册一个干扰正确关闭的信号处理程序。

如果该进程没有正确关闭,它将不会被替换,但启动关闭可能会将其置于不接受新请求的状态。

所以,从那开始,然后报告你的发现。

顺便说一句,有一个官方的 mod_wsgi 邮件列表。 StackOverflow 不适合来回调试此类问题。

【讨论】:

  • 首先 - 哇,格雷厄姆·邓普顿回答了我的问题。其次,很抱歉延迟回复。这是一个背景问题,我忘了回头看看是否有人回答了我的问题。我已经阅读了您的博文并禁用了嵌入式模式。尽管我已经知道该进程没有重新启动(没有管理员用户 httpd 进程正在运行),但我已经设置了显示名称。我在等着看禁用嵌入式模式是否能解决问题,现在就去阅读更多你的博文!你提到了 mod_wsgi 邮件列表——猜你的意思是:groups.google.com/group/modwsgi?pli=1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2017-10-02
  • 1970-01-01
  • 2010-12-08
  • 2022-01-21
  • 1970-01-01
相关资源
最近更新 更多