오라클 사용자 nofile
를 /etc/security/limits.conf
위해 가치를 조정하고 있으며 그 동작에 대한 질문 nofile
이 있습니다. 사용자가 모든 프로세스에서 열 수 있는 총 파일 수를 제한하거나 사용자가 가질 수있는 총 파일 수를 제한합니까 각 프로세스 마다 열려 있습니까?
특히 다음 사용법의 경우 :
oracle hard nofile 65536
답변
대부분의 limits.conf
값 ¹ 은 ulimit
쉘 명령이나 setrlimit
시스템 호출 로 설정할 수있는 한계입니다 . 그것들은 프로세스의 속성입니다. 한도는 각 프로세스에 대해 독립적으로 적용됩니다. 특히 각 프로세스는 nofile
파일 을 열 수 있습니다. 사용자 프로세스에 의해 누적 된 열린 파일 수에는 제한이 없습니다.
이 nproc
제한은 사용자의 모든 프로세스를 합산한다는 점에서 특별한 경우입니다. 그럼에도 불구하고 여전히 프로세스별로 적용됩니다. 프로세스가 fork
새 프로세스를 작성하기 위해 호출 할 때 프로세스의 euid에 속하는 프로세스 수가 프로세스 RLIMIT_NPROC
값 보다 크면 호출이 거부됩니다 .
limits.conf
매뉴얼 페이지에는 한계가 세션에 적용한다고 설명한다. 즉, 세션의 모든 프로세스는 이러한 프로세스 중 하나에 의해 변경되지 않는 한 모두 동일한 한계를 갖습니다. 그것은 세션의 프로세스에 대해 어떤 합계가 이루어 졌다는 것을 의미하지는 않습니다 (운영 체제가 추적하는 것조차 아닙니다. 세션 개념이 있지만 그보다 세분화되어 있습니다. 예를 들어 각 X11 응용 프로그램은 종료되는 경향이 있습니다) 자체 세션에서). 작동하는 방식은 로그인 프로세스가 자체적으로 제한을 설정하고 모든 하위 프로세스에서 상속한다는 것입니다.
¹ 예외는 maxlogins
, maxsyslogins
및 chroot
거부 로그인 프로세스의 일부 또는 영향 로그인으로 적용되는.