Który plik polecenia / konfiguracji kontroluje limity otwartych plików w systemie OS X? Czy istnieje inne polecenie dla OS X 10.5 / 10.6 / 10.7? Opcje badam poniżej ulimit
, sysctl
orazlaunchctl
„Zbyt wiele otwartych plików” jest najwyraźniej częstym błędem w systemie Leopard, być może w innych wersjach systemu OS X:
Istnieje wiele (powiązanych?) Sposobów wyświetlania limitów otwartych plików:
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 2048
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 512
virtual memory (kbytes, -v) unlimited
$ launchctl limit
cpu unlimited unlimited
filesize unlimited unlimited
data unlimited unlimited
stack 8388608 67104768
core 0 unlimited
rss unlimited unlimited
memlock unlimited unlimited
maxproc 1024 2048
maxfiles 2048 4096
$ sysctl -a | grep files
kern.maxfiles = 32768
kern.maxfilesperproc = 16384
kern.maxfiles: 32768
kern.maxfilesperproc: 16384
kern.num_files: 2049
W niektórych powyższych postach stwierdzono, że można je modyfikować za pomocą następujących poleceń:
sudo launchctl limit maxfiles 16384 32768
sudo ulimit -n 32768
sudo sysctl -w kern.maxfilesperproc=16384
sudo sysctl -w kern.maxfiles=32768
Jednak spośród powyższych poleceń tylko sysctl
polecenia mają najwyraźniej jakikolwiek efekt (tj. ulimit -n
I launchctl limit
nie pokazują żadnych zmian po wprowadzeniu powyższych poleceń, podczas gdy sysctl -a
pokazuje żądane zmiany).
Odpowiednie lokalizacje do zmiany tych parametrów dla systemu operacyjnego to:
/etc/sysctl.conf
/etc/launchd.conf
Odkryłem również jedną odpowiedź, która czyta ulimit
tylko kontrolę bieżącej powłoki.
Jak mogę podwyższyć maksymalne limity plików / maksymalne limity otwartych plików w systemie MacOS?
Poniższe powinny rozwiązać najczęstsze problemy (i są wymienione w kolejności ich hierarchii):
Uwagi:
źródło
W prostych słowach:
ulimit
Komenda zapewnia „kontrola nad zasobami dostępnymi do powłoki i procesów to tworzy” (patrz:help ulimit
aman bash
). Zasoby podane powłoce są ograniczone limitami zasobów systemowych.launchctl
Maksymalny kontroluje zużycie zasobów systemu przez obecnego procesu (patrz:man setrlimit
aman launchctl
). Maksymalne wartości są ograniczone limitami jądra.Te
sysctl
kontrole granic jądra (patrz:man sysctl
a Granice BSD Tuning jądra ).Aby zwiększyć limity, możesz użyć każdego z poleceń, w zależności od problemu.
Zobacz także: Jaki jest związek między „limitem uruchomienia” i „ulimitem”?
W przypadku problemu ze zbyt dużą liczbą otwartych plików zależy to od tego, który dokładnie limit miękki lub twardy został osiągnięty (czy to lokalny skrypt powłoki, globalny skrypt uruchamiany przez
root
aplikację lub wszystkie procesy w tym samym czasie). Warto zwiększyć wszystkie limity (limity powłoki, uruchomienia i jądra).Aby stale zwiększać limity, zobacz: Jak trwale kontrolować maksymalne zużycie zasobów systemowych na komputerze Mac?
źródło