sql >> Base de Datos >  >> NoSQL >> MongoDB

Demasiados archivos abiertos mientras se asegura index mongo

Nota: Esta solución funciona o no funciona con los sistemas operativos Mac recientes (los comentarios indican> 10.13?). Aparentemente, se han realizado cambios por motivos de seguridad.

Conceptualmente, se aplica la solución; a continuación se presentan algunas fuentes de discusión:

  • https://wilsonmar.github.io/límites-máximos/
  • https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
  • https://superuser.com/questions/433746/existe-una-solución-para-los-demasiados-archivos-abiertos-en-el-error-del-sistema-en-os-x-10-7 -1

--

He tenido el mismo problema (ejecutando una operación diferente, pero aun así, aparece el error "Demasiados archivos abiertos") y, como dice Lese, parece estar en el límite de "archivos máximos" en la máquina que ejecuta mongod.

En una Mac, es mejor verificar los límites con:

sudo launchctl limit

Esto te da:

<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  

Lo que hice para solucionar el problema fue establecer temporalmente un límite más alto (el mío originalmente era algo así como suave:256, duro:1000 o algo raro como eso):

sudo launchctl limit maxfiles 1024 2048

Luego vuelva a ejecutar la operación de consulta/indexación y vea si se rompe. De lo contrario, y para mantener los límites más altos (se restablecerán cuando cierre la sesión de shell en la que los configuró), cree un archivo '/etc/launchd.conf' con la siguiente línea:

limit maxfiles 1024 2048

(o agregue esa línea a su archivo launchd.conf existente, si ya tiene uno).

Esto configurará el maxfile a través de launchctl en cada shell al iniciar sesión.