Obs! Den här lösningen fungerar/kanske inte fungerar med nyare Mac OS (kommentarer anger>10.13?). Tydligen har ändringar gjorts av säkerhetsskäl.
Konceptuellt gäller lösningen - följande är några diskussionskällor:
- 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
--
Jag har haft samma problem (att köra en annan operation, men fortfarande ett "För många öppna filer"-fel), och som lese säger, det verkar vara nere på "maxfiles"-gränsen på maskinen som kör mongod.
På en mac är det bättre att kontrollera gränser med:
sudo launchctl limit
Detta ger 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
Vad jag gjorde för att komma runt problemet var att tillfälligt sätta gränsen högre (min var ursprungligen något i stil med mjuk:256, hård:1000 eller något konstigt sånt):
sudo launchctl limit maxfiles 1024 2048
Kör sedan frågan/indexeringsoperationen igen och se om den går sönder. Om inte, och för att behålla de högre gränserna (de kommer att återställas när du loggar ut från skalsessionen du har ställt in dem på), skapa en '/etc/launchd.conf'-fil med följande rad:
limit maxfiles 1024 2048
(eller lägg till den raden i din befintliga launchd.conf-fil, om du redan har en).
Detta kommer att ställa in maxfilen via launchctl på varje skal vid inloggning.