Aktif olmayan hafıza bir kaynak kaybı değil midir?


87

Makinemdeki bellek kullanımının açıklamasını özellikle aşağıdaki ekran görüntüsündeki örneklerin ışığında arıyorum:

Hafıza kullanımı

Ben ne anlama Freeve Activearaçlar
Ama anlamları nelerdir Wiredve Inactive?

Özellikle inactive, kullanmadığımız bir şey için neden bu kadar bellek kullanıyor?

Yanıtlar:


142

Aktif olmayan hafıza, berbat bir isim yüzünden korkunç bir rap aldı. "Mac'inizi aynı işi yapan ikinci, üçüncü ve dördüncü kez gerçekten hızlı bir hale getirin" gibi bir şey olmalıydı.

Apple, birkaç yeni özellik getirdiğinde ve sıkıştırılmış bellek eklediğinde etkinlik izleyicisini yeniden yazdı; bu nedenle, bunların bir kısmı artık “Etkin Değil Bellek” göstermeyen macOS için geçerli değil, ancak bu yine de buna karşı belgelenen Mac OS X bellek yönetimi için de geçerli Aktivite İzleyicinin sürümü: https://support.apple.com/en-us/HT201538

OS X'te sanal bellek kavramında yeni olan şeyleri şöyle açıkladım:

  • Kablolu : Sistem bu miktarda RAM olmadan çalışamaz (asla değiştirilmez)
  • Etkin: Programlar bu belleği gerçekten şimdi veya son birkaç saniyede kullanıyor
  • Etkin değil: Programların yavaş diskten veya başka bir yerden okuduğu ve bir daha asla ihtiyaç duymadıklarını söyledi. Mühendisler daha iyi bilirler, birkaç dakika içinde Facebook'a geri dönersiniz veya bıraktıktan sonra Word'ü yeniden başlatırsınız. Aynı şeyler bilgisayarlarda tekrar tekrar olur.
  • Ücretsiz: Tamamen Harcanan RAM - kısa vadeli tahsis taleplerini karşılamak için sistemin yalnızca bir veya iki MB boş alana ihtiyacı vardır. En büyük tahsisler için, sadece aktif / kablolu olarak tahsis ederek ve ne tuttuğu ile ilgili bilgileri kaldırarak Inactive RAM'in bir kısmını kullanır.

Problem, Free + Inactive'in kabaca toplamın 1 / 3'ünden az olması ve daha sonra işler gerçekten yavaşlamasından kaynaklanmaktadır.

Etkin olmayan hafıza, bonus hızı / çift görevli RAM'dir. Bir anda bile ücretsiz olarak hizmet eder, ancak sistem doğru bir şekilde doğru tahmin edilip RAM'da tekrar yapacağınız bir şeyi saklarsa, tekrarlanan görevleri çok, çok daha hızlı hale getirir. Zaten RAM'e yüklenmiş olduğundan ve sanal bellek sistemi iyi tahminler yaptığında işleri hızlandırdığından, takas bellekten daha hızlıdır.

RAM'in bir problem olup olmadığını merak ederken, 4 kategorinin her birine bakmak yerine (aktif değiş tokuş yaparsanız 5), W + A'yı yeni bir program / görevi yavaşlatan ve F + I yeni program / görev. Ne kadar fazla F + 'ya sahipseniz, RAM'in ayrılan hafızayı dengelemek için değiştirmeye dayanması gerekmeden önce daha yeni programlar başlatabilirsiniz.

Yukarıda bahsettiğimden beri takas yönteminin nasıl çalıştığını bilmenize gerek yok. Temel olarak, bir program boşta otururken ve günlerce (veya saatlerce) kullanılmadığında, sistem bu RAM'i programı öldürmek yerine sabit sürücüye yazar. Bu, sistemin bellek yönetimi ile ilgili her türlü şeyi karıştırmasını ve işlemesini sağlar ve her programın, sistem bittiğinde kimin daha az bellek kullanacağını kararlaştırmak için kendi aralarında konuşmak zorunda kalmasını önler.

Etkin olmayan RAM'in nasıl kullanıldığına dair gerçek bir dünya örneği.

  1. Tüm uygulamalardan çıkın ve giriş yaptığınız iki testin otomatik olarak başlatılmayacağından emin olun
  2. Mac'inizi yeniden başlatın
  3. Etkinlik Monitörünüzü ateşleyin ve RAM’i
  4. Uygulama A'yı başlatmanın ne kadar süreceği zaman (MS Word iyi bir seçim olabilir)
  5. A Çık
  6. B Uygulamasını başlatmanın ne kadar süreceği zaman (Adobe bir şey de iyi olurdu)
  7. B'yi bırak
  8. A'nın ikinci lansmanının ne kadar süreceği
  9. A Çık
  10. Time B'nin ikinci lansmanı.
  11. A zamanı, B çalışırken üçüncü kez başlar.

Sistem bu iki uygulamanın çalışması gereken şeyleri etkin olmayan RAM'de tutmayı öğrenirken, ikinci / üçüncü lansman için çarpıcı hızlar görmelisiniz.


Sizin durumunuz - Kablolu ve Aktif toplamı, bazı diske geçiş yapmanın muhtemel olduğu ve Mac'inizin olabildiğince hızlı olmadığı anlamına gelir; çünkü aktif olmayan RAM'iniz, yeniden kullanmanız gerekebilecek her şeyi depolayacak kadar büyük değildir. . Hızlı bir SSD sürücünüz varsa, bu RAM tahsisi tamamdır ve RAM'inizin 1 / 2'sinden daha az bir kez yavaşlamak yerine F + I ise, F için toplam RAM'in 1 / 4'üne benzemek + Ben farkedilir yavaşlık görmeden önce. Bu kurallar geneldir ve vm_stat 15sürekli ve orta hacimli değişimin Mac'inizi yavaşlatmamasını sağlamak için izlemek ya da benzeri bir zaman aralığı kullanmak isteyeceksiniz .


9
Vay benim gibi yeni gelen için çok eksiksiz bir cevap. Çok teşekkür ederim, çok takdir ediyorum :)
GusDeCooL

6
Yup - Herkese cevap veriyorum - bir kez ve herkes için, daha iyi hale getirmek için düzenleyebilir ve cevabınızı alırsınız. İnsanların gelip ilginç sorular sorabilecekleri bir web sitesi için harika bir fikir. :-)
bmike

3
Vaov! Güzel cevap!
duci9y

3
Benim işletim sistemimde böyle açıklamasını isterdim.
styfle


6

Mac'inizin “stresli” olup olmadığını belirlemek için en önemli olan sayı Page Sayfa çıkışı ’şeklindedir. Mavericks'teki Etkinlik İzleyicisi'nde bu artık gösterilmez, şimdi 'Kullanılan Takas:' bilgisini gösterirler.

Sayfa çıktıları, işletim sisteminin istenen tüm uygulamaları ve işlemleri çalıştırmak için yeterli RAM bulunmadığını tespit ettiği anlamına gelir. O zaman yaptığı şey, aktif olarak kullanılmadığını belirlediği belleğin disk bölümlerini 'sayfalandırması'. Bu, RAM belleğin (hızlı) HDD belleğe (yavaş) değiştirildiği anlamına gelir. Bu, çok fazla uygulama olduğundan ve çok fazla sayıda uygulamanın olduğu ve kullanıcının uygulamalar arasında gittiği için çok fazla oluyorsa, çok fazla sayfa çıkışı ve sayfa sayısı olacak.

Sayfaların arttığını görüyorsanız, işlem yapmanız gerekir.


4

Mac'imdeki sorun, "etkin olmayan" belleğin, komut penceresinde el ile temizleme işlemi yapılmadığı sürece asla temizlenemediğidir. Uygulamaları öldürmemi söyleyen bir açılır pencere gelene kadar kurulur ve kurulur. Tüm uygulamalarımı öldürdükten sonra bile, bir şeyi çalıştırmak için hala çok fazla etkin olmayan hafızam var. Bu yüzden, Mac'imde Mountain Lion'un en son sürümünü kullanıyorsanız, boş hafıza az olduğunda aktif olmayan hafızanın geri kazanıldığı doğru değil. Ya hiçbir zaman serbest bırakılmayan bir grup aktif olmayan hafızayı kilitleyen bir uygulamam var ya da iOS'in içinde bir hata var. (8GB fiziksel belleğim var ... bu yeterli olmalı!)


2
Mac OS 10.6 ve 10.7’de Macnie Pro ve Mac Pro’da Ernie ... seninle yaşıyorum, etkin olmayan bellek kaybolacak ve işletim sistemi değişmeye başlayacak ("Sayfalar" ve "Sayfa Çıkışları" na göre) ve sistem durur. Aktif olmayan hafıza hiçbir zaman geri kazanılmamış gibi görünüyor. Etkin olmayan hafızayı geri kazanmak için "temizleme" kullanmalı ve sistemimi tekrar aktif hale getirmeliyim.
Eric,

2
Bu açılır pencere nereden geliyor? Bu vm_statgerçekleştiğinde rapor edilen hafıza durumu nedir ? Bir şeyi çalıştırmak için "çok fazla" etkin olmayan bellek "olabileceğinden bu kadar emin olmanıza neden olan şey nedir? Endişelendiğim kadarıyla, bu bildiğiniz kodda hiçbir desteği olmayan, aslında çekirdeğin içinde çalıştığı bir deneyim.
Kuba Ober

2
Hafıza tahsisatınız, Gus'un sunduğu şeylere benziyor mu? Burada bir gigabayt kablolu ve bir gigabayt ve bir buçuk aktif hakkında konuşuyoruz. Etkin olmayan / serbest oranı bu durumda bana iyi görünüyor. Belki de, işlerin parçalandığı yerde yaşadığınız durumu ayrıntılandıran ikinci bir soru sorarsınız?
bmike

2

Tüm afiş ve yorum yapanlara teşekkürler, bu benim için öğretici ve faydalı bir konu oldu. Son tecrübelerim biri için faydalı olabilir. Mac Mini'mi OS X10.8.1 ve 16G RAM ile tamamen başka bir yerde çalıştırılacak olan prototipleme yazılımı için kullanıyorum. Sizi temin ederim ki "birkaç dakika içinde Facebook'a geri dönmeyeceğim veya bıraktıktan sonra Word'ü yeniden başlatmayacağım" - bunun yerine macbook'umda yapıyorum.

Görevim büyük miktarda veriyi toplamaktı, g / ç zaman alıyor, bu yüzden nosyon bir hamlede olabildiğince büyük bir veri yığınını okumak, orada işlemek ve diske tekrar yazmaktı. , sonra işlemi birkaç saat süren işlem tamamlanana kadar tekrarlayın. Gördüğüm kadarıyla, her yeni bir veri yığınında okuduğumda, aktif olmayan bellek atlıyor - Sistem AI’nin, eski yığınları tekrar kullanmak isteyebileceğimi farz ediyorum - ki bu da, Hafıza düşer.

Bu işlemin birkaç yinelemesinden sonra boş hafıza sadece bir kaç MB'a düşer, etkin olmayan hafıza bir kaç MB boşalır ve sonunda boş ve boş hafıza arasında birkaç dakika ileri geri koyduktan sonra etkin olmayan hafıza boş kalır bir kerede birkaç GB kadar. Hepsi bmike'ın tanımladığı gibidir ve hem vm_stat 15 hem de Aktivite monitörü 0 sayfa gösterimi gösterir.

Bunun dışında belki de değil. Yüzlerce kez işler yolunda ilerliyordu, bir kahve ya da akşam yemeği için yola çıktım ve süreci izlemiyorum ve ne olmamalıydı ve süreç aniden kayıkla dolup taşan bir gemi dolgusunu attı ve yavaşladı. Muhtemelen soruna neden olan benim berbat kodumdur, ancak bu değişkenlik kaynağını ortadan kaldırmak için etkin olmayan belleği kapatmayı isterdim. Bu kırık mı? Ben öyle demezdim, ama sanırım bellek yönetimi kullanım durumum için optimize edilmemiş.


0

Son zamanlarda etkin olan uygulamalar tarafından kullanılan etkin olmayan hafıza . OS X, kullanıcının programı tekrar açmak istemesi durumunda saklı tutmaktadır. Bu durumda, OS X'in performans hızını hızlandıran hafızanın yerini değiştirmesi gerekmez. Programı yeniden açmazsanız, bir süre sonra etkin olmayanların hafızası serbest bırakılacak veya yeniden yerleştirilecektir.

Bu özellik, çok miktarda RAM'iniz olduğunda havalıdır, ancak çok sinir bozucu olmadığında. Aslında hepsi elma şeyleriyle ilgili. Güçlü bir gadget'ınız veya Mac'iniz olduğunda her şey harikadır, ancak cihazınız büyüdüğünde tüm özellikler onu yavaşlatır.

Bu yüzden, onu yönetmek için özel numaralar kullanmak zorundasın.

Etkin olmayan hafıza purgeiçin serbest bırakılması gereken bir komut vardır .


-3

Temelde bozuldu. Boş RAM düşük olduğunda, etkin olmayan RAM otomatik olarak "temizlenir". Kullanıcının tekrar açacağını umarak daha önce açılan uygulamalar için RAM tutma noktası nedir? Ücretsiz RAM'in düşük olması, mevcut ACTIVE uygulamalarının yeterli RAM'e sahip olmadığını ve ŞİMDİ değişmekte olduğunu gösteriyor. Kapalı uygulamalar için RAM belleğin tutulması sadece aptalca. Apple'ın kendi açıklamasına göre, Boş RAM düşük olduğunda, Etkin Olmayan RAM otomatik olarak temizlenmeli veya ödünç alınmalıdır. Bu açıkça durum böyle değil.


3
Sanal bellek sistemleri büyük miktarlarda boş RAM'i boşa harcar. Bir program bir bellek tahsisi istediğinde, çekirdek daha fazla sanal bellek oluşturur ve onu şeker gibi dağıtır. Yalnızca bir program bu belleği gerçek verilerle doldurduğunda, sistemin bu işlem için RAM'de yer açması gerekir. Bu "oda yapmak" boş ve sonra etkin olmayan bellekten çeker - ve etkin olmayan belleği serbest bırakma gecikmesi ölçülemez derecede küçüktür. Tarif ettiğiniz temizleme tam olarak ne olduğu - sadece sistemin tembel olduğunda temizleme işlemini önleme yapması gerektiği ve sadece gerekli olduğunda bu işlemi yapması gerektiği anlamına gelir.
bmike

@bmike Ama şapkam boş RAM kalmaması ve yeni bir Uygulama başlattığımda, aktif olmayan RAM kısmının düşeceği ve aktif olacağı anlamına gelmez mi? Açıkça durum böyle değil ve deneyimlerime göre, artık serbest ram kalmadığında, etkin olmayan ram gigabayt olmasına rağmen sistem aşırı yavaşlıyor. Sistem aktif olmayan ram'ı tekrar kullanmayı düşünmeden önce diski değiştirmeyi tercih ediyor gibi görünüyor.
codingFriend1

4
@ codingFriend1 Kesin olalım - kaç sayfa boşsa, vm_statdaha fazla boş RAM yok mu? Mac "yavaş" olduğunda, sayfa giriş ve sayfa sayımı ne işe yarar vm_stat 1? Ne zaman bir sorun sisteminde bunu izliyorum vm_stat 15, bir terminal penceresinde (veya dosya sistemine giriş yapmak) çalışmayı severim, böylece ne gibi / ne zaman ayarlayacağım konusunda karar verirken, disk belleği etkinliğinin ne olduğunu tam olarak bilirim. çağrı cihazı. Bu örnekte 100 MB boş RAM vardır, bu nedenle disk belleği baskısı altında bile olmaz.
bmike

-4

Aktif olmayan hafıza özünde, önceden kapatılmış olan işlemlerin daha hızlı açılmasını sağlar. Mac OS’in çok fazla bellek kapladığını fark ederseniz, Safari veya Chrome'da açtığınız düzinelerce sekmeden gerçekten ihtiyacınız olmayan bir şey var. OS X Mavericks'te bunun yerine sadece 'sudo purge' kullanın (şifrenizi girmeniz gerekir). Bir şeyi tekrar açmanız gerektiğinde değerli saniyeleri tıraş eder, ancak RAM yoğun bir oyun oynamak veya RAM aç bir uygulama açmak istiyorsanız kesinlikle temizleme komutunu kullanmanızı öneririm.


2
Bunun diğer cevaplardan farkı nedir?
Mark
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.