ulimit 수정 : 파일 열기 : 제한을 수정할 수 없음 : 작업이 허용되지 않습니다


13

다른 GNU / Linux 설치에서 이것을 테스트했습니다.

perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}'

시스템 A와 D

내가 맞은 첫 번째 한계는 1024입니다. 이것을 /etc/security/limits.conf에 넣으면 쉽게 올릴 수 있습니다.

*                hard    nofile          1048576

그런 다음 다음을 실행하십시오.

ulimit -n 1048576
echo 99999999 | sudo tee /proc/sys/fs/file-max

이제 테스트는 1048576으로 진행됩니다.

그러나 1048576 이상으로 올릴 수없는 것 같습니다. 1048577을 limits.conf에 넣으면 단순히 무시됩니다.

그 원인은 무엇입니까?

시스템 B

시스템 BI에서는 1048576까지 도달 할 수 없습니다.

echo 99999999 | sudo tee /proc/sys/fs/file-max

/etc/security/limits.conf :

*                hard    nofile          1048576

여기에 나는 얻는다 :

$ ulimit -n 65537
bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 65536
#OK

그 한계는 어디에서 왔습니까?

시스템 C

이 시스템에는 또한 limits.conf의 1048576 제한과 / proc / sys / fs / file-max의 99999999 제한이 있습니다.

그러나 여기서 한계는 4096입니다.

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

1048576 이상으로 올리려면 어떻게해야합니까?

(자아 참고 : 할 일을하지 : echo 18446744073709551616 | sudo tee /proc/sys/fs/file-max)


1
bash는 : ulimit를 : 열려있는 파일 : 제한을 수정할 수 없습니다 : 나는 정확히 같은 문제가, 한계가 나는 다음과 같은 오류가 나는 이상 가면 1048576 것 같다 작동 할 수 없습니다
Abbadon

안녕하세요, 매우 비슷한 문제가 있습니다. 이 다른 시스템이 무엇인지에 대한 자세한 내용을 제공하는 것이 매우 도움이 될 것이라고 생각합니다.
Time4Tea

답변:


4

다음을 /etc/ssh/sshd_config포함 하는지 확인하십시오 .

UsePAM=yes

그리고 그것은 /etc/pam.d/sshd포함합니다 :

session    required   pam_limits.so

왜 1048576이 최대인지에 대한 답은 여전히 ​​없습니다.

1048576은 프로세스 당 것 같습니다. 따라서 여러 프로세스를 가짐으로써이 한계를 극복 할 수 있습니다.


4
이것이 실제로 자신의 문제에 대한 해결책이라면 문제와 위의 해결책 사이에 더 많은 연결을 그리는 것이 좋습니다.
Jeff Schaller

2
재 : 1048576 (= 2 ^ 10 * 2 ^ 10 = 1024 ^ 2, 참조). 이 답변에는 다음과 같은 관련 정보가있을 수 있습니다. stackoverflow.com/a/1213069/2320823
saladi

1
ssh는 무엇과 관련이 있습니까?
Linas

@Linas에 동의합니다. 죄송합니다. 답변과 질문 사이의 연관성이 불분명하다고 생각합니다.
Time4Tea
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.