Ubuntu 18.04에서 열린 최대 파일 제한을 늘리는 방법은 무엇입니까?


16

을 실행 ulimit -n 65536하고 다음 줄을 추가했습니다 /etc/security/limits.conf.

*    soft nofile 65536
*    hard nofile 65536
alix soft nofile 65536
alix hard nofile 65536
root soft nofile 65536
root hard nofile 65536

그리고 session required pam_limits.so둘 다에 추가되었습니다 .

  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

그리고 fs.file-max = 65536/etc/sysctl.d/60-file-max.conf.

여전히 ulimit -n세션 을 다시 시작하고 실행 한 후 4096 (이전 1024 이전) 만 얻습니다.

내가 무엇을 놓치고 있습니까?

답변:


12

매뉴얼에서 :

 -n     The maximum number of open file descriptors (most
        systems do not allow this value to be set)

systemd 이것에 대한 옵션이 있습니다 :

$ more /etc/systemd/system.conf | grep NOFILE
#DefaultLimitNOFILE=

그러나 이것은 또한 그래픽 사용자 설정에만 해당됩니다. 를 제거하면 #65536으로 설정할 수 있습니다.

Daniel Fernández의 코멘트 :

DefaultLimitNOFILE=65536 

에 필요할 수도 있습니다

/etc/systemd/user.conf 

1
언급도 잊어 버렸습니다.
Alix Axel

1
@AlixAxel :이 답변은에서 * - nofile 16384(16384 만 시도하고 있음) 외에도 저에게 효과적 이었습니다 /etc/security/limits.conf.
Doug Smythies 2014 년

65k는 가정이며 허용되는 것의 상단에 하드 코딩 된 제한이있을 것으로 예상됩니다. 더그가 표시된대로 낮은 시작 할 수 있습니다)
Rinzwind

"하지만 이것은 그래픽 사용자 설정에만 해당됩니다"는 무슨 뜻입니까?
sinan

1
참고 설정은 DefaultLimitNOFILE=65536또한에 필요할 수 있습니다/etc/systemd/user.conf
다니엘 페르난데스

2

우분투 18.04 단계별

이 모든 것이 오랫동안 도움이되기를 바랍니다.하지만 작동합니다 (증명)

우분투 18.04에 MongoDb를 설치하는 동안이 스레드를 발견했습니다.

https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/

당신이 볼 수 있듯이 그것은 꽤 오래되었지만 그것은 나를 위해 작동합니다.

여기 내가 한 일이 있습니다.

  1. MongoDb 권장 설정 ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )

    • -f (파일 크기) : 무제한
    • -t (CPU 시간) : 무제한
    • -v (가상 메모리) : 무제한 [1]
    • -l (메모리에 고정 된 크기) : 무제한
    • -n (파일 열기) : 64000
    • -m (메모리 크기) : 무제한 [1] [2]
    • -u (프로세스 / 스레드) : 64000
  2. 현재 한도 확인

ubuntu @ isdb-stage : ~ $ ulimit -a
코어 파일 크기 (블록, -c) 0
데이터 세그먼트 크기 (kbytes, -d) 무제한
스케줄링 우선 순위 (-e) 0
파일 크기 (블록, -f) 무제한
보류 신호 (-i) 7873
최대 잠금 메모리 (kbytes, -l) 16384
최대 메모리 크기 (kbytes, -m) 무제한
열린 파일 (-n) 1024
파이프 크기 (512 바이트, -p) 8
POSIX 메시지 큐 (바이트, -q) 819200
실시간 우선 순위 (-r) 0
스택 크기 (KB, -s) 8192
CPU 시간 (초, -t) 무제한
최대 사용자 프로세스 (-u) 7873
가상 메모리 (kbytes, -v) 무제한
파일 잠금 (-x) 무제한
  1. 변경해야 할 사항을 기록해 둡니다.

    • 메모리 내장 크기 는 무제한으로 설정해야합니다.
    • 파일을 열려면 64000으로 설정해야합니다.
    • 프로세스 / 스레드 * , 64000으로 설정해야합니다.
  2. 우분투는이 한계를 변경하는 방법에 대해 무엇을 말합니까?

$ man limits.conf

이름
   limits.conf-pam_limits 모듈의 구성 파일

기술
   pam_limits.so 모듈은 ulimit 제한, 우선 순위 및 동시 로그인 세션 수 제한을 사용자 로그인 세션에 적용합니다. 구성 파일 구문에 대한이 설명은

       /etc/security/limits.conf 파일 및 * .conf 파일 
       /etc/security/limits.d 디렉토리
  1. 충분히 명확 해 보입니다. /etc/security/limits.conf 파일을 편집하십시오. 알았어 알아낼 수있어

여기에 그 파일의 시작 부분이 있으며, 물론 그 안에 지침이있는 것을 보아라. 이것은 좋은 사람들이 작성한 오픈 소스 라는 것을 기억하라 ! :)

    vi /etc/security/limits.conf

    # /etc/security/limits.conf 
    # 각 줄은 다음과 같은 형식의 사용자 제한을 설명합니다.                                                                   
    #                                                                                
    #어디:                                                               
    #는 다음과 같습니다.
    #-사용자 이름

(자세한 내용은 파일을 직접 확인하십시오)
  1. 마지막으로 변경하십시오. MongoDb는 mongodb 그룹 및 사용자로 실행되므로 사용자 제한 만 높이는 것이 좋습니다. 여기저기서 '*'가 사용되는 것을 보았습니다. 보안 위험이 있습니다. 서버에 모든 한계를 부여하여 서버를 최대한 활용할 수 있습니다. 따라서 mongodb 사용자 만 사용할 수 있습니다.

내 변경 사항은 다음과 같습니다.-

mongodb 소프트 memlock 무제한
mongodb 하드 memlock 무제한
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb 소프트 nproc 64000
mongodb 하드 nproc 64000
  1. 마지막으로 man limits.conf 항목에서이를 기억하십시오.

    limits.conf-pam_limits 모듈의 구성 파일

    pam_limits 모듈이로드되어 있는지 확인하십시오.이 모든 제한 사항이 작동합니다. 이렇게하려면 /etc/pam.d/common-session을 편집하십시오. 물론 이것은 맨 페이지에도 있습니다.

sudo vi /etc/pam.d/common-session

# pam_limits.so가로드되도록하려면 이것을 추가하십시오.
필요한 세션 pam_limits.so

재부팅하면 (사용자 mongodb에 대한) 제한이 적용되었음을 표시합니다. 대신 '*'를 사용하여 적용한 경우 mongodb 사용자로 전환하지 않고도 확인할 수 있습니다. 이 명령을 실행하십시오.

$ ulimit -a

코어 파일 크기 (블록, -c) 0
데이터 세그먼트 크기 (kbytes, -d) 무제한
스케줄링 우선 순위 (-e) 0
파일 크기 (블록, -f) 무제한
보류 신호 (-i) 7873
최대 잠금 메모리 (kbytes, -l) 무제한
최대 메모리 크기 (kbytes, -m) 무제한
열린 파일 (-n) 64000
파이프 크기 (512 바이트, -p) 8
POSIX 메시지 큐 (바이트, -q) 819200
실시간 우선 순위 (-r) 0
스택 크기 (KB, -s) 8192
CPU 시간 (초, -t) 무제한
최대 사용자 프로세스 (-u) 64000
가상 메모리 (kbytes, -v) 무제한
파일 잠금 (-x) 무제한

보시다시피, 모든 것을 우리가 원하는 한도로 설정하십시오.

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