Fork: retry: 资源暂时不可用

我尝试在我的电脑上安装英特尔 MPI 基准测试,我得到了这个错误:

fork: retry: Resource temporarily unavailable

然后,当我运行 lstop命令时,我又收到了这个错误。

是什么导致了这个错误?

我的机器配置:

Dell precision T7500
Scientific Linux release 6.2 (Carbon)
188931 次浏览

这通常是由于文件描述符用完造成的。

这里有系统总文件描述符限制,您从命令中获得了什么:

sysctl fs.file-nr

这将返回文件描述符的计数:

<in_use> <unused_but_allocated> <maximum>

要了解用户文件描述符限制是什么,请运行以下命令:

sudo su - <username>
ulimit -Hn

要查明用户使用了多少文件描述符,请运行以下命令:

sudo lsof -u <username> 2>/dev/null | wc -l

因此,现在如果您遇到系统文件描述符限制问题,您需要编辑您的/etc/sysctl.conf 文件,并添加或修改它已经存在的 fs.file-max 行,并将其设置为一个足够大的值,以处理所需的文件描述符数量并重新启动。

fs.file-max = 204708

另一种可能是线程太多。我们在对使用线程池的应用程序运行测试工具时遇到了这个错误消息。我们用过

watch -n 5 -d "ps -eL <java_pid> | wc -l"

观察在给定 Java 进程 ID 中运行的 Linux 本机线程的持续计数。在此命中约1,000(对于我们来说—— YMMV)之后,我们开始收到您提到的错误消息。