django redis mysql,django python随机抛出mysql操作错误和redis“打开的文件太多”

我有一个用python+django+fastcgi(flup)+mysql+redis构建的web服务。在

但偶尔也会引起一些例外,

e、 g.OperationalError: (2001, "Can't create UNIX socket (24)")或

ConnectionError: Error 24 connecting 10.160.94.231:6379. Too many open files.

日志文件显示如下:2012-08-19 12:36:36,322 ERROR Internal Server Error: /xxxx

Traceback (most recent call last):

File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response

File "/xxxxxx/push_notifi/models.py", line 60, in get_device_token

File "/usr/lib/python2.6/site-packages/redis-2.4.12-py2.6.egg/redis/client.py", line 773, in sadd

File "/usr/lib/python2.6/site-packages/redis-2.4.12-py2.6.egg/redis/client.py", line 283, in execute_command

File "/usr/lib/python2.6/site-packages/redis-2.4.12-py2.6.egg/redis/connection.py", line 260, in send_command

File "/usr/lib/python2.6/site-packages/redis-2.4.12-py2.6.egg/redis/connection.py", line 243, in send_packed_command

File "/usr/lib/python2.6/site-packages/redis-2.4.12-py2.6.egg/redis/connection.py", line 191, in connect

ConnectionError: Error 24 connecting 10.160.94.231:6379. Too many open files.

2012-08-19 12:38:54,942 ERROR Internal Server Error: xxxxx

Traceback (most recent call last):

File "/usr/lib/python2.6/site-packages/django/core/handlers/base.py", line 111, in get_response

response = callback(request, *callback_args, **callback_kwargs)

File "/xxxxxx/users_stat/views.py", line 85, in receiver

saveUser(user)

File "/xxxxxx/users_stat/models.py", line 86, in saveUser

File "/xxxxxxx/users_stat/models.py", line 46, in syncVersionToPushService

File "/xxxxxxx/utility/db_access.py", line 37, in execNonQuery

File "/usr/lib/python2.6/site-packages/MySQLdb/__init__.py", line 81, in Connect

File "/usr/lib/python2.6/site-packages/MySQLdb/connections.py", line 187, in __init__

OperationalError: (2001, "Can't create UNIX socket (24)")

我认为这可能是由某种文件描述符泄漏引起的,但是我使用redis.Redis来连接redis,并将redis连接超时设置为100秒。在

在mysql连接中,我在每个查询之后调用cursor.close()和{}。我真的不知道fd泄漏在哪里发生。在

我还检查了cat /proc/sys/fs/file-nr,并且总是有足够的文件描述符。比如:

^{pr2}$

你对此有什么想法吗?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值