![Linux: 프로세스 그룹이 만들 수 있는 fork() 호출 수에 제한이 있습니까? (모든 사용자가 아닙니다!)](https://linux55.com/image/206500/Linux%3A%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%EA%B7%B8%EB%A3%B9%EC%9D%B4%20%EB%A7%8C%EB%93%A4%20%EC%88%98%20%EC%9E%88%EB%8A%94%20fork()%20%ED%98%B8%EC%B6%9C%20%EC%88%98%EC%97%90%20%EC%A0%9C%ED%95%9C%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20(%EB%AA%A8%EB%93%A0%20%EC%82%AC%EC%9A%A9%EC%9E%90%EA%B0%80%20%EC%95%84%EB%8B%99%EB%8B%88%EB%8B%A4!).png)
유사한 KVM 호스트의 유일한 KVM 게스트인 SuSE Linux Enterprise Server 12.5 시스템(커널 4.12.14-122.60)에서 이상한 문제가 발생했습니다.
systemd에 의해 시작된 서비스는 프로그램->프로세스를 시작한 다음 다른 프로그램->하위 프로세스를 시작하는 프로그램->하위 프로세스를 포크하여 더 많은 프로그램->하위 프로세스를 생성합니다.
약속 후. 50 또는 60개의 포크(일부 JAVA 하위 프로세스 포함), 그러면 해당 프로세스 트리에서 모든 연속적인 fork() 호출이 중지되고 errno=11(리소스를 일시적으로 사용할 수 없음)로 실패합니다.
동일한 UID(사용자)의 병렬 실행 로그인 세션은 여전히 새 프로세스를 생성할 수 있으며 시스템 초기화 트리에서 실패한 프로그램을 시작할 수도 있습니다.
내가 이해한 바로는 /etc/security/limits.conf의 NPROC 설정은 UID와 같은 시스템 전체 제한입니다. 하지만 여기서는 상위 프로세스와 해당 하위 프로세스 및 손자 프로세스에만 적용되는 제한 사항이 있는 것 같습니다.
그러한 제한이 있으며 어떻게 수정/확장할 수 있습니까? 아니면 이 동작을 간접적으로 발생시키는 또 다른 매개변수일 수 있습니까?
추가 정보: 이 문제는 우리가 설치한 하나의 서버에서만 발생합니다. 다른 모든 것은 잘 작동합니다. 이것은 160개의 CPU 코어와 128GB의 메모리를 갖추고 있으며, 다른 모든 것은 50% 미만입니다. 이 시스템의 기본 NPROC 값은 628000입니다...
어떤 팁이나 도움을 주시면 감사하겠습니다.
스테판 B님, 안녕하세요.
추신: 2016년에 Arch-Linux에서 몇 가지 유사한 문제가 발견되었지만 TasksMax를 사용하는 솔루션이 여기에도 적용되는지는 모르겠습니다.