我尝试在我的计算机上安装英特尔MPI基准测试,但是我收到了这个错误:
fork: retry: Resource temporarily unavailable
然后,当我运行ls
和top
命令时,我再次收到此错误。
导致此错误的原因是什么?
配置我的机器:
Dell precision T7500
Scientific Linux release 6.2 (Carbon)
答案 0 :(得分:72)
这通常是由于文件描述符耗尽造成的。
系统总文件描述符限制,你从命令得到什么:
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
答案 1 :(得分:46)
另一种可能性是太多线程。我们刚刚针对使用线程池的应用程序运行测试工具时遇到此错误消息。我们用过
watch -n 5 -d "ps -eL <java_pid> | wc -l"
观察在给定Java进程ID内运行的Linux本机线程的持续数量。在达到大约1,000(对我们 - YMMV)之后,我们开始收到您提到的错误消息。