루트 사용자에 대한 ulimit 결정


8

루트 사용자의 최대 열린 파일 디스크립터를 늘렸다 고 생각합니다. 이 행을 /etc/security/limits.conf에 추가하면됩니다 :

*         -    nofile            2048

우리는 우리의 응용 프로그램 (솔 루트-루트로 실행 됨)에 1098 파일이 열려 있음을 알 수 있기 때문에 루트 사용자의 한계가 증가했다고 확인했습니다. 그러나 루트 사용자에게 몇 개의 열린 파일이 허용되는지는 확실하지 않습니다. 이 명령이 작동 할 것으로 예상되지만 다음과 같은 것은 아닙니다.

$ sudo -u root -s "ulimit -Sn"
1024

어떤 아이디어? 감사!


limits.conf에 nofile에 대한 다른 항목이 있습니까? 아마도 재정의 중일 수 있습니다. limits.conf의 가능한 구문 분석 오류는 어떻습니까? 전체 파일을 첨부 할 수 있습니까?
Andrew Case

selinux를 실행하고 있습니까? ls -lZ /etc/security/limits.conf
Andrew Case

답변:


6

solr실행중인 프로세스의 PID를 얻은 다음 프로세스 cat /proc/$SOLR_PID/limits의 실제 한계를 알려줍니다.

solr분리 된 권한이없는 사용자 와 같은 것을 실행하는 것이 좋습니다 . 이 작업을 수행 할 때 여러 옵션 ( limits.conf 또는 ulimit -n 2048init 스크립트에 추가 ...)이 있습니다. 마지막 것은 반짝 거리지 않지만 빠른 설정 및 데몬 재시작을 위해 작동합니다.

RANT : 서비스를 잃을 것이므로 다시 시작할 수 없다고 말하지 마십시오. 이 경우 어쨌든 HA 설정이 있어야합니다 :)


5

에서 열린 파일 수를 변경 한 후 /etc/security/limits.conf사용자는 로그 아웃했다가 다시 로그인해야 적용됩니다. 따라서 이것을 시도하십시오 :

$ sudo su -
# ulimit -Sn

2

나는이 질문에 답이 있지만 실제 해결책이 아니라 해결 방법처럼 보입니다.

우분투에 따르면 이것은 버그가 아니라 문서 문제입니다 : https://bugs.launchpad.net/ubuntu/+source/pam/+bug/65244

신고 해 주셔서 감사합니다. 당신이 말했듯이 이것은 pam의 버그가 아니라 문서 문제입니다. 사용자 루트에 대한 제한을 명시 적으로 허용한다는 사실은 얼마 전에 해결되었지만 (2000 년 8 월 30 일) 제한을 적용하려면 사용자 루트의 이름을 명시 적으로 지정해야합니다.

따라서 루트 사용자를 포함하여 모든 사용자에서 ulimit를 변경하려면 다음을 지정해야합니다.

*         -    nofile            2048
root      -    nofile            2048
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.