sql >> Database teknologi >  >> NoSQL >> MongoDB

For mange åbne filer, mens du sikrer indeks mongo

NB: Denne løsning virker/måske ikke fungere med nyere Mac OS'er (kommentarer angiver>10.13?). Tilsyneladende er der foretaget ændringer af sikkerhedsmæssige årsager.

Konceptuelt gælder løsningen - følgende er et par kilder til diskussion:

  • https://wilsonmar.github.io/maximum-limits/
  • https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
  • https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7 -1

--

Jeg har haft det samme problem (udførelse af en anden operation, men stadig en "For mange åbne filer"-fejl), og som lese siger, ser det ud til at være nede på 'maxfiles'-grænsen på maskinen, der kører mongod.

På en mac er det bedre at tjekke grænser med:

sudo launchctl limit

Dette giver dig:

<limit name> <soft limit> <hard limit>
    cpu         unlimited      unlimited      
    filesize    unlimited      unlimited      
    data        unlimited      unlimited      
    stack       8388608        67104768       
    core        0              unlimited      
    rss         unlimited      unlimited      
    memlock     unlimited      unlimited      
    maxproc     709            1064           
    maxfiles    1024           2048  

Det, jeg gjorde for at omgå problemet, var midlertidigt at sætte grænsen højere (min var oprindeligt noget i retning af blød:256, hård:1000 eller sådan noget mærkeligt):

sudo launchctl limit maxfiles 1024 2048

Kør derefter forespørgslen/indekseringsoperationen igen og se, om den går i stykker. Hvis ikke, og for at beholde de højere grænser (de nulstilles, når du logger ud af den shell-session, du har indstillet dem på), skal du oprette en '/etc/launchd.conf'-fil med følgende linje:

limit maxfiles 1024 2048

(eller føj den linje til din eksisterende launchd.conf-fil, hvis du allerede har en).

Dette vil indstille maxfilen via launchctl på hver shell ved login.



  1. mongodb aggregeringssort

  2. Node.js, Socket.io, Redis pub/sub høj lydstyrke, lav latency vanskeligheder

  3. Padding i SQL

  4. Skriv din første rådgiver