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 文件操作实现代码
Oct 07 Python
基于python脚本实现软件的注册功能(机器码+注册码机制)
Oct 09 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
深入分析python数据挖掘 Json结构分析
Apr 21 Python
python计算两个矩形框重合百分比的实例
Nov 07 Python
利用Python进行图像的加法,图像混合(附代码)
Jul 14 Python
python3的print()函数的用法图文讲解
Jul 16 Python
Python函数中的可变长参数详解
Sep 12 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Django框架教程之中间件MiddleWare浅析
Dec 29 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
python 批量下载bilibili视频的gui程序
Nov 20 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
使用adodb lite解决问题
2006/12/31 PHP
最佳JS代码编写的14条技巧
2011/01/09 Javascript
基于Jquery的开发个代阴影的对话框效果代码
2011/07/28 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
2015/03/18 Javascript
js命名空间写法示例
2015/12/18 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
JavaScript中定义对象原型的两种使用方法
2016/12/15 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
在angularJs中进行数据遍历的2种方法
2018/10/08 Javascript
JS实现马赛克图片效果完整示例
2019/04/13 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
python二叉树遍历的实现方法
2013/11/21 Python
在Django的模型中执行原始SQL查询的方法
2015/07/21 Python
Python线程指南详细介绍
2017/01/05 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
带有css3动画效果的兼容多浏览器简单导航条示例
2014/01/26 HTML / CSS
phonegap常用事件总结(必看篇)
2017/03/31 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
Calzedonia美国官网:意大利风格袜子、打底裤和沙滩装
2018/07/19 全球购物
const和static readonly区别
2013/05/20 面试题
承租经营合作者协议书
2014/10/01 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2014年党员发展工作总结
2014/12/02 职场文书
2015元旦标语横幅
2014/12/09 职场文书
房产公证书样本
2015/01/23 职场文书
离婚协议书怎么写
2015/01/26 职场文书
客房服务员岗位职责
2015/02/09 职场文书
办公用品质量保证书
2015/05/11 职场文书
2019年个人工作总结范文
2019/03/25 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
实现GO语言对数组切片去重
2022/04/20 Golang