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字符串对其居中显示的方法
Jul 11 Python
python logging日志模块的详解
Oct 29 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
利用Python如何生成便签图片详解
Jul 09 Python
浅析python的优势和不足之处
Nov 20 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
python判断字符串或者集合是否为空的实例
Jan 23 Python
python 实现矩阵按对角线打印
Nov 29 Python
pycharm 更改创建文件默认路径的操作
Feb 15 Python
Django 5种类型Session使用方法解析
Apr 29 Python
python代码实现扫码关注公众号登录的实战
Nov 01 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
为PHP5.4开启Zend OPCode缓存
2014/12/26 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
javascript学习(二)javascript常见问题总结
2013/01/02 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
HTML5之WebSocket入门3 -通信模型socket.io
2015/08/21 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
详解Vue单元测试case写法
2018/05/24 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
vue使用pdfjs显示PDF可复制的实现方法
2018/12/14 Javascript
详解vue为什么要求组件模板只能有一个根元素
2019/07/22 Javascript
js 数组当前行添加数据方法详解
2020/07/28 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
JavaScript实现鼠标移入随机变换颜色
2020/11/24 Javascript
[50:12]EG vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
基于Python中求和函数sum的用法详解
2018/06/28 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
2020/03/10 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
加拿大鞋网:Globo Shoes
2019/12/26 全球购物
知识竞赛主持词
2014/03/26 职场文书
党员干部四风问题整改措施思想汇报
2014/10/12 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python