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字符转换
Sep 06 Python
python提取字典key列表的方法
Jul 11 Python
Python实现导出数据生成excel报表的方法示例
Jul 12 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
使用Python opencv实现视频与图片的相互转换
Jul 08 Python
浅谈matplotlib.pyplot与axes的关系
Mar 06 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
Python SMTP配置参数并发送邮件
Jun 16 Python
python db类用法说明
Jul 07 Python
Python实现淘宝秒杀功能的示例代码
Jan 19 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 Python
Python实现自动玩连连看的脚本分享
Apr 04 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
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
JQuery中对服务器控件 DropdownList, RadioButtonList, CheckboxList的操作总结
2011/06/28 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
杨氏矩阵查找的JS代码
2013/03/21 Javascript
js+div实现图片滚动效果代码
2014/02/10 Javascript
javascript获取form里的表单元素的示例代码
2014/02/14 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
2015/12/25 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
Angular2 http jsonp的实例详解
2017/08/31 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
使用mpvue搭建一个初始小程序及项目配置方法
2018/12/03 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
Python下rrdtool模块的基本使用方法
2015/11/13 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
Python列表与元组的异同详解
2019/07/02 Python
Django后台admin的使用详解
2019/07/08 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
印度在线杂货店:bigbasket
2018/08/23 全球购物
党员廉洁自律承诺书
2014/05/26 职场文书
委托公证书样本
2015/01/23 职场文书
工作态度检讨书范文
2015/05/06 职场文书
导游词之广西漓江
2019/11/02 职场文书
导游词之西安大清真寺
2019/12/17 职场文书
Pytorch中的数据集划分&正则化方法
2021/05/27 Python
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
Hive HQL支持2种查询语句风格
2022/06/25 数据库