Linux: takas bölümü oluşturmuyor musunuz?


9

Ben RAM ya da RAM olduğunda takas olduğunu duydum beri merak ediyordum ve çok fazla RAM (8GB) var çünkü, çok fazla takas kötüdür ....

bir takas bölümü oluşturmazsam ne olur?

Ayrıca, hazırda bekletme için ihtiyacım var mı yoksa şart değil mi?


takas oluşturmanız gerekir, bir zamanlar takas oluşturmamaya çalıştım, yüklemeye devam
edemedim

pencerelerin içine yüklediğinizde ne olur? Bunu yaptım ve pencerelere göre teçhizatım için biraz yavaş görünüyordu, ama bölümü oluşturmadım
Mihai Bratulescu

Pencerelere Linux yüklemeyi hiç denemedim, her zaman ayrı bir bölüm oluşturuyorum
Lynob

Yanıtlar:


13

Modern işletim sistemleri, RAM'in verimli bir şekilde kullanılabilmesi için takas alanı gerektirir. Sisteminizde bol miktarda RAM olsa bile, RAM israfı daha küçük bir arabellek önbelleği ile sonuçlanır, bu da artan disk G / Ç anlamına gelir. Ne kadar RAM'iniz olursa olsun, sistemin onu verimli bir şekilde kullanmasını istersiniz. Verimli bir şekilde kullanılması, erişilmesi son derece düşük olan şeyleri RAM'den çıkarmak anlamına gelir.

Tipik bir sistemi başlattığınızda, çok sayıda hizmet başlatılır. Programlar başlatma kodunu çalıştırır ve işlemdeki özel bellek eşlemelerini değiştirir. Bu hizmetlerin bir kısmı bir daha asla çalışmaz. Birçoğu saatlerce koşmayacak. Takas olmadan, işletim sisteminin bu hizmetlerle ilişkili değiştirilmiş özel bellek eşlemelerini RAM'de sonsuza kadar tutmaktan başka seçeneği yoktur. Bu hiçbir zaman disk önbelleği olarak kullanılamayacak olan RAM'dir.

Yani ihtiyacınız olsun ya da olmasın takas etmek istersiniz.


8
"Yani ihtiyacınız olsun ya da olmasın takas etmek istersiniz." - Görünüţe göre ister istemesin deđil mi, deđiţtirmeye ihtiyaç duyduđu davayý yaptýn.
talaş

2
Bol miktarda RAM'im olduğunu ve 2GB harcayabildiğini varsayalım. Neden bir takas dosyasına ihtiyacım var?
Tarik

1
Bu durumda, bir takas dosyasına ihtiyacınız yoktur. Ama iddia ettiğim gibi, sen bir tane istiyorsun. Çünkü RAM'i boşa harcayabileceğinizi veya ödeyemeyeceğinizi, gerekmediğinde RAM'i verimsiz kullanmak istememelisiniz .
David Schwartz

Takas olmadan CLI sunucusu çalıştırıyorum ve mükemmel çalışıyor. Bir teamspeak3 sunucusu, apache2, node.js çalıştırırken 500M'den fazla koç kullanıldığını hiç görmedim. Bu yüzden RAM'i "verimsiz" olarak kullanmak beni rahatsız etmiyor YASAL UYARI: Bu sunucunun web sunucusu işlevi yalnızca geliştirme amaçlıdır, bu nedenle yük her zaman düşüktür. Ve geliştirme sırasında bir bellek sızıntısı varsa, OOM katili, tüm bu saçmalığı diske itmekten ziyade koç biter bitmez onu öldürmeyi tercih ederim.
Yerel Kodlayıcı

12

Birkaç yıldır takas olmadan bir masaüstü sistemi kullanıyorum ve çok iyi gidiyor! Farklı olan birkaç davranış vardır; bunlardan bazıları avantajlıdır ve bazıları size zarar verebilir. Her şey ne yaptığınıza bağlı.

Önemli bir fark, bellek bittiğinde sistemin nasıl davrandığıdır:

Takas bölümü yoksa, OOM katili hemen çalışır. Hafıza sızdıran bir programınız varsa, bu muhtemelen öldürülen program olacaktır. Bu olur ve sistemi neredeyse anında kurtarırsınız.

Orada ise ise swap bölümü, çekirdek takası içine belleğin içeriğini iter. Errant işlemi bellek ayırmaya devam edebilir. Bu, takas bitene kadar devam eder, büyük bir takas bölümünüz varsa on dakika ila bir saat arasında olabilir. Bunu yaparken sisteminiz taramayı yavaşlatır. Bir terminal açmak ve süreci öldürmek imkansız hale gelir. Bu olduğunda genellikle güç kablosunu çıkarırım.

Benim verilerini kaybedeceğim beri Yani, her durumda sistem Ooms, ben bir toparlanma (yüksek) şansı en az eski seçeneği tercih zaman.


Bu da benim deneyimim oldu. Linux, rahatsız edici programı kendiniz öldürmenize izin verecek kadar iyi bir şekilde değiştirmiyor. OOM katilinin kendisi yapması daha güvenilirdir. Tabii ki bu korkunç bir tasarım - daha iyi olanı, rahatsız edici işlemi öldürmek yerine dondurmak ve çözmenize veya öldürmenize izin vermek için güzel bir GUI sağlamaktır, ancak ... Linux.
Timmmm

3
Sonunda mantıklı ve kendi deneyimlerime uygun bir yanıt. "Bir takas bölümünüz olmalı" nın arkasındaki mantığı anlayamıyorum. Sistemi hazırda bekletmek istiyorsak.
Tarik

5

Hazırda bekletme için takas gerekir, aksi takdirde gayet iyi alabilirsiniz.


Bu nedenle takas alanının boyutu, sisteminizde takılı olan belleğin biraz üzerinde olmalıdır.
mdpc

@mdpc, ille de değil; sadece atılamayan kullanılmış ram'ı tutacak kadar büyük olmalıdır (örn. diskteki bir dosya tarafından desteklenen veriler).
psusi

ve bunu yaratılışta nasıl tahmin edersiniz? Bölümleme genellikle ayarlandıktan sonra değişmek için bir acı olduğundan, uygun planlama ve daha kötü duruma hazırlık yapmaz mıydınız?
mdpc

3

Takas alanına sahip olmanın performansı olumsuz etkilediğini düşünmek yaygın bir yanlış anlamadır. Performansı ciddi şekilde etkileyen şey yeterli RAM'in olmamasıdır. Takas alanının, güvenilirliği önemsemediğiniz sürece performans üzerinde olumsuz bir etkisi yoktur. Yeterli RAM'e sahip olduğunuzu düşünseniz bile (ve RAM sıkıntısı rapor edilmediğinde) performans üzerinde olumlu bir etkisi olabilir .

Dikkate alınması gereken üç durum vardır:

  • 1: Dahili çekirdek ihtiyaçları için yeterli RAM vardır, tüm uygulamalarınızın çalışma sayfalarını RAM'de bulundurmaları ve yine de önbellek önbelleğinin dosya sistemi sıcak verilerinin çoğunu saklaması için "ücretsiz" RAM'e sahip olmaları gerekir.

  • 2: arabellek önbelleğinin tam olarak verimli olması için yeterli boş RAM'iniz dışında yukarıdakilerle aynı.

  • 3: Uygulamalarınızın kullandığı sayfaları bile depolamak için yeterli RAM yok.

Bir üretim makinesi için norm olması gereken, takas alanı olan veya olmayan bir şey (en azından Linux tabanlı işletim sistemlerinde ve belleği aşırı işleyen diğer işletim sistemlerinde).

Durum 2'de, takas alanı olması , sistemin çok seyrek kullanılan sayfaları dışarıda bırakmasına ve ardından arabellek önbelleğinin rolünü daha iyi oynamasına izin vererek genel performansı artırabilir .

Durum 3'te, takas alanı olması uygulamanın sayfalama nedeniyle performans düşüşü pahasına çalışmaya devam etmesini sağlar. Öte yandan, bir takas alanının (veya yeterince geniş bir alanın) olmaması, uygulamaların rastgele çökmesine neden olur. Ayrıca, işletim sistemi ayarlarına bağlı olarak, OOM katili, kritik verilerinizi kaydetme şansı bile vermeden güçlü bir RAM talebi varsa, en çok bellek aç uygulamaları öldürmeye karar verebilir.

Bu ikinci durum, seçim yapmanız gereken bir durumdur. Yanıt süresinin çok önemli olduğu ve bir işlem / sürecin kaybedilmesinin önemli olmadığı sistemler gibi, işlemlerin öldürülmesinin tercih edilen seçenek olduğu kesinlikle bazı kullanım durumları vardır.

Ancak, çoğu durumda inanma eğilimindeyim, kullanıcı / yöneticinin RAM eksikliğini fark etmesine ve veri kaybetme riski olmadan buna göre hareket etmesine izin vermek daha iyidir.


1

Bir takas bölümü kullanmak istemiyorsanız, bir takas dosyası kullanabilirsiniz: normal bir dosyada depolanan ve takas alanınız olarak kullanılan bir dosya sistemi görüntüsü.

Aşağıdaki makaleler bunun nasıl yapılacağını ayrıntılı olarak açıklamaktadır:


bir takas dosyası ile bir takas bölümü arasındaki fark nedir? ve bende yoksa ne olurdu?
Mihai Bratulescu

erişim hızı ....
mdpc

2
EVET kullanılırsa oldukça önemlidir. Bir bölüm kullanıyorsanız, basit adresleme, bir dosya kullanıyorsanız, bir takas dosyası kullanmak için tüm dosya sistemi ek yükünü yapmanız gerekir ve segmentlerin diskte nerede olacağını garanti edemezsiniz.
mdpc

2
@mdpc Dosya sistemi yükü çekirdek 2.6'dan başlayarak önemsizdir. Meta veri, önbellek ve dosya sistemi kodu atlandı. Ham disk bloklarına doğrudan doğrudan erişilebilir.
jlliagre

1
@mdpc Son zamanlarda oluşturmadığınız sürece takas dosyası önemli ölçüde parçalanmamalıdır. Dahası, takas erişimi nadiren ardışıktır, ancak talep çağrılarının nasıl çalıştığından ötürü rasgele olur, bu yüzden parçalanma bir sorun olmamalıdır.
jlliagre

0

Biraz tehlikeli ama takas alanı olmadan koşabilirsiniz. Ama nihayet sahip olduğunuz bellek miktarını aşarsanız, sisteminiz hemen haber verilmeksizin hemen çökecektir.

Takas edilen şey temel olarak hafızanız için genişletilmiş ancak çok daha yavaştır. Eğer aşarsanız takas etmeye başlayacaksınız, gerçekten hayatınızı sisteminizden çıkaracaktır .... Ancak, hatalı süreçleri öldürerek yine de sisteminizi kurtarabilirsiniz.

Bazı programlar takas alanı ayırmada (ancak kullanmamada) ısrar eder, hatırlıyorsam bunlardan bazıları veritabanı programlarıdır. Yine, takas alanı olmadığında çalıştırılabilecek programları sınırlandırabilirsiniz.

Son olarak, alanı yedeklemek zorunda değilsiniz aslında SWAP UCUZ bakın. (Sistemlerini yedekleyen bu seçkin sistem yöneticilerinden biri olduğunuzu umuyorum).

Öyleyse yarat.

Başparmak kuralım 2 * bellek boyutundaydı ..... ama şimdi 1 * bellek boyutunda birçok durumda iyiyim ama genellikle 1.5 * (bellek boyutu) kullanıyorum. Bu kadar büyük bir miktar yaratmak zorunda değilsiniz, ama ben ... özellikle yaptığınız herhangi bir üretim türü varsa.

Oh evet, ve hazırda bekletme için, toplam bellek görüntüsünü tutmak için takas GEREKİR. Ve böylece h8ibernation düşünüyorsanız boyutu AT EN AZ (1 * bellek boyutu) + 100MB olmalıdır. 100 MB süreçte gerekli ek yük için.


yani ... bazı programlar için çalışabilmeleri için bir takas alanına mı ihtiyacınız var? 8GB ile koç
bitmekten

2x bellek boyutu kuralı eski ve modası geçmiş. Ancak bazı takasların olması kötü bir fikir değildir. Çok fazla disk alanı kullanmaz, bu nedenle kullanılan alanı kaçırmazsınız; yeterli RAM'iniz varsa genellikle kullanılmaz ve çekirdeği takasınıza atmanıza izin verir.
Hennes

@Hennes - notumu oku ... "eskiden"
mdpc

0

Linux takas bellek baskısı olur olmaz oldukça zor bir gereksinim var gibi görünüyor. Belirti, neredeyse tüm RAM aktif işlemler tarafından kullanılıyorsa, sistemin sert durması ve sabit diskin vahşi çalıştığıdır.

Neden?

Yedek dosyası olmayan sayfalar (genellikle dinamik bellek ayırmadan) takas olmadığında RAM'den çıkarılamaz. Çekirdek, aslında yakında tekrar ihtiyaç duyulsalar bile, bir destek dosyası olan sayfalara başvurur. e. takas olmadan bile çöp!

Bu ince sorun hakkında daha fazla ayrıntı için bu blog yayınına bakın.

Sonuç : Her zaman takas edin.

Ve kaba bir kılavuz olarak boyut için, çok fazla RAM'e sahip sistemler için bile, hazırda bekletmediğinizi varsayarsak, 4 ila 8 GB arasında bir şey kullanın. Daha fazla ayrıntı için Red Hat'in takas alanı hakkındaki belgelerine bakın .

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.