【问题标题】:Ubuntu 16 gives "fork: retry: Resource temporarily unavailable", Ubuntu 20 doesn'tUbuntu 16 给出“fork:重试:资源暂时不可用”,Ubuntu 20 没有
【发布时间】:2022-01-05 21:11:37
【问题描述】:

就硬件而言,我有 2 台类似的机器。一个有 Ubuntu 16,另一个有 Ubuntu 20。

我正在运行一个 python 程序,该程序旨在打开 30K TCP 连接到一个端点。 Ubuntu 20 机器机器只要在执行程序前执行以下两条命令就可以很好地完成这项工作:

#ulimit -n 1000000 #ulimit -u 1000000

然而 Ubuntu 16 机器在创建 12K 连接后给出了这个:

-su: fork: retry: 没有子进程 -su: fork: retry: 资源暂时不可用 -su: fork: retry: 资源暂时不可用 -su: fork: retry: 资源暂时不可用

知道是什么导致 Ubuntu 16 表现得像这样,而 Ubuntu 20 看起来还不错吗?

注意:我现在尝试从不同的帖子做一些事情,但没有任何工作。

提前致谢。

【问题讨论】:

    标签: python-3.x linux ubuntu ulimit


    【解决方案1】:

    我认为 Ubuntu 16.04 与 20.04 相比,总体上的最大进程数较低

    即在 Ubuntu 16.04 /proc/sys/kernel/pid_max 上是 32768,而在 18.04 上是 131072

    我认为您可能有足够的其他进程来达到此限制,至少值得检查 pid_max 来查看。

    另外,最好编写测试程序以使用异步代码从单个进程/线程建立多个连接,因为这将允许更高的限制。

    PS:Ubuntu 16.04 已报废(除非您为扩展付费),因此您可能需要确保升级。

    PS:Ubuntu版本(除了minimial-types)需要第二个数字块才能正确。

    【讨论】:

      【解决方案2】:

      好的,这里的解决方案是远离 Ubuntu 16

      【讨论】:

      猜你喜欢
      • 2012-08-18
      • 2018-05-11
      • 1970-01-01
      • 2018-03-03
      • 2020-04-16
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多