![개발 환경을 사용하는 동안 "포크 실패" 발생](https://rvso.com/image/83690/%EA%B0%9C%EB%B0%9C%20%ED%99%98%EA%B2%BD%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94%20%EB%8F%99%EC%95%88%20%22%ED%8F%AC%ED%81%AC%20%EC%8B%A4%ED%8C%A8%22%20%EB%B0%9C%EC%83%9D.png)
저는 주로 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 응용 프로그램 서버를 시작한다는 점에서 매우 특이합니다(하나는 외부 시스템용 더미이고 다른 하나는 우리 응용 프로그램에 사용됨). 내 컴퓨터에서 사용하는 다른 응용 프로그램 중 일부와 함께 두 응용 프로그램 서버를 모두 시작할 때만 문제가 발생하는 것 같습니다. 내 시스템에서 실행되는 서비스가 많기 때문에 시스템이 도달하는 한도를 늘려야 할 수도 있지만 어느 것이 될지는 전혀 모릅니다.
내가 놓친 부분이나 무엇이 잘못되었는지 확인할 수 있는 아이디어가 있습니까?