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实现baidu hi自动登录的代码
Feb 10 Python
状态机的概念和在Python下使用状态机的教程
Apr 11 Python
Python itertools模块详解
May 09 Python
Python中用sleep()方法操作时间的教程
May 22 Python
Python用户推荐系统曼哈顿算法实现完整代码
Dec 01 Python
对python使用http、https代理的实例讲解
May 07 Python
Python错误处理操作示例
Jul 18 Python
Python Numpy,mask图像的生成详解
Feb 19 Python
python爬虫爬取网页数据并解析数据
Sep 18 Python
vue.js刷新当前页面的实例讲解
Dec 29 Python
基于python的matplotlib制作双Y轴图
Apr 20 Python
Python 数据可视化之Matplotlib详解
Nov 02 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
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
php抓取页面的几种方法详解
2013/06/17 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
JS+XML 省份和城市之间的联动实现代码
2009/10/14 Javascript
JavaScript 学习笔记(七)字符串的连接
2009/12/31 Javascript
input输入框鼠标焦点提示信息
2015/03/17 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
JavaScript学习小结之被嫌弃的eval函数和with语句实例详解
2016/08/01 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
推荐10款扩展Web表单的JS插件
2017/12/25 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
Vue组件之高德地图地址选择功能的实例代码
2019/06/21 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
详解vue路由
2020/08/05 Javascript
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
加拿大最大的钻石商店:Peoples Jewellers
2018/01/01 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
印刷工程专业应届生求职信
2013/09/29 职场文书
厨房工作人员岗位职责
2013/11/15 职场文书
上班早退检讨书
2014/01/09 职场文书
村官工作鉴定评语
2014/01/27 职场文书
驾驶员岗位职责
2014/01/29 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
医院感染管理制度
2015/08/05 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android