GNU/Linux >> Linux の 問題 >  >> Linux

fork:retry:リソースが一時的に利用できません

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

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

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


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

システムの合計ファイル記述子制限があります。コマンドから何が得られますか:

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

Linux
  1. ファイル記述子とシェルスクリプト?

  2. Bashでファイル記述子を複製/閉じる際の矢印記号の重要性?

  3. 最大のファイル記述子を持つプロセスを見つける方法は?

  1. Linux インタビューの質問 :オープン ファイル / オープン ファイル記述子

  2. 「ロックを取得できませんでした / var / lib / dpkg / lock – open (11 リソースが一時的に利用できません)」エラーを修正する方法

  3. Linux フォーク中のファイル記述子の継承を防止する

  1. スレッドとファイル記述子

  2. Cコードから現在使用されているファイル記述子の数を取得する

  3. ターミナルウィンドウからLinuxでファイルを作成するには?