Python错误提示:[Errno 24] Too many open files的分析与解决


Posted in Python onFebruary 16, 2017

背景

最近在工作中发现了一个错误,在执行多线程扫描脚本的时候频繁出现下面这个错误

HTTPConnectionPool(host=‘t.tips', port=80): Max retries exceeded with url: /index.php (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f29d4081150>: Failed to establish a new connection: [Errno 24] Too many open files',))

比较诡异...

分析

博主自己手上的一些小项目经常需要进行多线程的批量扫描来采集数据,像采集数据这种功能当然是线程越多越好了,所以通常情况下我都是使用 3000 个线程进行扫描,在确定带宽充足,系统硬件配置够高的情况下依然会出现上述问题,这就让我想到是不是因为系统的限制问题。

通过搜索引擎我找到了关于系统限制的介绍,执行

$ ulimit -n
1024

得到的结果是1024,系统限制为同时打开1024个文件,这显然是太少了。

解决

这个问题的解决方法很简单,直接修改下面的文件

sudo vim /etc/security/limits.conf

最这个文件的最后添加两行代码

* soft nofile 10240
* hard nofile 10240

当然这个数字根据自己的需要进行修改即可,保存后注销重新登录就好了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
Python中super关键字用法实例分析
May 28 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
Python制作爬虫采集小说
Oct 25 Python
Python 多线程抓取图片效率对比
Feb 27 Python
浅谈Python数据类型之间的转换
Jun 08 Python
python连接数据库的方法
Oct 19 Python
python+pygame简单画板实现代码实例
Dec 13 Python
用Python写一段用户登录的程序代码
Apr 22 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
Python+pyaudio实现音频控制示例详解
Jul 23 Python
Python变量和数据类型详解
Feb 15 #Python
Django学习笔记之Class-Based-View
Feb 15 #Python
关于Python面向对象编程的知识点总结
Feb 14 #Python
Django日志模块logging的配置详解
Feb 14 #Python
深入理解Python对Json的解析
Feb 14 #Python
Python 2与Python 3版本和编码的对比
Feb 14 #Python
利用Python爬虫给孩子起个好名字
Feb 14 #Python
You might like
IIS6的PHP最佳配置方法
2007/03/19 PHP
yii上传文件或图片实例
2014/04/01 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
PHP数组生成XML格式数据的封装类实例
2016/11/10 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
PHP中常用的魔术方法
2017/04/28 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
firefox事件处理之自动查找event的函数(用于onclick=foo())
2010/08/05 Javascript
javascript鼠标右键菜单自定义效果
2020/12/08 Javascript
js实现音频控制进度条功能
2017/04/01 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
vue-axios使用详解
2017/05/10 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
2017/07/24 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
javascript canvas封装动态时钟
2020/09/30 Javascript
python标准算法实现数组全排列的方法
2015/03/17 Python
python中的colorlog库使用详解
2019/07/05 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
python中的测试框架
2020/11/13 Python
10张动图学会python循环与递归问题
2021/02/06 Python
python实现简单文件读写函数
2021/02/25 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
英国时尚服饰电商:Boohoo
2017/10/12 全球购物
Love, Bonito国际官网:新加坡女装品牌
2021/03/13 全球购物
陈欧的广告词
2014/03/18 职场文书
迎新晚会策划方案
2014/06/13 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
基于flask实现五子棋小游戏
2021/05/25 Python
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript