Gördüğün şey normal ve istenen davranış.
OS X, Linux ve BSD gibi, bir disk önbelleğine sahiptir. Bu, okunan veya diske yazılmış herhangi bir şeyin bellekte tutulduğu anlamına gelir. "Aktif Değil" belleği bu disk önbelleğini içerir.
AskDifferent üzerindeki bu cevap yaptığı gibi, onu açıklayan macosxhints.com bu yazı :
Bununla birlikte, X'in temelleri (yani UN * X çekirdeği), kullanıcı tarafından herhangi bir girişe ihtiyaç duyulmaksızın bu iki özelliği de sağlar. Buna dosya sistemi arabellek önbelleği denir. En önemli fark, arabellek önbelleğinin boyutunun dinamik olmasıdır. Bazı küçük boyutlarla başlar ve giriş / çıkış talepleri ve Uygulamalar belleği gereksinimleri zaman içinde değiştikçe büyüyebilir ve küçülebilir.
Buna 'arabellek önbelleği' denir, çünkü g / Ç verilerini diske giden yolda arabelleğe alır. Bir Uygulama veri yazdığında, ilk önce Uygulamalar dosya tampon belleği bölgesine bırakılır ve ardından çekirdeğin (OS) Uygulama tamponundan diske kopyalaması için kütüphane rutinleri aracılığıyla talep edilir. Çekirdek zorunlu olacak ve önce arabelleğine kopyalayacaktır - dosya sistemi arabelleği önbelleği. Çekirdek, arabellek önbelleğinde daha fazla alana ihtiyaç duyuyorsa, onu boş bellekten alır. Bu olduğunda, boş hafıza değeri Terminal'in en üst komutunda derhal boş hafıza azalması gösterecektir. Daha sonraki bir noktada, çekirdek bu verileri (kirli arabellekleri olarak adlandırılır) uygun disk konumuna kopyalayacaktır. Bunun yapılmasının sıklığının 30 saniye olduğunu düşünüyorum - diske senkronizasyon deniyor.
Diske disk belleği yerleştirilmiş olması her zaman kötü bir şey değildir . Bellek sayfaları tamamen etkin değilse, diske disk belleği ayırmak performansı artırabilir , çünkü disk önbelleği için kullanılabilecek RAM israfı yapıyorlar. Sayfalara bir kez basıldıklarında ve film izlemeyi bıraktığınızda, gerektiğinde arabellekleri ve disk önbelleğini otomatik olarak değiştirecekleri şekilde geri çağırın. purge
Her seferinde koşmana gerek yok . OS X'in disk önbelleğini, tasarlandığı gibi yönetmesine izin verin.
Bu konuda daha fazla bilgi için bakınız çağrı üzerine wikipedia makale ve Sayfa önbelleği makalesine .
TL; DR bilgisi:
İşte takas Linux altında nasıl çalıştığını açıklayan bir makale . OS X için% 100 geçerli olmamakla birlikte, konsept aynıdır. İlgili kısmı alıntılayacağım:
Bir uygulama belleğe ihtiyaç duyduğunda ve tüm RAM tamamen dolduğunda, çekirdeğin bir miktar belleği boşaltmak için iki yolu vardır: en eski verileri ortadan kaldırarak RAM'deki disk önbelleğini azaltabilir veya daha az kullanılan kısımları değiştirebilir ( sayfalarında) diskteki takas bölümüne programların dışına. Hangi yöntemin daha verimli olacağını tahmin etmek kolay değildir. Çekirdek, son etkinlik geçmişine dayanarak, iki yöntemin etkinliğini belirli bir anda kabaca tahmin ederek bir seçim yapar.
Bir DVD veya film izlediğinizden, en son kullanılan bellek sayfaları disk önbelleğidir, bu nedenle OS X, RAM’de kalmaya ve video dosyalarına erişmeye başlamadan önce etkin olmayan bellek sayfalarını değiştirmeye karar verir. . Video dosyalarına erişmeyi bırakıp değiştirilen bellek sayfalarını kullanarak programlara eriştiğinizde, tersi doğrudur: OS X, video verilerini içeren disk önbelleğini atar ve değiştirdiği bellek sayfalarıyla değiştirir. Ardından takas kullanımınız azalır.
İşte FreeBSD'ye özgü (Mac OS X'e benzer) özel biraz daha fazla bilgi :
FreeBSD disk önbelleği için 'tüm belleği' kullanacaktır. Bunun anlamı 'serbest' kepçenin tipik olarak içinde sadece birkaç sayfa içerdiğidir. Sistem biterse, önbellek kovasından daha fazla sayfa boşaltabilir.
Sistem etkinliği şu şekilde çalışır: Bir program, diskteki bir dosyaya (vb ...) aktif olarak bir sayfaya başvurduğunda, sayfa fiziksel bir G / Ç işlemi aracılığıyla arabellek önbelleğine getirilir. Tipik olarak 'aktif' kovaya gider. Bir program sayfaya başvurmayı durdurursa, sayfa yavaş yavaş etkin olmayan veya önbellek kovalarına doğru hareket eder (kirli olup olmamasına bağlı olarak). Kirli sayfalar, yavaşça arka mağazalarına yazılarak yavaşça 'temizlenir' ve etkin olmayanlardan önbelleğe taşınırlar ve önbellek sayfaları, ücretsiz kovada en az sayıda gerçekten boş sayfa bulundurmak için gerektiği şekilde serbest bırakılır. Bu sayfalar, takas alanlarını destek depoları olarak tahsis ederek, kovalardan geçmelerine ve sonunda yeniden kullanılmalarına izin vererek hala temizlenebilir.
[...]
VM arabellek önbelleği, temel alınan depolamayı önbelleğe alır; örneğin, yalnızca bir dosyayla ilişkili veri bloklarını önbelleğe almakla kalmaz, aynı zamanda inode bloklarını ve bitmap bloklarını da önbelleğe alır. Bu nedenle çoğu dosya sistemi işlemi, üçlü-dolaylı blok aramaları ve hatta
[...]
FreeBSD tartışmasız en iyi takas kodlarından bazılarına sahiptir. Ben şahsen Linux’tan daha çok hoşuma gidiyor. Linux takas konusunda daha hafiftir, ancak değişen yük koşullarında sistem belleği kaynak kullanımını dengelemez. FreeBSD yapar.
FreeBSD, bellekte varolan sayfaların işe yaramazlığını not eder ve daha aktif amaçlar için (örneğin, dosya tamponlama veya daha fazla program alanı gibi) kullanılabilmesi için boş hafıza kullanmanın avantajlı olacağına karar verir. (Kullanılmayan) sayfaları (ucuz) disk alanından kazanmak için çevrede tutmak berbat bir atıktır. Düşük seviye SWAP G / Ç, dosya G / Ç'den daha az CPU yükü ile daha hızlı olabileceğinden, kullanılmayan sayfaları daha yüksek genel gider mekanizmaları tarafından kullanılmak üzere serbest bırakılabilmeleri için dışarı çıkarmak istenebilir. (not 1)
(Benimkine önem ver, özellikle kalınca sorduğun şey için bu koyu kısmı kontrol et, yani, "Hareketsiz hafızam varken neden takas kullanılıyor?)