태그 보관물: ulimit

ulimit

루트가 아닌 사용자에 대해 최대 4096 개의 열린 파일을 초과 할 수없는 이유는 무엇입니까? 루트가 아닌 사용자

nofile이 문제와 관련된 모든 StackExchange 답변을 따름에도 불구하고 우분투 14.04에서 루트가 아닌 사용자 의 제한 을 늘릴 수없는 것 같습니다 . 지금까지 나는 :

$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000

$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required        pam_limits.so
/etc/pam.d/common-session-noninteractive:session required        pam_limits.so

$ cat /proc/sys/fs/file-max
101232

재부팅, 로그인 및

$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted

여전히 어떻게 든 루트가 아닌 사용자를위한 4096 최대의 제한 될 것으로 보인다.



답변

Ubuntu 14.04를 사용하여 설명 된 하드 한계를 얻었습니다.

user@notebook:~$ ulimit -Hn 4096

나는 ulimit를 사용하여 그것을 낮출 수는 있지만 질문이 설명하는 것처럼 그것을 늘릴 수는 없습니다. ulimit의 매뉴얼은 다음과 같이 설명합니다.

오직 루트 만이 하드 한계를 증가시킬 수 있습니다

그래서 /etc/security/limits.conf다음과 같이 더 높은 한계를 설정하려고했습니다 .

user hard nofile 9999

그리고 새로운 로그인 ssh localhost -l user은 나에게 새로운 한계를 부여했습니다.

user@notebook:~$ ulimit -Hn 9999

이것이 당신에게도 효과가 있기를 바랍니다.


답변

기사 는 귀하의 문제를 해결한다고 생각합니다.

기본적으로 ulimit 명령을 사용하여 사용 가능한 자원을 늘리십시오.

예를 들면 다음과 같습니다.

다음 명령 명령을 사용하여 열린 파일 디스크립터의 최대 수를 표시하십시오.

cat /proc/sys/fs/file-max

hard 및 soft 값을 보려면 다음과 같이 명령을 실행하십시오.

# ulimit -Hn
# ulimit -Sn

httpd 또는 oracle 사용자의 hard 및 soft 값을 보려면 다음과 같이 명령을 실행하십시오.

# su - username

최대 파일 수를 수정하려면 다음과 같이 커널 변수 / proc / sys / fs / file-max에 새 값을 설정하여 열린 파일의 최대 수를 늘릴 수 있습니다 (루트로 로그인).

# sysctl -w fs.file-max=100000

위의 명령은 파일을 100000 개로 제한합니다. /etc/sysctl.conf재부팅 후 설정이 그대로 유지되도록 파일 을 편집 하고 다음 줄을 넣어야합니다. 그렇게하려면 다음과 같이 구성 지시문을 추가하십시오.

fs.file-max = 100000

파일을 저장하고 닫습니다. 변경 사항을 적용하거나 다음 명령을 입력하려면 사용자가 로그 아웃했다가 다시 로그인해야합니다.

# sysctl -p

다음 명령으로 설정을 확인하십시오.

# cat /proc/sys/fs/file-max

또는:

# sysctl fs.file-max

위의 절차는 시스템 전체 파일 디스크립터 (FD) 한계를 설정하지만 다음과 같이 한계를 편집 하여 파일을 편집 httpd하여 사용자를 특정 한계로 제한 (또는 다른 사용자) 할 수 있습니다 ./etc/security/limits.conf/etc/security/limits.conf

httpd soft nofile 4096
httpd hard nofile 10240

그런 다음 확인하십시오.

# su - httpd
$ ulimit -Hn
$ ulimit -Sn

다른 Linux 배포판에 문제가있는 경우 다음을 확인하고 활성화 /etc/pam.d/login했는지 확인하십시오 pam_limits.so. 예 :

session required pam_limits.so


답변

서비스 인 경우 /etc/systemd/system/{ServiceName}.service추가 에서 제한을 설정하려고 시도 할 수 있습니다.LimitNOFILE=65536


답변