背景
最近在工作中发现了一个错误,在执行多线程扫描脚本的时候频繁出现下面这个错误
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
当然这个数字根据自己的需要进行修改即可,保存后注销重新登录就好了。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
我的prestashop模块返回一些错误消息,我得到更多关于解决这个错误的问题,我想为这个错误添加一些提示。 我显示错误msg看起来像这样 $productObj- 并返回error msg以显示,例如,如果error msg为“name字段为空”,我希望添加类似“you products name不能为空”的错误提示 我必须抓住错误种类,(不是从字符串)有人能帮我吗?
我有以下命令。我想循环使用此键和值,即对于冰/冷的项目,打印“值” 我试过这个: 却给我错误
为什么下面的代码返回ValueError?
问题 你想写解析并分析Python源代码的程序。 解决方案 大部分程序员知道Python能够计算或执行字符串形式的源代码。例如: >>> x = 42 >>> eval('2 + 3*4 + x') 56 >>> exec('for i in range(10): print(i)') 0 1 2 3 4 5 6 7 8 9 >>> 尽管如此,ast 模块能被用来将Python源码编译成一个可被分
本文向大家介绍Python pip安装模块提示错误解决方案,包括了Python pip安装模块提示错误解决方案的使用技巧和注意事项,需要的朋友参考一下 问题如下 python pip安装模块提示错误failed to create process 原因: 报这个错误的原因,是因为python的目录名称或位置发生改动。 解决办法: 1.找到修改python所在的目录,打开scripts目录,如下图找
问题内容: 我只是Swift编码的初学者。我的想法很简单,这是一个带有两个按钮的应用程序。单击时,文本字段将更改其文本。在Main.StoryBoard中,添加一个文本字段和两个按钮。在ViewController.swift文件中。我这样写: 应该没事的。但是,出现错误,显示: 线程1:信号SIGABRT 在文件AppDelegate.swift中: 我的代码有什么问题? 问题答案: 要解决该问