Intel MPI Benchmarkをコンピューターにインストールしようとしましたが、次のエラーが表示されました。
fork: retry: Resource temporarily unavailable
その後、ls
およびtop
コマンドを実行したときに、このエラーを再度受け取りました。
このエラーの原因は何ですか?
私のマシンの構成:
Dell precision T7500
Scientific Linux release 6.2 (Carbon)
これは通常、ファイル記述子が不足していることが原因です。
システムには合計ファイル記述子の制限があります。コマンドから何を取得できますか。
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の場合)に達した後、言及したエラーメッセージの取得を開始しました。