systemd를 사용하는 Linux 배포판이있을 것입니다.
Systemd는 각 사용자에 대한 cgroup을 만들고 사용자의 모든 프로세스는 동일한 cgroup에 속합니다.
Cgroups는 최대 프로세스 수, CPU주기, RAM 사용량 등과 같은 시스템 리소스에 대한 제한을 설정하는 Linux 메커니즘입니다. 이는 syscall ulimit을 사용 하는 것과는 다른,보다 현대적인 리소스 제한 레이어입니다 getrlimit().
실행하면 systemctl status user-<uid>.slice(사용자의 cgroup을 나타냄 ) 해당 cgroup 내에서 허용되는 현재 및 최대 작업 수 (프로세스 및 스레드)를 볼 수 있습니다.
$ systemctl 상태 사용자-$ UID.slice
● user-22001.slice-UID 22001의 사용자 조각
로드 됨 :로드 됨
드롭 인 : /usr/lib/systemd/system/user-.slice.d
└─10-defaults.conf
활성화 : 월요일부터 활성화 2018-09-10 17:36:35 EEST; 1 주일 전
작업 : 17 (한계 : 10267)
메모리 : 616.7M
기본적으로 systemd가 각 사용자에게 허용하는 최대 작업 수는 "시스템 전체 최대"( sysctl kernel.threads-max) 의 33 %입니다 . 이것은 일반적으로 ~ 10,000 개의 작업에 해당합니다. 이 한계를 변경하려면 다음을 수행하십시오.
systemd v239 이상에서 사용자 기본값은 다음에서 TasksMax = 를 통해 설정됩니다 .
/usr/lib/systemd/system/user-.slice.d/10-defaults.conf
특정 사용자에 대한 제한을 조정하려면 (/etc/systemd/system.control에 저장 될뿐만 아니라 즉시 적용됨) 다음을 실행하십시오.
systemctl [--runtime] set-property user-<uid>.slice TasksMax=<value>
여기에서 장치 설정을 재정의하는 일반적인 메커니즘 (예 :)도 systemctl edit여기에서 사용할 수 있지만 재부팅해야합니다. 예를 들어 모든 사용자에 대한 제한을 변경 하려면을 만들 수 있습니다 /etc/systemd/system/user-.slice.d/15-limits.conf.
systemd v238 및 이전 버전에서는 사용자 기본값이 에서 UserTasksMax = 를 통해 설정됩니다 /etc/systemd/logind.conf. 값을 변경하려면 일반적으로 재부팅해야합니다.
이것에 대한 자세한 정보 :