Systemd에서 NProc 관리

Systemd에서 NProc 관리

SystemD "task"와 nproc 값의 차이점은 무엇입니까?

현재 작업 수가 Systemd 기본값인 TasksMax(512)를 초과하여 서비스가 중단된 것을 발견했습니다. 하지만 우리는 그것을 설정해 놓았기 LimitNPROC=infinity때문에 서비스가 512개로 제한되어 있다는 사실에 놀랐습니다.

우리는 설정을 통해 이 문제를 해결했습니다.

TasksMax=infinity

둘 사이의 차이점은 무엇 TasksMax이며 LimitNPROC언제 다른 것을 사용해야 합니까?

답변1

LimitNProc=rlimit(ulimit라고도 함)입니다. "리소스 제한 개념에 대한 자세한 내용은 setrlimit(2)를 참조하세요... 이러한 옵션으로 구성된 대부분의 프로세스 리소스 제한은 프로세스별로 적용되며 프로세스는 독립적인 새 리소스 집합을 얻기 위해 분기될 수 있습니다. 따라서 원래 프로세스는 설정된 제한을 벗어날 수 있습니다." 이는 이 명령문의 예외 중 하나 man systemd.exec이며 RLIMIT_NPROC"실제 사용자 ID"(UID)로 프로세스 수를 제한합니다.

TasksMax=man systemd.resource-control"프로세스 구성을 위해 Linux 제어 그룹(cgroups) 커널 개념에 의존" 옵션 중 하나로 보다 구체적으로 문서화되었습니다 . 이러한 모든 제한 사항은 systemd 서비스용으로 생성된 cgroup에 적용됩니다. 단순히 새 프로세스를 포크하는 것만으로는 cgroup을 벗어날 수 없습니다.

TasksMax=나에게는 더 의미가 있습니다. 왜 사용하고 싶은지 모르겠습니다 LimitNProc=.

관련 정보