Mac OS X'te neden takas dosyasını devre dışı bırakayım?


51

MacBook Pro'da bir SSD sürücüsü takma konusunda bir sorunla karşılaştım.
Yorumlardaki bir kişi de takas dosyasını devre dışı bırakmayı önerdi ancak nedenini söylemedi:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

Neden birinin Mac OS X'te takas dosyasını devre dışı bırakmak istediğini merak ediyorum.
Performansı arttırıyor mu? İstikrar?
Herhangi bir olumsuz tarafı var mı?

Son olarak, bu takas dosyası devre dışı bırakmak için herhangi bir anlam ifade etmez değil SSD kullanıyor?


11
Genellikle daha az bilgili olanlar tarafından devre dışı bırakılır, çünkü bazı bloglarda performansın yükselişinin çatıyı attığını duydular. SSD'ler doğal olarak hızlı oldukları için güzel bir test yatağı sunar. Bunu yapma Kararlılığı azaltır ve zamanla yıkıcı etkilere neden olur. Bu güne, performans artışı gösteren herhangi bir gerçek veri (geçerli ve güvenilir) görmedim. Ve ister 2 GB isterse RAM veya 120 olsun, bir işletim sisteminin kritik bir bileşenidir.

2
Hangi felaket etkiler? Merak ediyorum ... makinemi (4GB MacBook Pro) bir ton daha hızlı yapıyor gibi görünüyor. Mesela, yeni terminal pencereleri açtığımda, artık herhangi bir engelleme kalmadı. Ve normalde kullandığımdan iki kat daha fazla uygulama açabildim ve hiçbir şey olmadı.
orange80 16:11

4
orange80: Yavaş terminal pencerelerinin genel nedeni, hushlogin ile tespit edilebilecek önceki girişe bakarak giriş yapma işlemidir: apple.stackexchange.com/a/54167/22570 - takas ayarlarını değiştirdikten sonra yeniden başlattınız mı, belki ? Takas kaldırılarak terminal pencere hızının arttırılması için hiçbir sebep yoktur.
Ken

Küçük kapasiteli bir SSD ile alan boşaltmak isteyebileceğinizi biliyorum. Ancak, performans tarafında, SSD'ler HD'lerden çok daha hızlıdır, bu yüzden SSD tabanlı bir işletim sisteminde takas etmenin devre dışı bırakılmasının performansı nasıl artıracağını görmüyorum. Bu konuda herhangi bir deneyim var mı? Teşekkürler.

1
Süper Kullanıcı'da, kabul edilen bir yanıtla: Mac'in dynamic_pager? (2012-04-27)
Graham Perrin

Yanıtlar:


39

neden biri Mac OS X'te takas dosyasını devre dışı bırakmak istediğini merak ediyorum. Performansı arttırıyor mu? İstikrar? Herhangi bir olumsuz tarafı var mı?

Sanırım insanlar bunu SSD sürücü için yapacaklardı çünkü bu sürücüler standart manyetik döner disk sürücüleri ile aynı ömre sahip değillerdi. Daha sınırlı sayıda yazma çevrimi vardır, bu yüzden muhtemelen bunları bir takas dosyasıyla kullanmak bu döngüleri daha hızlı kullanır.

Son olarak, SSD kullanılmadığında takas dosyasının devre dışı bırakılması mantıklı geliyor mu?

Eğer varsa çok RAM, bu muhtemelen performansını hızlandırmak, ama bu iyi bir fikir değil genel olarak. Bellek tavanına doğru koşarsanız, lapa lapa olacak.

Ayrıca, kablolu bellek geçersiz olduğunda serbest bırakılmaz, yalnızca bir sayfa dışı olayı tetiklendiğinde serbest bırakılır; bu, Sanal Bellek devre dışı bırakıldığında gerçekleşmez. Bu nedenle, artık kullanılmasa bile, tüm belleğinizin değişmesi uzun sürmez.


4
Mac sanal bellek sistemi, yalnızca gerçek belleği değiştirme zamanı geldiğinde, yalnızca fiziksel takas dosyalarını oluşturduğu için çok tembeldir. Takas için bir yazmayı yerleştirmek üzere işleri geciktirmek zorunda kalmayacağınız ne kadar hızlandıysanız, ilk önce takas kullanılabilirliği elde etmek için önceki hız kazanımları ile neredeyse kesinlikle dengelenir. Takas almak mac'ları daha hızlı yapar. Cevabın geri kalanı yerinde - güzel bitti!
bmike

2
@geotavros Mac OS X sanal bellek sistemi yok değil Windows ile aynı çalışır. 4GB bellek ile, bana güvenin, Mac'iniz Sanal Bellek etkinken daha hızlı çalışacaktır. VM'yi devre dışı bırakmak yalnızca baş ağrısına ve sistemde kararsızlığa neden olur.
goppe

3
Sürekli olarak yazılmış, yazma seviyeleyen ve iyi bir kapasiteye (128 GB) sahip modern bir SSD olan FYI, yüzyıllar içinde ölçülen bir yazma döngüsü sınırına sahip olacaktır. 2000 yılında küçük, ilkel SSD'ler ile makul bir korku oldu, ama artık değil.
Ken,

3
8 GB belleğe sahip bir MacBookPro5,2 için performans iyileştirme çarpıcı. Bir VirtualBoxVM'deki Snow Leopard veya Lion için bu gelişme şaşırtıcı. Her üç durumda da, işletim sistemi belleği “sınır” a (her şeyin etkili bir şekilde durduğu) ulaşma riskini en aza indirecek şekilde kullanıyor gibi görünmektedir, ancak bu risk devam etmektedir, bu nedenle Aktivite İzleyicisi'nde kullanımı gözlemlemek akıllıca olacaktır.
Graham Perrin

2
Bilgi için VM (veya Sanal Bellek) takas dosyasıyla karıştırılmamalıdır. Windows, OS X, * BSD, Linux, çoğu Unix sanal bellek kullanıyor. Genellikle bu işletim sistemlerinin mimarisi, işlem başına bir VM, bu alan içinde işlem tahsis edilen bellek verir ve işletim sistemi bu tahsis edilen belleği fiziksel RAM'e koymaya ya da işletim sisteminin belirlediği şekilde değiştirmeye özen gösterir. Değiş tokuş yapıp yapmamak, çeşitli kriterler (hız, duyarlılık vb.) İçin bir şekilde veya diğer performanslarda değişebilir, bu her birimizin iş yüküne bağlı olacaktır. İngilizlerin dediği gibi: milimetreniz değişebilir! Ve büyük ölçüde bu durumda.
Huygens

27

Takas dosyasını devre dışı bırakmalarının nedeni, SSD'lerin blok başına maksimum yazma sayısına sahip olma olasılığıdır. Takas dosyaları sık sık yazılabilir, muhtemelen disk parçalanmasına (dosya sistemi parçalanmasına ek olarak) ve sonuç olarak diskin daha erken bozulmasına neden olabilir.

Bununla birlikte, bu kesinlikle bir erken optimizasyon durumudur. Takas dosyanızı devre dışı bırakmak neredeyse her zaman KORKUNÇ , KORKUNÇ bir fikirdir. Takas dosyası, çalışan programlarınızın fiziksel olarak yüklediğinizden daha fazla bellek kullandığı zaman içindir. Devre dışı bırakırsanız, aynı anda çok sayıda program çalıştıramayabilirsiniz (ve limit beklediğinizden çok daha düşüktür) veya ne zaman (donma ve makineyi yeniden başlatmanız zor gibi) sorunlarınız olabilir. hafıza tükeniyor.

Sonuncusu, disk alanı yetersiz kaldığında (takas dosyası etkinken) yaşadım. Ben ~ 3 gig ücretsiz 120 gig sürücü vardı. Civilization IV (büyük, tam ekran oyun) oynarken, sistem sabit disk alanından tükendi (~ 50 megs ücretsiz) ve "uygulamaları şimdi öldür" penceresini sundu. Bu tam ekran oyunun arkasına saklanıyordu, bu yüzden sistem kilitlendi. Uzaktan birkaç uygulamayı öldürmek için başka bir Mac'ten ssh yapamadım, güç düğmesini basılı tutmak zorunda kalırdım.


6
Bunun ne kadar kötü bir fikir olduğunu yansıtmak istiyorum. 16 GB RAM’iniz olsa bile, değişim kullanılır. Çok değil, ama küçük bir parça zaten takas içine yazılmıştır. Her zaman. Bu bir koruma. İşletim sistemi onsuz da çalışabilirken, 3. parti uygulamaların nasıl davrandığından emin olamazsınız. HD'ye yazılır. Hayat bir gerçek. Ve hayır, “gerçek dünya” performans artışı olmayacak. Bu bir plasebo.

4
@cksum Bazı özel sunucu senaryolarında, sysadmins takas dosyasını devre dışı bırakır, çünkü bu belirli yapılandırmayı daha hızlı yapar, ancak her ikisinin de (a) belleğinin tükenmeyeceğinden emin olmak için test yapmadan bunu yapmazlar ve (b) ) aslında daha hızlı. Ancak bu profesyoneller tarafından işletilen bir sunucu: Tüketici makinelerinde asla gerekli değil.
CajunLuke

@cksum İlk cümlenizle aynı fikirdeyim, ikinci, üçüncü ve dördüncü sırada haklısınız, ama gerisi çöp. Bir işletim sistemi "koruma" için takas yapmaz, işletim sistemi veriyi arabelleğe alarak aktif işlem için daha fazla bellek sağlamak ya da I / O'yu hızlandırmak için daha fazla bellek sağlamak için takas yapar, bu nedenle uzun süre etkin olmayan bellek RAM'de serbest bırakılabilir. Bir uygulama geliştirdiğinizde, işletim sistemine bellek talep edersiniz, bu bellek, sanal bellek kullanımınızın bir parçasıdır, işletim sisteminin bu belleği veya bir parçasını fiziksel RAM'e veya takas birimine koyup koymadığını bilmediğiniz bir geliştirici veya uygulama olarak. (devam edecek)
Huygens

Eğer bir 3. parti uygulaması mevcut olandan daha fazla hafıza isterse, işletim sistemi ona bir hata verecektir. Bu değiş tokuş etmekten veya yapmamaktan bağımsızdır. Değiş tokuş yapmak sınırı daha da yükseltir, işte bu. Performans için oturum açtıysanız 2 kullanıcınız varsa, aktif kullanıcı dev dosyalara sahip bir video editörü kullanıyorsa, işletim sistemi aktif kullanıcı tarafından yapılan işleri hızlandırmak için aktif olmayan kullanıcının hafıza sayfalarını takas alanına koymaya başlayabilir. Bu durumda hız açısından daha iyi performans elde edersiniz. Bununla birlikte, diğer kullanıcıya geçiş daha yavaş olacaktır, işletim sistemi takası geri okumak zorundadır. Bu bir plasebo değil!
Huygens

1
Bir keresinde (linux'da) ayarlarken takas bölümü kurmayı unuttum. Takılmaya başladığımda, bunun bir çekirdek hatası olduğunu düşünmüştüm - sonuçta minececraft oynarken takas belleğinin eksikliği olduğu ortaya çıktı. takas kullanın.
Wyatt8740 16:15

12

Sistemin bir depolama aygıtına yazabileceği hemen hemen tüm durumlarda bunun neden kötü bir fikir olduğunu açıklayan iki büyük cevabınız var.

Takas özelliğini devre dışı bırakmanın nedeni, sistemin NetBoot kullanarak yalnızca CD, DVD, kilitli ağ görüntüsü veya salt okunur olmayan bazı Mac'lerle birlikte gelen ve yeni Lion yükleyici gibi salt okunur bir USB fob gibi ortamlarda çalışabilmesidir. sürücüler.

Sanal belleğe sahip olmak, birçok program aynı ortak kütüphane kodunu kullandığında sistemin daha hızlı çalışabileceği ve daha az RAM kullanabileceği anlamına gelir. Her program , ihtiyaç duyduğu tüm kodun özel bir kopyasına sahip olduğunu düşünüyor , ancak sanal bellek bulunduğunda, sistem aynı fiziksel RAM'i farklı programlara eşlemek için iyi bir yol kullanıyor.

Takas alanının devre dışı bırakılması, mac'ın, sürücünüzün küçük bir bölümünü, hesaplanan bir bellek için önbellek olarak kullanmasını engeller, ancak program, bu sonuçları uygun bir önbelleğe yazmak için yeterince akıllı değildi.

Denemek için bir desteğiniz ve zamanınız varsa, neden kapatmıyorsunuz ve deneyiminizin nasıl değiştiğini görün.

Her yıl yeni bir sürüş için para ödemek zorunda olduğumu bilsem bile takasımı sürdürürdüm. Bu değişimin bana verdiği hız BÜYÜK. Bu her zaman böyle değildir ve sistemin çöktüğü veya çağrı yaptığı zamanlarda - bunun tam tersi olabilir. Birçok kişi takas yapmadan çalışmayı tercih eder, böylece mac'ların disk belleği başlatmasına izin vermek yerine bellek ayırma hatası alırlar, çünkü işler sorunsuz şekilde çalışmadığında makineyi yavaşlatabilir.

Bir SSD ile durumunuz farklı olabilir, o yüzden denerseniz bize bildirin.


2
Ben tam tersini, bir bulmak büyük hızlanma dynamic_pager edilir devre dışı . Şu anda apple.stackexchange.com/a/60661/8546 adresindeki ekran görüntüsü , sanal arka plan boyutunu ve artalan devre dışıyken ölçülen sayfa sayısını (takas dosyaları kullanılmazken) gösterir.
Graham Perrin

Bir hızlandırmayı belirlemek için tam olarak ne ölçülüyor? (Ya da kullanıcı arayüzünde gecikme ya da gecikme olmadığının ya da kolayca ölçülebilir ya da ölçülebilir olmayan başka bir şeyin olduğunu mu
görüyorsunuz

Ölçüm yapmadan: Lion ile çoğu şey gözle görülür derecede daha hızlı görünüyordu - dev kelimesini kullanmam için yeterince . Daha yakın bir zamanda: örneğin bir VirtualBoxVM'de 10.8, örneğin Aktivite İzleyicisi'ne giriş yapmak ve devam etmek için on altı saniye dynamic_pager, on iki saniye olmadan. Daha geniş ve daha ölçülmüş bir karşılaştırma için Phoronix Test Suite veya Geekbench kullanabiliriz .
Graham Perrin,

9

Ben burada naysayer olacağım: 2008 yılının sonlarında unibody macbook pro'm takasını devre dışı bıraktım ve performansı belirgin bir şekilde artırdı: Daha az beklemek, uygulamalar arasında daha hızlı geçiş yapmak.

Boşver, boş hafızama göz kulak oluyorum ve 6GB taktım. Bellek limitine çarptığım birkaç kez, sistem çöktü :-D

Yeni MacBook Air'imde takas devre dışı bırakmayı hayal etmiyorum, zaten etkin ve hızlı bir şekilde başlayabilmesi için 4 GB'a sahip.

İnsanların SSD takas etmesini engellemesinin bir başka iyi nedeni, küçük SSD'leri almaları ve alabilecekleri tüm alanlara ihtiyaç duymalarıdır. Her durumda, yapma.


Bunun çalıştığı yerde gerçek deneyime sahip olmak harika. Takas devre dışı bırakıldığında makinedeki RAM taahhüdü neydi? RAM'e sığacak olandan daha fazla uygulama açtığınızda ne oldu? Ne kadar RAM aldınız ve bu alanda hangi uygulamaların hatasız bir şekilde rahatça çalıştırılacağı?
bmike

1
@bmike, emin değilim, sistem çöküyor :-D, 6GB ve kullandıklarım :). Diyafram veya XCode gerçek bellek domuzu ve ... bazen sistem devrilebilir ama Skype, Posta, Adium, Safari, Chrome, iTunes ve OmniFocus tüm güzel yerleşir
w00t

6

Benim deneyimim w00t ile benzer. SL ve Lion takas dosyasını devre dışı bıraktım çünkü performans artışı benim için çalışıyor. Kablolu kullanım bir hafta kadar sonra kontrolden çıkar ancak basit bir yeniden başlatma bunu düzeltir. SSD'm yok ama yavaş bir 5400rpm diskim var. SSD lifpans aslında insanlar olsa onları yapmak için çalışıyoruz kadar kötü değil. SSD'nizi yıpratmaktan korktuğunuz için yapıyorsanız, lütfen bakınız: http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 ve http://communities.intel.com/thread/21717?tstart=0 Intel, sürücülerini 80 gb'lik bir sürücüde 5 yıla kadar her gün günde 20 GB'ın üzerinde derecelendiriyor. Daha büyük boyutlu sürücüler daha da uzun süre dayanır. Ortalama bir kullanıcı 10GB / gün kullanmıyor bile.

4GB'lık bellek kullanımımı iStat Menüler ile izlediğimden emin oluyorum ve etkin olmayan belleği temizlemek ve daha fazla boş hafıza açmak için "temizleme" bash komutuyla (Xcode kurulmasını gerektiriyor) bir Automator betiği kullanıyorum. Birkaç hafızada bellek sızıntısı olan uygulamalar RAM'in tamamını kullandıklarında, sert sıfırlama yapmak zorunda kaldım. Bunun nadiren yaşandığı durumlar ve genel olarak hızlanma, takas dosyasının benim için devre dışı bırakılmasında yarar sağlar. Başkaları tarafından belirtildiği gibi bir kerede aynı anda pek çok uygulama açamayacağımı biliyorum ama bununla çalışabiliyorum.


Hafıza Kapsamı otomatik olarak temizleme seçeneğine sahiptir. (dynamic_pager etkinleştirilirse, temizleme işlemlerine izin vermem.)
Graham Perrin

5

Küçük SSD'lerin değiştirilmesini devre dışı bırakmak isteyenler için sadece 2 kuruş atıyorum: uyku görüntüsü çok daha fazla disk alanı kullanıyor.

Üstelik, SSD'nin sınırlı ömründen endişe edenler için (özellikle MBA'lerin ve değiştirilemeyen kablolu kablolu SSD yongalarının bulunduğu), eğer bilgisayarınız günde birkaç kez uyursa, uyku görüntüsünün yeniden yazılması endişe verici olabilir. Dizüstü bilgisayarım kolayca yarım düzine kez / gün uyuyor. Bu günlük SSD'ye 48GB veri yazıyor.

Her durumda çözüm, hazırda bekletme modunu devre dışı bırakmak ve ardından yüklü RAM'iniz kadar büyük olan sleepimage dosyasını silmek (benim durumumda 8GB).

Olumsuz risk: dizüstü bilgisayarınız uyurken piliniz boşalırsa, mevcut durumunuz kaybedilecektir. Bu, zorlamalı bir yeniden başlatmaya eşdeğer olacaktır. Dizüstü bilgisayar için fiziksel bir zarar yok, sadece verimlilik kaybı. Hazırda bekletme modunu devre dışı bırakırsanız, pilinizi zayıflayın ve şarj edemiyorsanız, hazırda bekletme modunu etkinleştirmek için kodu kullanışlı hale getirin!

Hazırda bekletme modunu devre dışı bırakmak için, Terminal'de komut aşağıdaki gibidir:

 sudo pmset -a hibernatemode 0

Hazırda bekletme modunu etkinleştirmek için, komut aşağıdaki gibidir:

 sudo pmset -a hibernatemode 3

SSD / HDD alanını boşaltmak için son uyku görüntüsünü silmek için (yalnızca hazırda bekletme modunu kapatırsanız mantıklı olur, aksi takdirde yeni bir tane daha derlemeniz uyuduğunda o alanı kaplar):

 sudo rm -rf /var/vm/sleepimage

Kaynak: adam pmset


3

Takas devre dışı bırakılması yapar performansı artırmak. Örneğin, düzenli olarak Aperture kullanıyorum ve takas performansı arttıkça kötüleşiyor ve 1 Gb'nin üstüne çıktığında, temizlemek ve performansı geri yüklemek için işletim sistemini yeniden başlatmam gerekiyor. Not: Makine 6GB RAM'e sahiptir ve hepsi meşgul DEĞİL, yaklaşık 3GB ücretsizdir, ancak 1G takas edilirken performansı önemli ölçüde düşürür.


3

Hem OS X hem de diğer UNIX değişkenlerinde makinelerde takas işlemlerini devre dışı bırakıyorum.

Hafıza azaldığında beni uyarmak için bir araç kullanıyorum ve sistemimin çökmesi konusunda asla endişelenmiyorum.

İMac'im 12GB'lık kapasiteye sahip ve takas devre dışı bırakılmış durumdayken, birden fazla geliştirme aracı, uygulama, tarayıcı vb. Olsa bile hemen hemen her zaman 4GB'ım ücretsiz.


5
Hangi bellek aracını kullanıyorsunuz?
Dmitriy

1

Buradaki yinelenen kalıp şudur:

HAVE takas dosyasını devre dışı bırakanlar, performans artışı sağladı (yeterli fiziksel RAM ile)

Engelli olmayan mekanı değiştirmeyenler işe yaramayacağından ve korkunç bir şey olacağından eminler ve kesinlikle yapmamanızı tavsiye ediyorlar.

Bu sadece iki şeyden kaynaklanıyor:

  1. Artık geçerli olmayan kıtlık ve yüksek fiziksel RAM maliyeti hakkındaki eski fikirler
  2. MacOS'ta, gerçekten fiziksel RAM olduğunda takas dosyalarının kullanılmasına neden olan gerçekten zayıf bir takas mekanizması.

1
Değiştirme alanı SADECE gerektiğinde kullanılırsa, o zaman harika olurdu. Ancak, durum böyle değil. MacOS'umda 2 gb ve 4 gb sanal makineler kullanıyorum. 1.6 gb boş RAM'im varsa, 1GB sanal makine (veya başka bir program) çalıştırabilmeliyim, ancak işletim sistemi disk belleği çalıştırmaya başladığından dolayı yapamam. Sonuç olarak, RAM'imin yalnızca% 85-90'ını kullanabilirim. RAM'imin TÜMÜNüne ulaşmak istersem, disk belleği devre dışı bırakmam gerekiyor. Bunu tüm Windows makinelerimde yapıyorum ve aynı şeyi MacOS'umda da yapmak istiyorum. Bir programın RAM'i tükenirse, başarısız olur. İstediğim şey bu. Diğer, çalışan uygulamaları istemiyorum

3
YMMV. Artık RAM yüklü makinelerde herhangi bir performansa yardımcı olacağını bulamadığım için takas işlemini artık devre dışı bırakmıyorum. Eskiden eskiden geri döndüğü için geçmişte kullanılırdım. Günümüzde sadece takas devre dışı bırakarak herhangi bir performans değişikliği görmüyorum, uygulama kararsızlığının çok arttığını görüyorum.
Brian Knoblauch

1
İstenmeyen şey olacak gerçekleşmesi bir insan onlar yüzünden düşük bir bellek hatası için başka bir program ve zamanla, makine kilitlenmesine başlatmak edemez unutacak olmasıdır. Bunun korkunç, komik olması, eğitim zamanlamasına, yedekleme sıklığınıza ve gecikmelere toleransınıza bağlıdır.
bmike

1

Sadece kişisel bir deneyim.

Memory Amount    |
 4 GB            | Don't disable it, Mountain Lion itself boots with about 1 GB.
 8 GB            | Do if you don't run apps that requires more than 1 GB of memory, in short, virtualization software, Photoshop, and stuff.
16 GB or more    | Do it! Even Xcode or Final Cut won't use more than 4 GB of memory, at least as I've seen. Just don't run too many virtual machines though.

Kısa bir not: Mac'iniz entegre grafik kullanıyorsa, belleği ana belleğinizle çekirdek_task ile paylaşılır. Bu nedenle, bu miktarı toplam kullanabilmenizden çıkarmanız gerekecektir.

SSD kullanıcıları, daha fazla alana sahip olmak için tatmin edicidir, ancak sanal belleğin SSD'ler üzerinde büyüdüğünü bilmek önemlidir, bundan çok fazla performans kazanabileceğinizi bilmek önemlidir. SSD'ye zarar veriyor mu? Evet, ancak fark etmeden önce Mac'inizi değiştireceksiniz.


1
Retina MacBook Pro'mda sanal belleği yalnızca 8 GB bellekle devre dışı bıraktım. İşte matematik, sistem yaklaşık 2 GB bellek sayma tümleşik grafik kullanır. Yani bu benim için 6 GB. Xcode for work'i yapıyorum, bu durumda en fazla 2 GB bellek tüketiyor. Bu yüzden çok fazla yedek var.
Shane Hsu

1

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!


0

2011 Macbook havamdaki (4GB RAM, 128GB SSD) takas dosyasını devre dışı bıraktım çünkü takas dosyasından kalan tüm HD alanımı yavaşça yedikten sonra yeniden başlatmak zorunda kaldım. Bu şekilde, fikir şu ki daha az program çalıştıracağım.

Gerçekten işe yarayıp yaramadığını ya da "Kablolu" hafızayı silmek için yine de yeniden başlatmam gerekip gerekmediğini göreceğim, ancak şimdilik iyi çalışıyor gibi görünüyor. Bellek bir kez gerçekten dolduğunda, bilgisayar SSD'm belleği bittiğinde olduğu gibi yavaşladı - ancak uygulamaları bıraktıktan hemen sonra çok daha hızlı bir şekilde iyileşti. (Ve ben aslında SSD'yi doldururken yapamadığım uygulamaları bırakmayı başardım).

Kararlılığın nasıl akıllıca gittiğini göreceğim, ama şimdiye kadar mutlu bir kampçıyım. Ayrıca beni bir seferde daha az sayıda uygulama (ve Chrome sekmeleri) çalıştırmaya zorluyor, bu da görev odağı için iyi bir şey.


0

Değişim dosyasını devre dışı bırakmanın birincil nedeni hız değil - disk alanı.

Biri rutin olarak tam bir sürücünün 5 GB'sinde çalışan bir kullanıcıysa, takas devre dışı bırakılması, sürekli olarak boşalan tıkanıklığı durduracaktır; Rutin olarak 4+ GB swapfile ile rutin taramayı önlüyorum.

Eski makinelerde hız artışı şaşırtıcı; SSD donanımlı modern makinelerde o kadar etkileyici değil. (Bir iMac'teki OSX 10.0 altında, sanal bellek kullanmak, sürücüler arasında dosya kopyalama dahil olmak üzere birçok işlemin hızını yarıya indirdi).


Bu daha çok kornayı sabitlemek gibi geliyor çünkü frenler çalışmıyor. Sürücü çok dolu ise, verilerden bazılarını alın.
Tetsujin

@Tetsujin Bu sürücüdeki en büyük tek dosya swap dosyasını WAS yaptı.
aramis

amacım hala duruyor. Daha az veri, daha büyük sürücü veya daha fazla RAM ve buna gerek kalmaz.
Tetsujin
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.