Python错误提示:[Errno 24] Too many open files的分析与解决

yipeiwu_com5年前Python基础

背景

最近在工作中发现了一个错误,在执行多线程扫描脚本的时候频繁出现下面这个错误

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使用TensorFlow进行图像处理的方法

一、图片的放大缩小 在使用TensorFlow进行图片的放大缩小时,有三种方式: 1、tf.image.resize_nearest_neighbor():临界点插值 2、tf.i...

Python线程之定位与销毁的实现

Python线程之定位与销毁的实现

背景 开工前我就觉得有什么不太对劲,感觉要背锅。这可不,上班第三天就捅锅了。 我们有个了不起的后台程序,可以动态加载模块,并以线程方式运行,通过这种形式实现插件的功能。而模块更新时候,后...

详解Python下Flask-ApScheduler快速指南

引言:Flask是Python社区非常流行的一个Web开发框架,本文将尝试将介绍APScheduler应用于Flask之中。 1. Flask介绍  Flask是Python...

python在线编译器的简单原理及简单实现代码

python在线编译器的简单原理及简单实现代码

我们先来看一下效果(简单的写了一个): 原理:将post请求的代码数据写入了服务器的一个文件,然后用服务器的python编译器执行返回结果 实现代码: #flaskrun...

详解Python安装scrapy的正确姿势

详解Python安装scrapy的正确姿势

运行平台:Windows Python版本:Python3.x IDE:Sublime text3 一、Scrapy简介 Scrapy是一个为了爬取网站数据提取结构性数据而编写的应用框架...