開発環境の使用中に「フォークに失敗しました」

開発環境の使用中に「フォークに失敗しました」

私は主に Arch Linux 上で Java を使用するソフトウェア開発者です。最近、開発環境とシステム自体でリソース障害が頻繁に発生しています。

通常使用するすべてのアプリケーションを起動すると、システムは次のようなエラーをスローし始めます。

zshの場合:

mlenz@loki ~/[redacted] (git)-[master] % cd ..
VCS_INFO_detect_git:9: fork failed: resource temporarily unavailable

Eclipse (私の IDE) の場合:

Unhandled event loop exception
unable to create new native thread

Wildfly (現在のプロジェクトで使用するアプリケーション サーバー) の起動時に次の操作を実行します。

13:19:54,962 ERROR [org.xnio.listener] (XNIO-1 I/O-2) XNIO001007: A channel event listener threw an exception: java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:714)
...

または制限ulimitのいずれかに問題があるのではないかと疑いましたが、問題は修正されずに、異常に大きな値を設定することができました。nprocnofile

mlenz@loki ~ % ulimit -a               
-t: cpu time (seconds)              unlimited
-f: file size (blocks)              unlimited
-d: data seg size (kbytes)          unlimited
-s: stack size (kbytes)             8192
-c: core file size (blocks)         0
-m: resident set size (kbytes)      unlimited
-u: processes                       256106
-n: file descriptors                65535
-l: locked-in-memory size (kbytes)  1024
-v: address space (kbytes)          unlimited
-x: file locks                      unlimited
-i: pending signals                 63787
-q: bytes in POSIX msg queues       819200
-e: max nice                        0
-r: max rt priority                 0
-N 15:                              unlimited

また、問題はシステム全体のカーネル リソース制限 (ファイル ハンドルの数など) である可能性もあることがわかりましたが、/proc/sys/fs/file-nrそうではないとも言われています。

mlenz@loki ~ % cat /proc/sys/fs/file-nr 
13312   0   1629104

弊社のシステム管理者が確認したところlsof、行数が非常に多いように思われましたが、別の同僚のコンピューターでも確認したところ、同様に行数が多かったです。

mlenz@loki ~ % lsof | wc -l
228787

私の開発環境はかなり特殊で、通常は 2 つの Wildfly アプリケーション サーバーを起動します (1 つは外部システム用のダミーのようなもので、もう 1 つはアプリケーション用です)。問題は、両方のアプリケーション サーバーを起動し、コンピューターで使用する他のアプリケーションも起動した場合にのみ発生するようです。システムでは多数のサービスが実行されているため、システムの制限を増やす必要があるかもしれませんが、それがどれなのかはまったくわかりません。

何が足りないのか、何が問題なのかを確認するために何をチェックすればよいのか、何かアイデアはありますか?

関連情報