Hafıza basıncı basit bir hafıza yüzdesi göstergesi değildir ve% 0 ila% 100 grafik gibi görünmektedir. sysctl
Değeri vm.memory_pressure
kablolu ve aktif sayfalara özgür ve inaktif hafıza sayfaları arasında oranını izleyen bir bilgisayarlı hedefle ilgili olarak hesaplanır. Mutlak sayıcılar, vm_stat
sanal belleğin ayrıntılı tahsisini incelemek için komut satırı aracı kullanılarak görüntülenir . Jonathan Levin http://newosxbook.com/articles/MemoryPressure.html adresinde hem macOS hem de iOS sanal belleğini ve basınç endeksinin yüksek olduğu zamanlarda yapılan işlemlerin yanı sıra bellek basıncını nasıl hesapladıklarını da kapsayan mükemmel belgelere sahiptir .
Hesaplamasını besleyen ilgili sanal hafıza (vm) vm.memory_pressure
:
vm.page_free_count
- mutlak ücretsiz sayfa sayısı
vm.vm_page_free_target
- "baskısız" bir durum için hesaplanmış bir hedef veya hedef
vm.page_free_wanted
- vm sisteminin mevcut hesaplanan basınç endeksini hafifletmek için serbest bırakmak istediği şey
Öyleyse - Faaliyet izleyiciyle (ya da sysctl değerlerini programlı olarak veya komut satırı kabuğunda kontrol ediyorum) bellek baskınızı izliyorsanız, bu dört değere bakmak için iyi yaparsınız:
sysctl -a vm | egrep "page_free|pressure"
memory_pressure
Mavericks ile getirilen yeni bir komut var ve bellek alt sistemini bir uyarı durumuna getirmek için çalıştırdığımda - bellek basıncının sarı bir aralıkta arttığını görebilirsiniz.
Basınç grafiği "uyarı" seviyesi grafikte açıkça bu duruma sürekli artış olarak takım, takımın bellek yaklaşık 4 GB tahsis: sudo memory_pressure -l warn
. Gördüğünüz gibi, basınçtan önceki sistemde 5.9 GB kullanılmış ve sonrasında 7.99 GB'a kadar kullanılmış ve bu da takas ve sıkıştırma nedeniyle ilave edilmesi gerekmiyor.
vm_stat 15
Uyarı sonucunun ölçülebilir bir disk belleği olmadan nasıl gösterildiğini izledikten sonra , aletten (Control-C) çıktım ve daha sonra bellek basıncını kritik hale getirmek için aleti tekrar çalıştırdım:sudo memory_pressure -l critical
Disk belleği için diskte disk belleği olan 5 GB RAM bulunduğunu belirten bir kaç dakikadan daha uzun bir süre çalışmamasına izin vermedim, diskimi doldurmak ve araçtan çıkmak istemedim.
Uyarı sona erdikten sonra sistemin RAM'i ne kadar hızlı serbest bıraktığını ve ayrıca sanal bellek sisteminin diske takılmasını önlemek için yeterli sayfaları sıkıştıramadığını göstermek için "kırmızı" bölgeye nasıl girdiğini görebilirsiniz. Eğitimli tahminim kırmızı baskı olduğunu gösteriyor ki, takas ve dramatik aşırı tahsisat ve / veya sistemin tercih ettiği miktarın altında kalan ve / veya takas için kullanılması beklenen sayfaları takas etmeyi aktif olarak temizleyen boş zamanları gösterir. Benzer şekilde, tahsisler serbest bırakıldıktan ve sanal bellek sisteminden baskı alındıktan sonra sistem hızla iyileşir.