Django实例建立直到崩溃网站(更新:Redis死锁高度怀疑)

时间:2012-08-15 23:45:17

标签: python django nginx redis deadlock

请参阅下面的编辑#2了解可能的根本原因

我的Django线程/进程(同时使用'method = threaded'和'method = prefork'),每10分钟左右,随机构建如下: http://i.imgur.com/VyUAv.png例如很多这些过程:

python ./manage.py runfcgi method=threaded host=localhost port=8888

然后在一分钟左右,线程/进程积累足以取出我的网站。

网站负载非常小,但流量相当高,所以我认为这是一种阻塞问题。

有关如何解决甚至有效调试此问题的任何想法? 感谢。

编辑:我也从我的许多Django视图中使用了Redis。我现在开始研究Redis死锁问题成为问题根源的可能性......

编辑#2:我发现Redis在问题开始时被固定在100%的CPU上,这让我相信Redis的各种僵局是核心问题。

我也遇到了这个错误:

“(错误)加载Redis正在将数据集加载到内存”

尝试通过此命令完全重启Redis时:

./src/redis-cli flushall

重要提示:我在一个单独的EC2微型实例上使用Redis 2.2.7而不是我的Django Web应用程序。

2 个答案:

答案 0 :(得分:0)

线程和进程是两回事。如果整个站点出现故障,原因很可能是线程。

答案 1 :(得分:0)

原来是Redis中一个不起眼的错误。

Redis更新,Redis 2.2.7 - > Redis 2.4.16解决了这个问题。