【发布时间】:2014-07-11 07:26:26
【问题描述】:
我有一个 wsgi 应用程序配置如下:
WSGIApplicationGroup %{GLOBAL}
WSGIDaemonProcess myapp user=myuser threads=10 maximum-requests=10000
WSGIScriptAlias / /usr/local/myapp/wsgi.py
WSGIProcessGroup myapp
我希望看到我的应用程序正在运行的进程...但是使用 ps aux 或 pstree 我看不到子进程:
init─┬─apache2─┬─apache2
│ ├─2*[apache2───26*[{apache2}]]
│ ├─apache2───14*[{apache2}]
│ ├─apache2───12*[{apache2}]
│ └─apache2───16*[{apache2}]
我的 wsgi 是否在守护程序模式下执行?如何检查我的 python 进程的健康状况?
我正在尝试调试我的 wsgi python 应用程序,当同时请求大量连接时(例如:来自单个网页的 30 个连续 ajax 请求),该应用程序挂起(有时出现内存故障)。
【问题讨论】:
-
尝试添加显示名称,例如
WSGIDaemonProcess myapp processes=24 threads=4 display-name=%{GROUP} -
我也不确定 mod_wsgi 是否提供 Python 线程转储,这对于检查挂起的 Web 应用程序问题非常方便。我切换到支持此功能的 UWSGI:uwsgi-docs.readthedocs.org/en/latest/Tracebacker.html
-
最新的 mod_wsgi 版本将在进程因请求超时而关闭时尝试转储 Python 线程。
-
我有 mod-wsgi 版本 3.3-4build1。我认为它是 debian-stable 版本。
-
当时mod_wsgi的最新版本是4.2.5。所以你有点落后了。