【问题标题】:python Ubuntu: too many open files [eventpoll]python Ubuntu:打开的文件太多 [eventpoll]
【发布时间】:2018-05-11 21:19:50
【问题描述】:

基本上是一个多线程爬虫程序,主要使用请求。运行程序几个小时后,我不断收到错误“打开的文件太多”。

通过运行:lsof -p pid,我看到了大量的条目,如下所示:

python 75452 xxx 396u a_inode 0,11 0 8121 [eventpoll]

我无法弄清楚它是什么以及如何追溯到问题。 以前,我尝试让它在 Windows 中运行,但从未见过此错误。 知道如何继续调查此问题吗?谢谢。

【问题讨论】:

    标签: python ubuntu memory-leaks python-requests


    【解决方案1】:

    您确定 Windows 中的行为确实与 Ubuntu 不同吗?具体来说,我认为 Windows 允许打开 2048 个文件,而 Ubuntu 上的标准 ulimit 是 1024。我可以想象一个爬虫打开 1024

    我没有运行 Windows,所以我对 2048 的看法可能是错误的。但是 Ubuntu 的论坛可以帮助您进入 2048。请参阅 https://askubuntu.com/questions/162229/how-do-i-increase-the-open-files-limit-for-a-non-root-user

    如果您需要>2048,那么可能有问题......我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我发现它是由 Gevent 引起的。用多线程替换gevent后,一切正常。

      但是,我仍然不知道 gevent 出了什么问题,它不断打开新文件(eventpoll)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-22
        • 2017-10-09
        • 1970-01-01
        • 2016-04-21
        • 2013-05-07
        • 2013-05-03
        相关资源
        最近更新 更多