2-4GB sistemde ne kadar SWAP alanı var?


53

2-4 GB RAM'e sahip yeni bir Linux makinede (Debian) takas yapmam için hangi boyuta karar vereceğim? Gerçekten takas alanına ihtiyacım var mı?


3
2-4 GB, 5 yıl sonra artık gerçekten yüksek bellek değil.
fifi finansmanı

@KasperSouren Hayır, değil. O dönemde adil bir miktar oldu.
C. Ross,

Yanıtlar:


54

Bir makinede ne kadar takas kullanılabileceğini anlamanın bir çok yolu vardır. Yaygın öneriler, 2 x RAM, 1.5 x RAM, 1 x RAM, .75 x RAM ve .5 x RAM gibi RAM tabanlı formüller kullanır. Formüllerin çoğu RAM miktarına bağlı olarak değişebilir (bu nedenle 1GB RAM içeren bir kutu 2 x RAM takas (2GB) kullanabilirken 16GB RAM içeren bir kutu .5 x RAM takas (8GB) kullanabilir.

Dikkate alınması gereken bir başka şey, kutunun ne için kullanılacağıdır. Kutuda çalışan çok sayıda eşzamanlı çalışan işlem yapacaksanız, ancak bunların önemli bir kısmı zaman süreleri boşta kalır, sonra ekstra takas eklemek mantıklı olur. Çok az sayıda kritik işlem gerçekleştirecekseniz, fazladan takas eklemek mantıklıdır (bu, karşı sezgisel görünebilir, ancak bir dakika içinde açıklayacağım). Bir kutuyu masaüstü olarak kullanıyorsanız, ekstra takas eklemek mantıklıdır.

Takas içermesi gerekip gerekmediğine gelince, evet, söylemelisin. Ne yaptığınızı gerçekten bilmiyorsanız , daima takas alanını eklemelisiniz ve bunun için iyi bir nedeniniz var.

Bakın, Linux çekirdeğinin çalışma şekli, takas yalnızca tüm fiziksel belleği tükettiğinizde kullanılmaz. Linux çekirdeği aktif olmayan (uykuda olmayan) uygulamaları alır ve bir süre sonra uygulamayı gerçek bellekten değiştirmek için hareket ettirir. Sonuç olarak, bu uygulamaya ihtiyaç duyduğunuzda, uygulamanın hafızası takastan RAM'e geri okunurken anlık bir gecikme (genellikle sadece bir ya da iki) olacaktır. Ve bu genellikle iyi bir şeydir.

Bu, aktif uygulamalarınızın ek RAM'e erişmesini sağlayarak aktif olmayan uygulamaları "uyku" ya almanızı sağlar. Ek olarak, Linux bir makinedeki kullanılabilir (ayrılmamış) RAM'leri disk önbelleği olarak kullanır ve bu da çoğu (yavaş) disk etkinliğini daha hızlı ve daha hızlı yanıt verir hale getirir. Etkin olmayan işlemlerin değiştirilmesi, daha fazla disk önbelleği sağlar ve makinenizi genel olarak daha hızlı hale getirir.

Son olarak, yüzleşelim, disk alanı ucuz. Gerçekten ucuz. Takas için (nispeten) küçük bir alan yığınını kaydırmamak için gerçekten iyi bir neden yoktur. Bir makinede 2GB - 4GB RAM ile çalışıyor olsaydım, muhtemelen takas alanımı en azından RAM'e eşit olacak şekilde ayarlardım. 2GB RAM'den az olsaydı, yine de en az 2GB takas ile giderdim.

GÜNCELLEME: Mükemmel bir yorumda belirtildiği gibi (ve eklemeyi unuttum), 'hazırda bekletme' moduna geçirmek isteyebileceğiniz bir dizüstü bilgisayar veya masaüstü kullanıyorsanız (Diski Askıya Al), o zaman her zaman en az hafızan olduğu gibi değiştir. Takas alanı, RAM 'ın içeriğini' uyurken 'bilgisayarda depolamak için kullanılacaktır.


22
Harika cevap, ama sadece bir şeyi unuttun. Masaüstü veya dizüstü bilgisayar ise, takas işleminin en azından sahip olduğunuz RAM kadar büyük olduğundan emin olun, böylece bilgisayarınızı hazırda bekletebilirsiniz. Bu, RAM'in değişmesini sağlar.
Sander Marechal

4
Harika yazı. Sander, ekleyeceğim tek şeyi beni yendi. Birden fazla diskiniz varsa, takas alanınızı etkin dosya sisteminizin geri kalanına sahip olmayan bir sürücüye yerleştirmek, çakışma olmayacağı için performansı artırabilir.
GreenKiwi

Geçtiğimiz yaz öğrendiğim gibi , eğer Java kullanıyorsanız önemli bir takas alanına sahip olmalısınız
warren

Kullanıcının,% 100 çalışma süresi olan bir Masaüstü bilgisayarda (hazırda bekletme modu olmadan) gerçekte kullanacaklarından (16 GB / 32 GB) çok daha fazla miktarda RAM varsa, yine de SWAP'a koyulmasını istemenizi önerir misiniz? Bana öyle geliyor ki, kapasitesine yaklaşmadığınız sürece her şeyi RAM'e bırakmanın faydaları olacak gibi görünüyor.
earthmeLon

1
@earthmeLon - Hala biraz takas yapmamı öneririm. Diskler bugünlerde büyük ve ucuzdur, bu nedenle takas için birkaç GB disk alanı kaybı ihmal edilebilir düzeydedir. Bir takas alanının olması, bir şey beklediğinizden daha fazla RAM yerse diye size bir sigorta poliçesi verir.
Christopher Cashell,


12

Geç cevap ve bunun seçilen cevapta hemen hemen ele alındığını düşünüyorum, ancak burada @ ssapkota tarafından sağlanan cevapta iyi ve kolay bir şekilde sindirilebilir bilgiler var ( buraya kopyalanıp yapıştırılmış).

İşte RedHat'tan çok iyi bir öneri: Tavsiye Edilen Sistem Değiştirme Alanı

Aynı linkten bir alıntı:

Geçtiğimiz yıllarda, önerilen takas alanı miktarı sistemdeki RAM miktarıyla doğrusal olarak arttı. Ancak, modern sistemlerdeki bellek miktarı yüzlerce gigabayta yükseldiği için, bir sistemin ihtiyaç duyduğu takas alanı miktarının o sistemde çalışan bellek iş yükünün bir işlevi olduğu kabul edilmektedir. Bununla birlikte, takas alanının genellikle kurulum sırasında belirlenmiş olması ve bir sistemin hafıza iş yükünü önceden belirlemek zor olabileceğinden , aşağıdaki tabloyu kullanarak sistem takas işleminin belirlenmesini öneririz.

Mevcut tablo (Aralık 2012 itibariyle):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

Orijinal tablo:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 

8

Bununla ne yaptığınıza biraz bağlı. Uygun iş yüküyle, 16 MB veya 16384 MB RAM'iniz olsun, herhangi bir takas alanına ihtiyaç duymazsınız; Gerçekten de çoğu gömülü Linux cihazı herhangi bir şey olmadan çalışır (ne ile değiştirirlerdi?)

RAM fiyatları düşünüldüğünde, muhtemelen aktif hesaplama için takas kullanmayacaksınız. Peki geriye ne kaldı?

  1. Masaüstlerinde, takas alanı diski askıya almak için kullanılır. Bellek içeriğinin ne kadar iyi sıkıştırıldığına bağlı olarak bu takas alanının 1 × RAM civarında olması gerekir.
  2. Disk önbelleğine daha fazla yer açmak için etkin olmayan görevlerin RAM'den kaldırılmasını sağlamak
  3. Aynı, ancak etkin işlemlerin yığın / yığın için kullanmasına izin vermek

(2) ve (3) büyük ölçüde iş yüküne bağlıdır. Masaüstlerimde, diğer masaüstlerinde çalışan vim, xterms vb. Bırakmaktan (2) 4GB + 'ı kolayca kullanabilirim.

Çalıştığım sunucuların çoğunda, hiçbir şeyin değiştirilebildiği neredeyse hiç bir şey yoktur ve 1-2 GB takas (RAM miktarından bağımsız olarak) Tamam görünür.


takas alanı ayrıca , JVM'yi kullanan herhangi bir şeyi çalıştırdığınızda da kullanılır : Java kullanıyorsanız takas alanını tahsis etmeyi unutmayın!
warren

@ warren: Her biri 3GiB aşan, ancak takas kullanmayan Tomcat örneklerine sahibim (ve biri sargı kullanıyor ve bu yüzden değiştirilemiyor). Neden bahsettiğinden emin değilim.
derobert

JVM'de, geçen yaz karşılaştığım minimum ve maksimum bellek ayarları ile ilgili yarı belirsiz bir hata var ( antipaucity.com/?p=984 ). TL; DR - JVM her ne zaman işletim sisteminden daha fazla bellek istediğinde, takas etmek için kendini yazar, yeni bellek öbeğini alır, daha sonra belleği RAM'e tekrar okur, böylece belleği bitişik olur
warren

@ warren: Tamam, 64-bit'te OpenJDK kullanıyorum, Xmx ve Xms de aynı. Ama java'nın kendini değiş tokuş etmeye nasıl zorlayacağından emin değilim, tek çağrı kapanışı olacak madvise, ama bu başarısız olmayacak ... böcek toplanması sırasında hafızanın tükenmesi hakkında konuşacak. Takas eklemek, bunu engeller, elbette, ancak RAM ekleyecektir. Belki de PAE ile 32-bit nedeniyle?
derobert

64-bit JVM ile de olur: aynı değerleri ayarladıysanız Xmsve Xmxayarlamazsanız, sizi kötü bir şekilde ısırır: nihayet izleyene kadar iki + hafta boyunca bizim için büyük sorunlara neden oldu
warren

4

Hangi hizmetleri ve uygulamaları çalıştırmayı planladığınıza bağlı. Hafıza kullanımınızı free -m ile izleyebilir ve takas bölümünüzü zamana göre ayarlayabilirsiniz.

İşte konuyla ilgili ilginç bir tartışma . Şahsen (ve bu tartışmayı okuduktan sonra) takas için yaklaşık 1 GB bıraktım.


2

Doğrudan Debian ile konuşamıyorum, ancak 2 GB RAM'in üzerine çıktığınızda, orijinal 2xRAM denkleminin genellikle 1xRAM'e düştüğünü biliyorum. Sanırım bir kez 16 GB RAM'e ulaştıysanız, öneri yine .75xRAM'a düşer.

Elbette, bunu Solaris için doğru buldum ve aslında Oracle kurulumları için kullanılan metrikti, yani üzerinde çalışacağınız uygulamalara bağlı olarak YMMV.


2

Her zaman en az RAM kadar değiş tokuş yapıyorum. Sadece bir gün makineye kış uykusu vermek istersem diye. Daha azıyla çalışabilir, ancak çalışamaz.

HDD alanı bugünlerde ucuz, bu yüzden takas alanından vazgeçmekte tereddüt etmiyorum.


2

Yer değiştirme alanı, aksi takdirde hemen belleğiniz biterse "doldurma" işlevi görebilir.

Bir işlem mevcut RAM'in tamamını kullandığında ve ardından bazı makineler çok yavaş çalışsa da, genellikle geri kazanabilirsiniz. Hangi işlemin soruna neden olduğunu görmek daha kolay olacaktır.


2
Bu iki ucu keskin bir kılıç: Ev bilgisayarımda Firefox 2.x kullanırken takas yazılımını kaldırdım, çünkü yavaş yavaş tüm hafızayı yiyordu ve makine değiştirilince tamamen kullanılamaz hale geldi; takas olmadan, firefox süreci basitçe çekirdek tarafından kapatıldı :)
wazoox

1

Yıllar boyunca, Windows makinelerinde RAM'iniz kadar takas yapmanız gerektiği kuralına uydum ... Daha fazla yazıcımız olsaydı Novell'de takas ayarını daha yüksek yapardık ... Linux için benim için kural ve uygulama 1GB oldu. Sahip olduğunuz her 2GB RAM için takas. Ve daha hızlı erişmesi için diskin önüne yerleştirin.

  • Bir posta / spam ağ geçidi ise, RAM’in iki katı
  • Eğer bir * server ise takas kullanmıyorum
  • LAMP sunucusuysa 1/2 kuralı etkindir.

  • Kilometre, uygulamaya ve GUI kullanımına bağlı olarak değişecektir.


Aslında, diskin ortasındaki takas işlemine en hızlı şekilde erişileceğini düşünüyorum .
Eddie,

0

1GB takas alanı oluşturdum ve kullanıldıkça daha fazla RAM aldım. Gerçekten modern bilgisayarlarda takas gerekmez, RAM çok ucuz.


0

Sistemi ne için kullanıyorsunuz? Şahsen ben takas kullanmıyorum. Herhangi bir şey belirteci 512 MB veya sadece bir şey kullanıyorsa, yerleşik ancak uzun süre aktif olmadığında işler diske girebilir.


0

Küçük bir belirteç takas kullanıyorum (genellikle 256 MB, ancak 64 MB bile yaptım) çünkü bir sistemi sıfır takas sistemiyle yapılandırmak özel bir konfigürasyona ihtiyaç duyuyor.

Disk alanı ucuz, ama slooooooooow. Sistem değişmeye başlar başlamaz, performans sıfırdır. Ve RAM artık çok pahalı değil.

İnan bana, biraz daha yavaş bir işlemci al ve daha fazla RAM al. 3.0 GHz yerine 2,8 GHz, en az 2 GB RAM satın almak için size yeterli para tasarrufu sağlar.

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.