使用我的开发环境时“分叉失败”

使用我的开发环境时“分叉失败”

我是一名软件开发人员,主要在 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问题,要么是nproc要么是nofile限制,但我设法将它们设置为一些异常大的值,但问题没有得到解决:

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 应用程序服务器(一个是外部系统的虚拟服务器,另一个用于我们的应用程序)。该问题似乎仅在我启动两个应用程序服务器以及我在计算机上使用的一些其他应用程序时才会出现。我的系统上运行着很多服务,因此我可能必须增加系统达到的一些限制,但我完全不知道它可能是哪一个。

我可能缺少什么想法,或者我可以检查什么来看看出了什么问题?

相关内容