다른 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