
setrlimit(
내 C++ 코드 내에서 )를 사용하여 RLIMIT_NOFILE
to 를 설정하려고 시도했지만 RLIM_INFINITY
( 다음 에 & 를 getrlimit
설정하고 ) "작업이 허용되지 않음" 오류가 발생합니다. 코드는 루트로 실행됩니다.rlim_cur
rlim_max
RLIM_INFINITY
setrlimit()
RLIM_INFINITY
로 설정하는 것도 가능합니까 RLIMIT_NOFILE
?
답변1
RLIMIT_NOFILE
는 에서 정의한 최대값으로 제한되며 /proc/sys/fs/nr_open
그 이상으로 설정하려고 하면 가 발생합니다 EPERM
. 짧은 기간 동안(커널 2.6.28의 경우) 로 설정할 수 있었지만 RLIM_INFINITY
이로 인해 일부 프로그램에서 엄청난 성능 문제가 발생했습니다.되돌리기 커밋자세한 내용은.
이것은 문서화되어 있습니다해당 EPERM
항목man setrlimit
, 그리고/proc/sys/fs/nr_open
에 대한 설명man 5 proc
.