복붙노트

[MONGODB] MongoDB를이 : MongoDB의에서 최대 연결을 증가

MONGODB

MongoDB를이 : MongoDB의에서 최대 연결을 증가

나는이 문제를 해결하는 당신의 도움이 필요합니다

이 내 리눅스 서버 내에서는 ulimit -a의 결과입니다

   core file size          (blocks, -c) 0
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 24576
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

지금이 내 MongoDB의의 결과는

db.serverStatus().connections

{ "current" : 4, "available" : 5996 }

나는 10000 더 MongoDB의 연결을 증가합니다.

내 mongod1.conf처럼 다른 옵션을 시도

fork    = true
port    = 27017
maxConns = 10000

또한,이 동안은 MongoDB를 시작

mongod ulimit -n 10000  --config mongod1.conf 

그러나 아무것도 일하지 모든 실패, 제가 사전에, 내 경우에는 감사를 10000에 대한 연결을 증가시킬 수있는 방법을 알려 주시기 바랍니다.

해결법

  1. ==============================

    1.또한 파일 기술자 및 리눅스 커널이 허용하는 프로세스 당 파일 기술자의 수의 수를 범프 필요가있다.

    또한 파일 기술자 및 리눅스 커널이 허용하는 프로세스 당 파일 기술자의 수의 수를 범프 필요가있다.

    리눅스에서이 / proc 디렉토리 /에서 sys / FS / 파일 최대에서 또는 sysctl을 유틸리티로 파일을 편집하여 구성해야합니다.

    리눅스 시스템에서 한계를 편집하기위한 더 자세한 설명 쓰기 업이 링크를 확인하십시오 : http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/

  2. ==============================

    2.당신이 시도 유무 :

    당신이 시도 유무 :

    --maxConns arg       max number of simultaneous connections
    

    (출처 : mongod 문서)

  3. ==============================

    3.MongoDB에 들어오는 연결에 제한이없는 것 같다 당신은, 시스템 전체의 제한을 수정하는 공식 문서를 참조한다 :

    MongoDB에 들어오는 연결에 제한이없는 것 같다 당신은, 시스템 전체의 제한을 수정하는 공식 문서를 참조한다 :

    권장되는 ulimit 설정 (offical 한 문서) :

    변경 사항을 적용하도록에서 ulimit 설정을 변경 한 후 mongod와 mongos 인스턴스를 다시 시작해야합니다.

    출처: 수 - 중 - 연결 추천-ulimit를-설정

  4. ==============================

    4.방법 1 systemd 사용하는 경우 (systemctl 다시 시작 mongod)

    방법 1 systemd 사용하는 경우 (systemctl 다시 시작 mongod)

    sudo mkdir /etc/systemd/system/mongod.service.d/
    sudo vi /etc/systemd/system/mongod.service.d/limits.conf
    

    다음 추가 :

    [Service]
    LimitFSIZE=infinity
    LimitCPU=infinity
    LimitAS=infinity
    LimitMEMLOCK=infinity
    LimitNOFILE=64000
    LimitNPROC=64000
    

    그런 다음 실행 :

    systemctl daemon-reload
    systemctl restart mongod
    

    방법 2 만약 NO systemd (서비스 mongod 다시 시작)

    sudo vi /etc/security/limits.d/99-mongodb.conf
    

    무언가를 같이 추가 :

    *       -       nproc   64000
    *       -       nofile  64000
    *       -       fsize   unlimited
    *       -       cpu     unlimited
    *       -       memlock unlimited
    *       -       as      unlimited
    *       -       rss     unlimited
    

    이 와일드 카드의 * 참고. 그러나 특정 사용자 또는 그룹을 사용할 수 있습니다. 그런 다음 세션 mongod를 다시 시작합니다.

  5. ==============================

    5.당신은 /etc/limits.conf 또는 귀하의 분포에 따라는 /etc/security/limits.conf 하드 한계를 변경해야 할 수도 있습니다.

    당신은 /etc/limits.conf 또는 귀하의 분포에 따라는 /etc/security/limits.conf 하드 한계를 변경해야 할 수도 있습니다.

  6. from https://stackoverflow.com/questions/16713415/mongodb-increasing-max-connections-in-mongodb by cc-by-sa and MIT license