내 응용 프로그램을 실행할 때 때때로에 대한 오류가 발생 too many files open
합니다.
실행시 ulimit -a
한계가 1024임을보고합니다. 한계를 1024 이상으로 늘리려면 어떻게합니까?
편집
ulimit -n 2048
하면 권한 오류가 발생합니다.
내 응용 프로그램을 실행할 때 때때로에 대한 오류가 발생 too many files open
합니다.
실행시 ulimit -a
한계가 1024임을보고합니다. 한계를 1024 이상으로 늘리려면 어떻게합니까?
편집
ulimit -n 2048
하면 권한 오류가 발생합니다.
답변:
당신은 항상 할 수 ulimit -n 2048
있습니다. 현재 쉘에 대한 한계 만 재설정하며 지정한 수는 하드 한계를 초과하지 않아야합니다.
각 운영 체제의 구성 파일에는 서로 다른 하드 제한 설정이 있습니다. 예를 들어 Solaris에서 하드 파일 열기 제한은 / etc / system에서 부팅시 설정할 수 있습니다.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
OS X의 경우 동일한 데이터가 /etc/sysctl.conf에 설정되어 있어야합니다.
kern.maxfilesperproc=166384
kern.maxfiles=8192
Linux에서 이러한 설정은 종종 /etc/security/limits.conf에 있습니다.
한계에는 두 가지가 있습니다.
소프트 제한은 모든 사용자가 설정할 수있는 반면 하드 제한은 루트 만 변경할 수 있습니다. 한계는 프로세스의 속성입니다. 하위 프로세스가 작성 될 때 상속되므로 init 스크립트에서 시스템 초기화 중에 시스템 전체 한계를 설정하고 사용자 로그인 중에 pam_limits를 사용하여 사용자 한계를 설정해야합니다.
컴퓨터를 부팅 할 때 종종 기본값이 설정됩니다. 따라서 개별 쉘에서 ulimit를 재설정하더라도 재부팅시 이전 값으로 다시 재설정 될 수 있습니다. 기본값을 변경하려는 경우 존재 ulimit 명령에 대해 부트 스크립트를 grep 할 수 있습니다.
ulimit
. 사용중인 것을 지정해야합니다 (예 : WSL, Cygwin).
Linux를 사용 중이고 권한 오류가 발생하면 /etc/limits.conf
또는 /etc/security/limits.conf
파일 에서 허용 된 한계를 늘려야 합니다 (파일이있는 위치는 특정 Linux 배포판에 따라 다름).
예를 들어, 컴퓨터의 모든 사용자가 열린 파일 수를 최대 10000까지 올리려면 파일에 줄을 추가 limits.conf
하십시오.
* hard nofile 10000
그런 다음 시스템에 로그 아웃하고 다시 로그인하면 다음을 수행 할 수 있습니다.
ulimit -n 10000
권한 오류가 없습니다.
root
사용자 에게 적용 되지 않습니다 . 한계 root hard nofile 10000
를 조정할지 여부 를 지정 해야합니다 root
.
ulimit
마침내 루트로 로그인했습니다. 그렇기 때문에 1024in을 계속 보았습니다 ulimit -a
. 와일드 케어를 바꾸고 *
내부를 추가했습니다 limits.conf
. 모든 것이 이제는 좋습니다 (ssh 키를 사용하는 메신저는 걱정하지 마십시오 : P)-감사합니다 !!!
/etc/security/limits.d/
.
1) 다음 줄을 추가하십시오 /etc/security/limits.conf
webuser hard nofile 64000
그런 다음 웹 사용자로 로그인
su - webuser
2) 웹 사용자를 위해 다음 두 파일 편집
다음 을 실행하여 .bashrc 및 .bash_profile 파일을 추가하십시오 .
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3) 로그 아웃 한 후 다시 로그인하여 변경 사항이 올바르게 작성되었는지 확인하십시오.
$ ulimit -a | grep open
open files (-n) 64000
그것과 그들 붐, 붐 붐.