내 개발 환경을 사용할 때 "포크 실패" 발생

내 개발 환경을 사용할 때 "포크 실패" 발생

저는 주로 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 응용 프로그램 서버를 시작한다는 점에서 매우 특이합니다(하나는 외부 시스템용 가상 서버이고 다른 하나는 우리 응용 프로그램용). 문제는 두 개의 응용 프로그램 서버와 컴퓨터에서 사용하는 일부 다른 응용 프로그램을 시작할 때만 발생하는 것 같습니다. 내 시스템에서 많은 서비스가 실행되고 있으므로 시스템이 도달하는 한도 중 일부를 늘려야 할 수도 있지만 어느 것이 될지는 전혀 모릅니다.

내가 놓쳤을 수도 있는 아이디어나 무엇이 잘못되었는지 확인하기 위해 확인할 수 있는 것이 있습니까?

관련 정보