NB: Solusi ini tidak / mungkin tidak berfungsi dengan Mac OS terbaru (komentar menunjukkan> 10.13?). Rupanya, perubahan telah dilakukan untuk tujuan keamanan.
Secara konseptual, solusinya berlaku - berikut adalah beberapa sumber diskusi:
- 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
--
Saya memiliki masalah yang sama (mengeksekusi operasi yang berbeda, tetapi tetap saja, kesalahan "Terlalu banyak file yang terbuka"), dan seperti yang dikatakan lese, tampaknya ini disebabkan oleh batas 'maxfiles' pada mesin yang menjalankan mongod.
Di mac, lebih baik memeriksa batas dengan:
sudo launchctl limit
Ini memberi Anda:
<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
Apa yang saya lakukan untuk mengatasi masalah adalah untuk sementara menetapkan batas yang lebih tinggi (saya awalnya sesuatu seperti lunak:256, keras:1000 atau sesuatu yang aneh seperti itu):
sudo launchctl limit maxfiles 1024 2048
Kemudian jalankan kembali operasi kueri/pengindeksan dan lihat apakah itu rusak. Jika tidak, dan untuk menjaga batas yang lebih tinggi (mereka akan diatur ulang saat Anda keluar dari sesi shell yang telah Anda atur), buat file '/etc/launchd.conf' dengan baris berikut:
limit maxfiles 1024 2048
(atau tambahkan baris tersebut ke file launchd.conf yang ada, jika Anda sudah memilikinya).
Ini akan mengatur maxfile melalui launchctl pada setiap shell saat login.