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中的defaultdict模块和namedtuple模块的简单入门指南
Apr 01 Python
Python中super函数的用法
Nov 17 Python
python实现微信远程控制电脑
Feb 22 Python
Django添加sitemap的方法示例
Aug 06 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
Python 中Django验证码功能的实现代码
Jun 20 Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 Python
Python读取实时数据流示例
Dec 02 Python
Python中常见的数制转换有哪些
May 27 Python
Python连接Impala实现步骤解析
Aug 04 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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 多维数组排序(usort,uasort)
2010/06/30 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
PHP 99乘法表的几种实现代码
2020/10/13 PHP
JQuery学习笔记 nt-child的使用
2011/01/17 Javascript
js 实现日期灵活格式化的小例子
2013/07/14 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
Javascript基础_嵌入图像的简单实现
2016/06/14 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
Jqprint实现页面打印
2017/01/06 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
nodeJS模块简单用法示例
2018/04/21 NodeJs
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
[59:36]2018DOTA2亚洲邀请赛 4.3 突围赛 Secret vs VG 第二场
2018/04/04 DOTA
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python实现PS图像调整黑白效果示例
2018/01/25 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
2019/07/16 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
python+opencv实现车道线检测
2021/02/19 Python
HTML5本地数据库基础操作详解
2016/04/26 HTML / CSS
歌唱比赛获奖感言
2014/01/21 职场文书
我们的节日春节活动方案
2014/08/22 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
先进工作者申报材料
2014/12/23 职场文书
素质教育学习心得体会
2016/01/19 职场文书
Python何绘制带有背景色块的折线图
2022/04/23 Python
Python可视化神器pyecharts之绘制地理图表练习
2022/07/07 Python