gpt4 book ai didi

python - 如何检测 django 应用程序中的死锁(并消除它们)

转载 作者:行者123 更新时间:2023-11-30 23:46:38 25 4
gpt4 key购买 nike

我正在维护一个 django 项目,该项目经常没有响应。到目前为止,我通过持续监控应用程序并在必要时重新启动 apache 来处理这种情况。

没有反应怎么办?这意味着 apache 不再回复任何请求。

环境:

  • 操作系统:Debian Squeeze 64 位
  • 网络服务器:Apache 2.2.16 mod_wsgi(mod_python 已投入生产约一年)
  • Django:1.3.1(以及 1.0 以来的每个主要版本)
  • Python:2.6.6 + virtualenv(使用分发、无站点包,之前在生产中使用过几种不同的设置)
  • 数据库后端:psycopg2 2.3.2
  • 数据库:PostgreSQL 9.0(以前使用8.3版本)
  • 连接池:pgbouncer(如果不使用保镖,问题仍然存在)
  • 反向代理:nginx 1.0.11

我该怎么做才能更接近错误的根源? (我不能不提供源代码 - 尽管这里有片段,但也有可能)我已经寻找这个问题太久了,不可能列出我尝试过的所有事情。我试图摆脱我能想到的任何“魔法”。自问题发生以来,应用程序的多个部分已被重写。

很抱歉缺乏详细信息,但我很乐意提供(几乎)所需的任何信息,并 promise 尽最大努力使这篇文章对面临类似问题的其他人尽可能有帮助。

最佳答案

最终您需要 mod_wsgi 4.0 中添加的新功能。这些将允许守护进程模式在请求阻塞时更好地控制自动重新启动。当在阻塞条件下重新启动时,mod_wsgi 将尝试转储每个 Python 请求线程当时正在执行的操作的 Python 堆栈跟踪,以便您可以了解它们被阻塞的原因。

建议您在 mod_wsgi 邮件列表上处理该问题,如果需要,可以更详细地解释新功能。之前曾在以下位置发布过相关内容:

http://groups.google.com/group/modwsgi/msg/2a968d820e18e97d

目前 mod_wsgi 4.0 代码只能从源代码存储库中获取。目前的躯干头部被认为是稳定的。

关于python - 如何检测 django 应用程序中的死锁(并消除它们),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com