W Yosemite (10.10.1) występują różne błędy typu „zbyt wiele plików otwieranych w systemie”. Wyszukiwanie wokół sugeruje ustawienie kern.maxfiles
i kern.maxfilesperprocess
w /etc/sysctl.conf
.
Próbowałem tego i kern.maxfilesperprocess
nadal się uruchamia po ponownym uruchomieniu, ale kern.maxfiles
nie robi tego.
% cat /etc/sysctl.conf
# NB DO NOT COPY AND PASTE THIS INTO YOUR CONFIG FILE - IT DOESN'T WORK
kern.maxfiles=20480
kern.maxfilesperproc=18000
(restart)
% sysctl kern.maxfiles
kern.maxfiles: 12288
% sysctl kern.maxfilesperproc
kern.maxfilesperproc: 18000
Jeśli ustawię go ręcznie w wierszu polecenia, działa, więc nie wydaje mi się, że przekraczam górny limit:
% sudo sysctl -w kern.maxfiles=20480
kern.maxfiles: 12288 -> 20480
% sysctl kern.maxfiles
kern.maxfiles: 20480
Widziałem ostrzeżenia o zastąpieniu tych wartości, /etc/launchd.conf
ale nie mam tego pliku:
% cat /etc/launchd.conf
cat: /etc/launchd.conf: No such file or directory
W wyszukiwaniu w centrum uwagi nie ma innych wzmianek kern.maxfiles
, więc nie mam pomysłów. Jakieś inne sugestie?
Odpowiedzi:
Chociaż nie odpowiadając bezpośrednio na twoje pytanie, znajdziesz u superużytkownika dwa rozwiązania :
Aby dostosować limity otwartych plików w całym systemie w systemie Mac OS X Yosemite, musisz utworzyć dwa pliki konfiguracyjne. Pierwszy to plik listy właściwości (aka plist) w pliku „/Library/LaunchDaemons/limit.maxfiles.plist”, który zawiera następującą konfigurację XML:
Spowoduje to ustawienie limitu otwartych plików na 65536. Drugi plik konfiguracyjny plist powinien być przechowywany w
/Library/LaunchDaemons/limit.maxproc.plist
następującej treści:Oba pliki plist muszą być własnością „root: wheel” i mieć uprawnienia „-rw-r - r--”. Uprawnienia te powinny być domyślnie na miejscu, ale można je zapewnić, uruchamiając je
sudo chmod 644 <filename>
. Chociaż powyższe kroki spowodują prawidłowe ustawienie ogólnosystemowych limitów otwartych plików po ponownym uruchomieniu, możesz je zastosować ręcznie, uruchamiająclaunchctl limit
.Oprócz ustawiania tych limitów na poziomie systemu zalecamy również ustawienie na poziomie sesji, dołączając następujące wiersze do pliku „bashrc”, „bashprofile” lub pliku analogicznego:
Podobnie jak pliki plist, twój bashrc lub podobny plik powinien mieć
-rw-r--r--
uprawnienia. W tym momencie możesz ponownie uruchomić komputer i wpisać ulimit -n w swoim terminalu. Jeśli twój system jest poprawnie skonfigurowany, powinieneś zobaczyć, że maxfiles został ustawiony na 65536.Dostosuj maxfiles i limit maxproc według potrzeb
Źródło: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/
/etc/launchd.conf
Wydaje mi się, że modyfikowanie liczby zapytań Google i sugestii SO nie działa w Yosemite (10.10). Po wielu kombinacjach zmiany / restartu / testu skończyło się to modyfikowaniem (lub tworzeniem, jeśli nie istnieje)/etc/sysctl.conf
pliku.Właśnie to musiałem wprowadzić, aby działało
Nie jestem pewien, czy „kern.maxfiles” musi tam być, ale kiedy już go tam miałem, nadal miałem ten sam problem, kiedy dodałem „kern.maxfilesperproc” wszystko zaczęło działać.
Jeśli jedno lub oba z tych rozwiązań działają dla Ciebie, przypisz oryginalne plakaty.
źródło
Dzięki połączeniu bezpiecznego / pełnego uruchamiania, dziennika konsoli i Google, znalazłem podobny problem, który doprowadził mnie do odkrycia końcowego miejsca w linii maxfiles. Usunięcie tego miejsca rozwiązało problem.
Poprawione ustawienia (te można bezpiecznie skopiować):
źródło
Usuwanie końcowych białych znaków zajmuje tylko jeden krok:
Polecenie powyżej zapisuje również kopię zapasową w
/etc/sysctl.conf~
.źródło