Próbuję zrobić coś, co wymaga dużej liczby deskryptorów plików
sudo ulimit -n 12288
jest tak wysoki, jak chce Snow Leopard; poza tym skutkuje
/ usr / bin / ulimit: wiersz 4: ulimit: otwórz pliki: nie można zmodyfikować limitu: niepoprawny argument.
Chcę zwiększyć liczbę znacznie wyżej, powiedzmy 100000. Czy to możliwe?
mac
osx-snow-leopard
ulimit
file-descriptors
Chris Poole
źródło
źródło
echo limit maxfiles 10000 10000|sudo tee -a /etc/launchd.conf
i restartowanie działa dla mnie w Mavericks.Odpowiedzi:
Użycie
ulimit
polecenia zmienia tylko limity zasobów dla bieżącej powłoki i jej elementów podrzędnych isudo ulimit
tworzy powłokę główną, dostosowuje jej limity, a następnie kończy działanie (tym samym, o ile widzę, nie ma rzeczywistego efektu).Aby przekroczyć 12288, musisz dostosować jądro
kern.maxfiles
ikern.maxfilesperproc
parametry, a także (przynajmniej zgodnie z tym wpisem na blogu , który jest podsumowaniem tej dyskusji ) limit uruchomienia. Możesz użyć,launchctl limit
aby dostosować je wszystkie naraz:Aby ustawić to na stałe (tzn. Nie resetować po ponownym uruchomieniu), utwórz
/etc/launchd.conf
zawierające:Następnie możesz użyć
ulimit
(ale bezsudo
), aby dostosować limit procesu.Jeśli tak się nie stanie, być może w twoim jądrze występują ograniczenia wielkości. Jeśli Twój model to obsługuje , pomocne może być uruchomienie jądra w trybie 64-bitowym .
źródło
sudo launchctl limit maxfiles 1000000 unlimited
Ani twardy, ani miękki limit dla „maxfiles” nie może być nieograniczony. Użyj obu parametrów numerycznych.launchd.conf
. Myślę, że jeśli liczba jest zbyt mała, może to uniemożliwić korzystanie z komputera. Na przykład użyłemlimit maxfiles 1024 1024
i bardzo ciężko mi było to zmienić.Następujące powinny rozwiązać większość rozwiązań (i są wymienione w kolejności ich hierarchii):
Uwagi:
źródło
Wygląda na to, że istnieje zupełnie inna metoda zmiany limitu otwartych plików dla każdej wersji OS X!
W przypadku OS X Sierra (10.12.X) musisz:
1. W
Library/LaunchDaemons
pliku o nazwielimit.maxfiles.plist
i wklej następujące elementy (możesz swobodnie zmienić dwie liczby (odpowiednio miękkie i twarde ograniczenia):2. Zmień właściciela nowego pliku:
3. Załaduj te nowe ustawienia:
4. Na koniec sprawdź, czy limity są prawidłowe:
źródło
Wygląda na to, że OS X Lion nie zezwoli na „nieograniczoną” wartość:
Podanie wartości liczbowych dla miękkiego i twardego limitu wykonuje zadanie:
źródło
-1
jako wartości powoduje12288
. Możliwe jest użycie większych wartości liczbowych, npsudo launchctl limit maxfiles 15000 150000
. Nie jestem jednak pewien, czy te ustawienia mają wpływ.Na Mavericks jest to proste. Jako zwykły użytkownik:
ulimit -n 8192
Możesz sprawdzić zaktualizowane ustawienia za pomocą
ulimit -a
Na mojej maszynie:
źródło
echo limit maxfiles 10000 10000|sudo tee -a /etc/launchd.conf
a następnie ponownie uruchomić komputerW OS X 10.13.6 to działa dla mnie:
źródło
Niektórych limitów nie można zmienić
ulimit
, ponieważ dotyczą one tylko bieżącej powłoki, dlategolaunchctl
należy użyć polecenia do globalnej zmiany limitów, np.Należy pamiętać, że stosowanie tych limitów w
/etc/launchd.conf
(jak sugerowano w innych odpowiedziach) nie jest już obsługiwane w najnowszych wydaniach macOS. Chociaż nadal można używaćlaunchd.plist
(patrzman launchd.plist
:), takich jakplist
pliki konfiguracyjne dla poszczególnych użytkowników lub całego systemu, jak sugerowano tutaj , tam i tam .Aby te limity były trwałe, możesz użyć
/etc/sysctl.conf
pliku i dodać na przykład:Aby zmiany odniosły skutek, wymaga ponownego uruchomienia.
Aby zobaczyć aktualne limity, uruchom:
launchctl limit
lubsysctl -a | grep ^kern.max
.Zobacz także: Jak zachować ustawienia ulimit w systemie macOS?
źródło