And*_*aev 11 python sockets exception file
在Python2.6中运行服务器时,我的Ubuntu 9.10下打开文件有问题,主要问题是,我不知道为什么会这样...
我已经设定
ulimit -n = 999999
net.core.somaxconn = 999999
fs.file-max = 999999
当服务器运行时,lsof给了我大约12000个打开的文件.
而且我也在使用epoll.
但过了一段时间后,它开始给出例外:
文件"/usr/lib/python2.6/socket.py",第195行,接受错误:[Errno 24]打开文件太多
而且我不知道它何时达不到文件限制.
感谢帮助)
And*_*aev 23
配置最大开放连接的参数.
在/etc/sysctl.conf
加:
net.core.somaxconn=131072
fs.file-max=131072
Run Code Online (Sandbox Code Playgroud)
然后:
sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)
在/usr/include/linux/limits.h
更改:
NR_OPEN = 65536
Run Code Online (Sandbox Code Playgroud)
在/etc/security/limits.conf
加:
* soft nofile 65535
* hard nofile 65535
Run Code Online (Sandbox Code Playgroud)
Mak*_*cha 10
您也可以使用下面的python代码执行此操作
import resource
resource.setrlimit(resource.RLIMIT_NOFILE, (65536, 65536))
Run Code Online (Sandbox Code Playgroud)
第二个参数是元组(soft_limit, hard_limit).硬限制是软限制的上限.软限制是会话或进程实际执行的内容.这允许管理员(或用户)将硬限制设置为他们希望允许的最大使用量.然后,其他用户和进程可以使用软限制将其资源使用自我限制为甚至更低级别(如果他们愿意的话).
| 归档时间: |
|
| 查看次数: |
25113 次 |
| 最近记录: |