Ciśnienie pamięci nie jest prostym miernikiem procentowym wolnej pamięci i wydaje się być wykresem od 0 do 100%. sysctl
Wartość vm.memory_pressure
oblicza się w stosunku do obliczonej celu śledzącym stosunek wolnych i nieaktywnych stron pamięci na stronach przewodowych i aktywnych. Liczniki absolutne są przeglądane za pomocą vm_stat
narzędzia wiersza polecenia, aby sprawdzić szczegółowy przydział pamięci wirtualnej. Jonathan Levin ma doskonałą dokumentację na stronie http://newosxbook.com/articles/MemoryPressure.html obejmującą pamięć wirtualną macOS i iOS oraz sposób obliczania presji pamięci, a także działań podejmowanych, gdy indeks ciśnienia jest wysoki.
Odpowiednią pamięcią wirtualną (vm), która zasila obliczenia, vm.memory_pressure
są:
vm.page_free_count
- bezwzględna liczba bezpłatnych stron
vm.vm_page_free_target
- obliczony cel lub cel w sytuacji „bezciśnieniowej”
vm.page_free_wanted
- co system Vm chciałby uwolnić, aby złagodzić bieżący obliczony wskaźnik ciśnienia
Tak więc - jeśli śledzisz swoje ciśnienie pamięci za pomocą Monitora aktywności (lub sprawdzam programowo wartości sysctl lub w powłoce wiersza poleceń), dobrze byłoby spojrzeć na te cztery wartości:
sysctl -a vm | egrep "page_free|pressure"
W memory_pressure
Mavericks wprowadzono nowe polecenie, a kiedy uruchomię je, aby doprowadzić podsystem pamięci do stanu ostrzegawczego - ciśnienie w pamięci wzrośnie do żółtego zakresu.
Narzędzie przeznaczono około 4 GB pamięci do narzędzia jako wykres ciśnienia wzrastała do tego państwa, w którym widocznie poziom „ostrzeżenie” jest wykresie: sudo memory_pressure -l warn
. Jak widać, w systemie przed ciśnieniem wykorzystano 5,9 GB, a po nim użyto do 7,99 GB, co nawet nie wymaga sumowania z powodu zamiany i kompresji.
Po obejrzeniu vm_stat 15
pokazanego wyniku ostrzeżenia w braku mierzalnego stronicowania, zamknąłem narzędzie (Control-C), a następnie ponownie uruchomiłem narzędzie, aby krytyczne ciśnienie pamięci:sudo memory_pressure -l critical
Nie pozwalałem na to przez dłużej niż kilka minut, ponieważ zaczynało się stronicowanie, a gdy narzędzie powiedziało, że mam 5 GB pamięci RAM na stronie, nie chciałem zapełniać dysku i wyłączać narzędzia.
Możesz zaobserwować, jak szybko system zwolnił pamięć RAM po zakończeniu ostrzeżenia, a także jak zmienił się na „czerwone” terytorium, aby pokazać, że system pamięci wirtualnej nie może skompresować wystarczającej liczby stron, aby uniknąć zamiany na dysk. Moje wykształcone przypuszczenie, że presja na czerwono wskazuje na zamianę i dramatyczny nadmierny przydział i / lub czas, w którym liczba wolnych stron jest niższa niż ilość preferowana przez system i aktywnie usuwa nieaktywne strony i / lub strony, które mają zostać użyte do zamiany. Podobnie system szybko się regeneruje po zwolnieniu przydziałów i odciążeniu systemu pamięci wirtualnej.