NB: Giải pháp này không / có thể không hoạt động với Mac OS gần đây (nhận xét cho biết> 10.13?). Rõ ràng, các thay đổi đã được thực hiện vì mục đích bảo mật.
Về mặt khái niệm, giải pháp được áp dụng - sau đây là một số nguồn thảo luận:
- 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
-
Tôi đã gặp vấn đề tương tự (thực hiện một thao tác khác, nhưng vẫn xảy ra lỗi "Quá nhiều tệp đang mở") và như lese nói, nó dường như đã xuống đến giới hạn 'maxfiles' trên máy chạy mongod.
Trên máy mac, tốt hơn nên kiểm tra các giới hạn bằng:
sudo launchctl limit
Điều này mang lại cho bạn:
<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
Những gì tôi đã làm để giải quyết vấn đề là tạm thời đặt giới hạn cao hơn (ban đầu của tôi là một cái gì đó như soft:256, hard:1000 hoặc một cái gì đó kỳ lạ như vậy):
sudo launchctl limit maxfiles 1024 2048
Sau đó, chạy lại thao tác truy vấn / lập chỉ mục và xem nó có bị hỏng không. Nếu không, và để giữ các giới hạn cao hơn (chúng sẽ đặt lại khi bạn đăng xuất khỏi phiên shell mà bạn đã đặt), hãy tạo tệp '/etc/launchd.conf' với dòng sau:
limit maxfiles 1024 2048
(hoặc thêm dòng đó vào tệp launcd.conf hiện có của bạn, nếu bạn đã có).
Thao tác này sẽ đặt maxfile thông qua launcherctl trên mọi trình bao khi đăng nhập.