80

Intel MPI Benchmark をコンピューターにインストールしようとしたところ、次のエラーが発生しました。

fork: retry: Resource temporarily unavailable

その後、実行してコマンドを実行するlsと、このエラーが再び発生しました。top

このエラーの原因は何ですか?

私のマシンの構成:

Dell precision T7500
Scientific Linux release 6.2 (Carbon)
4

2 に答える 2

83

これは通常、ファイル記述子が不足していることが原因です。

システムの合計ファイル記述子制限があります。コマンドから得られるものは次のとおりです。

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
于 2012-08-22T18:59:29.760 に答える
52

もう 1 つの可能性は、スレッドが多すぎることです。スレッド プールを使用するアプリに対してテスト ハーネスを実行すると、このエラー メッセージが表示されました。使用した

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

特定の Java プロセス ID 内で実行中の Linux ネイティブ スレッドの進行中のカウントを監視します。これが約 1,000 に達した後 (私たちにとっては YMMV)、あなたが言及したエラー メッセージが表示されるようになりました。

于 2012-12-21T00:20:09.467 に答える