MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Muitos arquivos abertos enquanto garante o índice mongo


NB: Esta solução funciona/pode não funcionar com Mac OSs recentes (os comentários indicam>10.13?). Aparentemente, as alterações foram feitas para fins de segurança.

Conceitualmente, a solução se aplica - a seguir estão algumas fontes de discussão:
  • 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

--

Eu tive o mesmo problema (executando uma operação diferente, mas ainda assim, um erro "Muitos arquivos abertos") e, como diz lese, parece estar no limite de 'maxfiles' na máquina que executa o mongod.

Em um mac, é melhor verificar os limites com:
sudo launchctl limit

Isso lhe 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  

O que fiz para contornar o problema foi definir temporariamente o limite mais alto (o meu era originalmente algo como soft:256, hard:1000 ou algo estranho assim):
sudo launchctl limit maxfiles 1024 2048

Em seguida, execute novamente a operação de consulta/indexação e veja se ela quebra. Caso contrário, e para manter os limites mais altos (eles serão redefinidos quando você sair da sessão do shell em que os configurou), crie um arquivo '/etc/launchd.conf' com a seguinte linha:
limit maxfiles 1024 2048

(ou adicione essa linha ao seu arquivo launchd.conf existente, se você já tiver um).

Isso definirá o maxfile via launchctl em cada shell no login.