열린 파일 제한을 4096 (Ubuntu) 이상으로 늘릴 수 없음


34

우분투 17.04에 있습니다. 열린 파일 제한을 늘리려 고하는데 온라인에서 찾은 지침이 작동하지 않습니다. 나는 4096까지 올라갈 수 있지만 그 이상은 지나갈 수 없습니다.

$ ulimit -n
1024
$ ulimit -n 4096
$ ulimit -n
4096

작동합니다. 이것은하지 않습니다 :

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

하드 한계 때문인 것으로 보입니다.

$ ulimit -Hn
4096

다음 행을 /etc/security/limits.conf에 추가하려고했습니다.

*                hard    nofile          65535
*                soft    nofile          65535
root             soft    nofile          65535
root             hard    nofile          65535

또한이 행을 /etc/pam.d/common-session 및 /etc/pam.d/common-session-noninteractive에 추가했습니다.

session required pam_limits.so

그렇게 한 후 컴퓨터를 재부팅했습니다. limits.conf를 변경해도 아무런 영향이없는 것 같습니다. 하드 한계는 여전히 4096에 머물러있어 더 이상 올라갈 수 없습니다. 열린 파일 제한을 늘리려면 어떻게합니까?


추가 구성 정보는 다음과 같습니다.

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

답변:


56

좋아, 나는 마침내 이것을 알아 냈다. /etc/security/limits.conf에서 설정 한 제한이 적용되었지만 그래픽 로그인에는 적용되지 않았습니다. 터미널 창에서 다음과 같이 확인할 수 있습니다.

$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535

더 많은 연구를 통해이 버그 보고서 가 나에게 올바른 방향으로 안내되었습니다. 로그인 셸에서 사용되는 제한을 수정하려면 /etc/systemd/user.conf에 다음 줄을 추가해야합니다.

DefaultLimitNOFILE=65535

이 변경 사항은 작동하지만 소프트 한계에만 영향을줍니다. (한도 4096의 하드 한계를 유지 한 채로 둡니다.) 하드 한계에도 영향을 주려면 동일한 변경으로 /etc/systemd/system.conf를 수정해야합니다.

/etc/pam.d에서 변경 한 내용은 필요하지 않았습니다. 적어도 우분투에서는 이미 작동하고 있습니다. 또한, 설정을 변경할 필요가 없었다 root*의 limits.conf에. mkasberg적어도 나의 유스 케이스에는 한계를 변경하는 것으로 충분했습니다.


요약해서 말하자면

로 표시된 제한을 늘리려면 ulimit -n다음을 수행해야합니다.

  • 다음 행으로 /etc/systemd/user.conf 및 /etc/systemd/system.conf를 수정하십시오 (그래픽 로그인을 처리 함).

    DefaultLimitNOFILE=65535
    
  • 다음 줄로 /etc/security/limits.conf를 수정하십시오 (GUI 이외의 로그인을 처리합니다) :

    mkasberg hard nofile 65535
    mkasberg soft nofile 65535
    
  • 변경 사항을 적용하려면 컴퓨터를 재부팅하십시오.


2
DefaultLimitNOFILE=65535트릭을했다. 그러나 왜 /etc/security/limits.conf 작동하지 않습니까?
Suvitruf는 Reinstate Monica

6
GUI 로그인은 systemd를 사용하는데, /etc/systemd/system.conf터미널 세션 ( /etc/security/limits.conf) 의 일반 구성과는 독립적 인 자체 구성 ( )을 가지고 있습니다 . 왜 이런 식으로 구현되었는지 알기 위해 systemd에 대해 충분하지 않습니다.
mkasberg

1
그것이 무시 있기 때문에 @Suvitruf systemd 시스템. 답변을 게시하고 있습니다.
Marc.2377

1
root사용자 제한은 *그룹 지정자 또는 그룹 지정자가 지정할 수 없다는 점을 지적하고 싶습니다 . root리터럴은 명시 적으로 지정해야합니다.
Petr Javorik

2
이것은 재부팅 후 저에게 효과적입니다 .
Shihe Zhang

14

/etc/security/limits.conf파일 에서 아무것도 변경할 필요가 없으며 systemd를 사용하는 경우 무시됩니다.

( 네트워크의 다른 질문 에 대한 수정 된 답변을 재현 중 ...)

기본값 /etc/systemd/system.conf/etc/systemd/user/conf파일 을 편집하지 않으려는 사람들을위한 대안 :

  1. /etc/systemd/system.conf.d/limits.conf다음 내용 으로 새 파일 을 작성하십시오 .

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. systemctl daemon-reexec루트로 실행

  3. 로그 아웃 후 다시 로그인

  4. 로 새 한도를 확인하십시오 ulimit -n.

자세한 내용은 systemd-system.conf맨 페이지 를 참조하십시오.


내 우분투 18.10 시스템에서 문제의 파일은에 /etc/systemd/system.conf있습니다. 트릭을 수행 한 것으로 변경 사항을 확인하십시오. 감사합니다.
스티븐 케네디

1
나를 위해 로그 아웃하면 작동하지 않지만 (Ubuntu 18.04) 다시 시작하면 작업이 완료되었습니다. 매우 우아한 솔루션입니다. 감사합니다.
stann1

0

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

user@paresh.com:~$ ulimit -Hn
4096

ulimit질문을 통해 설명 하듯 이을 사용하여 낮출 수 는 있지만 늘릴 수는 없습니다. ulimit매뉴얼 설명 :

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

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

user hard nofile 9999

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

user@paresh.com:~$ ulimit -Hn
9999

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


0
  1. /etc/systemd/system/sonar.service를 편집하십시오.

  2. 이 두 줄을 서비스 아래에 추가하십시오.

[서비스]

LimitMEMLOCK = 무한대

제한 NOFILE = 65535

  1. systemctl 데몬 재로드
  2. systemctl 재시작 소나

이것은 나를 위해 작동합니다.


0

TL; DR 나는 답변을 집중해야 할 필요성을 느꼈기 때문에 찾기가 더 쉬워졌습니다. 모든 조각을 모아서 올바르게 작동하도록 나이를 먹었습니다 ...

고려해야 할 두 곳이 있습니다.

  1. GUI 세션

    $ grep DefaultLimitNOFILE /etc/systemd/system.conf
    DefaultLimitNOFILE=65535
    

    또는 더 나은 여기 :

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. 쉘 환경

    $ grep nofile /etc/security/limits.conf
    user soft nofile 65535
    user hard nofile 65535`
    

    또는 더 나은 여기 :

    $ grep nofile /etc/security/limits.d/user.conf
    user soft nofile 65535
    user hard nofile 65535
    
  3. 위 파일의 설정을 변경 한 후 재부팅 한 후 다음을 사용하여 한계를 확인하십시오. ulimit -n -Hn -Sn

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