Limit sesji Shell
Ustawione limity ulimit
wpływają tylko na procesy utworzone przez bieżącą sesję powłoki.
- „Limit miękki” to faktyczny limit, który jest używany. Można go ustawić, o ile nie jest on większy niż „twardy limit”.
- Można również ustawić „twardy limit”, ale tylko na wartość mniejszą niż bieżąca i tylko na wartość nie mniejszą niż „miękki limit”.
- „Twardy limit”, a także ogólnosystemowe limity, może zostać podniesiony przez
root
(administratora) poprzez wykonanie poleceń konfiguracji systemu lub zmodyfikowanie plików konfiguracji systemu.
Po zakończeniu sesji powłoki (przez Ctrl+ D, exit
lub zamknięcie Terminal.app
okna itp.) Ustawienia znikają. Jeśli chcesz mieć to samo ustawienie w następnej sesji powłoki, dodaj to ustawienie do skryptu uruchamiania powłoki.
UWAGA: Jeśli używasz bash
, powinien to być ~/.bash_proile
lub ~/.bash_login
. Jeśli używasz innych powłok, prawdopodobnie tak powinno być ~/.profile
.
Limit systemu (wymaga ponownego uruchomienia)
Dla 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan) i 10.12 (Sierra):
Musisz utworzyć plik w /Library/LaunchDaemons/limit.maxfiles.plist
(właściciel:, root:wheel
tryb:) 0644
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>262144</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
Powinieneś zmienić liczby zgodnie ze swoimi potrzebami. Są to odpowiednio „miękkie ograniczenie” ( 262144
) i „twarde ograniczenie” ( 524288
). Aby uzyskać więcej informacji, zapoznaj się ze stroną podręcznika, uruchamiając man launchd.plist
.
Dla 10,8 (Mountain Lion):
Możesz dodać następujące wiersze do /etc/sysctl.conf
(owner:, root:wheel
mode:) 0644
:
kern.maxfiles=524288
kern.maxfilesperproc=262144
Powinieneś zmienić liczby zgodnie ze swoimi potrzebami. Są to odpowiednio „limit ogólnosystemowy” ( kern.maxfiles
) i „limit na proces” ( kern.maxfilesperproc
). Aby uzyskać więcej ustawień, sprawdź stronę podręcznika, uruchamiając man sysctl
lub przeczytaj kod źródłowy na /usr/include/sys/sysctl.h
.
W przypadku starszego systemu Mac OS X (chyba działa na wersji 10.7 (Lion) lub wcześniejszej):
Możesz dodać następujący wiersz do /etc/launchd.conf
(owner:, root:wheel
mode:) 0644
:
limit maxfiles 262144 524288
Powinieneś zmienić liczby zgodnie ze swoimi potrzebami. Są to odpowiednio „miękkie ograniczenie” ( 262144
) i „twarde ograniczenie” ( 524288
).
Jeśli system nie pozwala ustawić limitów powyżej określonej wartości ...
System nie pozwala ustawić wartości wyższej niż „twarde maksimum” (zaproponowane przez Apple). Aby zwiększyć to „twarde maksimum”, musisz kupić „OS X Server” w „App Store”, a następnie raz wykonać następujące polecenie:
sudo serverinfo --setperfmode true
Aktywuje to „tryb wydajności serwera” na twoim komputerze. Następnie możesz ustawić maksimum zgodnie z konfiguracją urządzenia (patrz to) . Próbowałem już wcześniej (w Mountain i Mavericks) i działa! Proszę zobaczyć mój post ( tutaj ), aby uzyskać więcej informacji.
Bibliografia