Yönetici Özeti
Bir takas alanı (takas bölümü, takas dosyası ya da sayfa dosyası olarak adlandırılır), işletim sistemi tarafından adreslenebilir fiziksel belleği artırmak için sadece bir mekanizmadır.
Kullanılabilir fiziksel RAM'iniz düşükse ve bugünün makinesinde, 4 GB veya daha az RAM'iniz varsa derim. O zaman muhtemelen değiş tokuş yapmalısın. Ancak bu iş yükünüze ve makinenizi nasıl kullandığınıza bağlıdır.
4GB’tan fazla RAM’iniz varsa, sisteminizin asla takas kullanmaması ihtimali yüksektir. Yani eğer takas etkinse veya olmasa, bu fazla değişmeyecek.
Bu, diğer faktörlere bağlı olmasına rağmen, makineniz ne kadar uzun süre çalışacaksa, işletim sisteminin RAM'in kullanılmayan kısmını takas durumuna getirme olasılığı o kadar fazladır ki, görünüşte çok fazla yer kalmıştır. Ancak, genellikle sistem dosya arabellekleri ve diğer şeyler için "boş" RAM kullanır ve bazı iş yükleri dosya arabellek kullanılabilir tüm RAM'leri kullanabilir.
Arkaplan bilgisi
Herhangi bir şekilde takas işlemini devre dışı bırakırsanız ve hafıza tamamen kullanılırsa ne olur? Bir dahaki sefere bir uygulama daha fazla bellek istediğinde (bir malloc veya realloc gibi) hata alır! Düzgün bir şekilde kodlanmışsa, uygulama bunu algılar, ancak böyle bir hatayı işlemek ve programı dikkatlice sonlandırmak hala zor olabilir! Bununla birlikte, birçok geliştirici başarılı bellek tahsisi için test yapmaz ve bu tahsis edilmemiş bellek kullanılacak en kısa sürede uygulama çöker. Bu nedenle uygulamanın çökmesi ve aslında aynı anda çalışan birden fazla uygulamanızın olması nedeniyle birçok uygulamanın çökmesi olasılığı çok yüksektir. Umarım, çekirdeğin kendisi bağışık olmalıdır, ama benim tecrübeme göre her zaman böyle değildi.
Eğer değiş tokuşunuz varsa, aynı davranışa sahip olacaksınız , ancak daha yüksek bir limitiniz olacak, bu yüzden o limite ulaşamayacağınız için şansınız yüksek.
8 ve 16 GB RAM'e sahip 2 makineye sahibim. Bu makineyi kişisel kullanmam, bu RAM'in tamamını kullanmam için beni asla yaklaştırmamalı (bugün! Belki de birkaç yıl içinde farklı olabilir). Fiziksel RAM sınırlarını aşmamın tek nedeni, bir sürecin kötü niyetli olması ve tüm RAM'i tüketmesidir. Takas almamak bir kabartmadır, çekirdek, RAM limitine ulaştığı anda haydut işlemini derhal öldürür. Eğer takasınız varsa, sisteminiz takas edip takas edeceğinden ve bazen suçluyu öldürene kadar bazen tamamen tepkisiz hale geleceğinden acı verici bir deneyim (belki de SSD'de değil ...) elde edersiniz!
önerilerde
Takas alanını kaldırırsanız, korkunç bir şeylerin olabileceğini söyleyen insanlar tarafından korkmamalısınız. Bunu yaparsanız, fiziksel adres alanınız azalır, tıpkı 4 GB RAM'den 2 GB'ye gitmek gibi. Böyle bir şey yapar mısın? O zaman takası çıkarmamalısınız. Ancak bunu sınırlamaya karar verebilirsiniz ve bu akıllıca olacaktır .
Bir kişi iş yükünün onu mevcut fiziksel RAM'den daha fazla veya daha fazla kullanmasına neden olabileceğini düşünüyorsa veya çok fazla G / Ç'ye ihtiyaç duyuyorsa (disklere okuma / yazma) gerekiyorsa, takas yapılmalıdır.
Takas tutulması gerektiğinde, kullanıcı bir işlemin kullanabileceği bellek miktarına sınırlar koymaya çalışmalıdır. Bir Linux sisteminde, bazı işlemlerin kontrolden çıkmasını önlemek için bir grup cgroups bellek sınırlarını kullanabilir, OS X'deki eşdeğeri bilmiyorum ama bu şekilde olmalıdır.
Bununla birlikte, bir kişi iş yükü için yeterli hafızadan fazlasına sahipse, takası güvenle devre dışı bırakabilir veya saklayabilir. Performans açısından bile fazla değişmeyecektir, çünkü sistem değiş tokuşu kullanmazsa, performans düşüşü (özellikle eski dönme sabit disklerinde görünür, SSD'de daha az görülür) ile çarpılmaz.
İşlem başına ya da işlem grubu başına bellek sınırlarını belirlemeye çalışmak için yukarıdakiyle aynı hileyi kullanmak, yeterli RAM'den fazlası için de fayda sağlar.
Benim kendi örnek
1 GB RAM'e sahip eski bir bilgisayarım var, orada büyük bir takas var: 4 GB böylece Firefox ve diğer uygulamaları çalıştırabilirim. Doğru kullanıcı deneyimine sahip olmak için mümkün olduğunca az uygulama (veya Firefox'taki sekmeler) kullanmaya meyilliyim.
8 GB RAM'e sahip küçük bir sunucum var. Orada tam olarak benim iş yükünü biliyorum ve ben do not bir süreç sahtekar var ve tüm bellek tüketen çünkü benim sunucu yavaşlatmak istiyorum. Orada takas ve grup hafıza sınırlama zorlama engelim yok, bu yüzden uygulamalar veya hizmetler çökebilir ancak çekirdeği çökertemez. BTW, bu bir Linux makinesi.
Sonra Mac'im 16 GB RAM'e sahip. Tek kullanıcısı değilim ve kullanıcıyı değiştirirken beklemenin sakıncası olmaz. Orada takas var, bu bilgisayarın diğer kullanıcılarının iş yükünü planlamak benim için zor. Tek kişi ben olsam bile takas kullanırdım. Sık sık birkaç VM çalıştırıyorum ve bellek tüketen uygulamalar kullanıyorum, ancak hepsi aynı anda değil, bu yüzden işletim sisteminin kullanılmayan bir uygulamada değişmesini önemsemiyorum, böylece daha hızlı disk G / Ç elde edebilirim veya başka bir VM başlatabilirim. Şimdiye kadar Althoug, bu makinenin değişip değişmediğini görmedim!