Hinweis: Diese Lösung funktioniert/funktioniert möglicherweise nicht mit neueren Mac-Betriebssystemen (Kommentare geben>10.13 an?). Anscheinend wurden aus Sicherheitsgründen Änderungen vorgenommen.
Konzeptionell trifft die Lösung zu - im Folgenden einige Diskussionsquellen:
- https://wilsonmar.github.io/maximum-limits/
- https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
- https://superuser.com/questions/433746/gibt-es-einen-fix-für-den-zu-vielen-offenen-dateien-im-systemfehler-auf-os-x-10-7 -1
--
Ich hatte das gleiche Problem (Ausführen einer anderen Operation, aber immer noch ein "Too many open files"-Fehler), und wie lese sagt, scheint es am 'maxfiles'-Limit auf dem Computer zu liegen, auf dem mongod ausgeführt wird.
Auf einem Mac ist es besser, die Limits zu überprüfen mit:
sudo launchctl limit
Das ergibt:
<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
Was ich getan habe, um das Problem zu umgehen, war, das Limit vorübergehend höher zu setzen (meins war ursprünglich so etwas wie weich:256, hart:1000 oder so etwas Seltsames):
sudo launchctl limit maxfiles 1024 2048
Führen Sie dann die Abfrage-/Indizierungsoperation erneut aus und prüfen Sie, ob sie abbricht. Wenn nicht, und um die höheren Limits beizubehalten (sie werden zurückgesetzt, wenn Sie sich von der Shell-Sitzung abmelden, auf die Sie sie gesetzt haben), erstellen Sie eine '/etc/launchd.conf'-Datei mit der folgenden Zeile:
limit maxfiles 1024 2048
(oder fügen Sie diese Zeile Ihrer bestehenden launchd.conf-Datei hinzu, falls Sie bereits eine haben).
Dadurch wird die maxfile über launchctl auf jeder Shell beim Login gesetzt.