Poznámka: Toto řešení funguje/nemusí fungovat s nejnovějšími Mac OS (komentáře uvádějí>10.13?). Zřejmě byly provedeny změny z bezpečnostních důvodů.
Koncepčně platí řešení - následuje několik zdrojů k diskuzi:
- 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
--
Měl jsem stejný problém (provádění jiné operace, ale stále se objevila chyba "Příliš mnoho otevřených souborů") a jak říká les, zdá se, že je to až na limitu 'maxfiles' na počítači, na kterém běží mongod.
Na počítačích Mac je lepší zkontrolovat limity pomocí:
sudo launchctl limit
To vám dává:
<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
Abych tento problém obešel, bylo dočasně nastavit vyšší limit (můj byl původně něco jako měkký:256, tvrdý:1000 nebo něco podobného):
sudo launchctl limit maxfiles 1024 2048
Poté znovu spusťte operaci dotazu/indexování a zjistěte, zda se přeruší. Pokud ne a chcete-li zachovat vyšší limity (budou resetovány, když se odhlásíte z relace shellu, na kterou jste je nastavili), vytvořte soubor '/etc/launchd.conf' s následujícím řádkem:
limit maxfiles 1024 2048
(nebo přidejte tento řádek do svého stávajícího souboru launchd.conf, pokud jej již máte).
Toto nastaví maxfile přes launchctl na každém shellu při přihlášení.