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

Troppi file aperti mentre assicurati index mongo

NB: Questa soluzione funziona/potrebbe non funzionare con i recenti sistemi operativi Mac (i commenti indicano>10.13?). Apparentemente, sono state apportate modifiche per motivi di sicurezza.

Concettualmente, la soluzione si applica:di seguito sono riportate alcune fonti di discussione:

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

--

Ho avuto lo stesso problema (eseguendo un'operazione diversa, ma ancora un errore "Troppi file aperti") e, come dice lese, sembra essere dovuto al limite di "maxfiles" sulla macchina che esegue mongod.

Su un Mac, è meglio controllare i limiti con:

sudo launchctl limit

Questo ti dà:

<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  

Quello che ho fatto per aggirare il problema è stato impostare temporaneamente il limite più alto (il mio era originariamente qualcosa come soft:256, hard:1000 o qualcosa di strano del genere):

sudo launchctl limit maxfiles 1024 2048

Quindi riesegui l'operazione di query/indicizzazione e verifica se si interrompe. In caso contrario, e per mantenere i limiti più alti (si reimpostano quando esci dalla sessione della shell su cui li hai impostati), crea un file '/etc/launchd.conf' con la seguente riga:

limit maxfiles 1024 2048

(o aggiungi quella riga al tuo file launchd.conf esistente, se ne hai già uno).

Questo imposterà il maxfile tramite launchctl su ogni shell al login.