Linux neden dosya yerine takas bölümünü kullanıyor?


32

Bana göre bir takas dosyası daha esnek.


1
Bir takas dosyasını Linux'ta kullanabilirsiniz. Bunu şimdi çoklu makinelerde yapıyorum. Özel bir şey kullanmıyorum, LVM'de yalnızca ext4 veya ext4 kullanmıyorum. Şifreleme veya karmaşık bir şey yok. Askıya alma ve hazırda bekletme modları, NVMe makinemde bile benim için çok çalıştı.
Cory T,

Yanıtlar:


32

Bir takas dosyası daha esnektir ancak bir takas bölümünden daha yanılabilirdir. Bir dosya sistemi hatası takas dosyasına zarar verebilir. Bir takas dosyası, dosya taşınamadığı veya silinemediğinden yöneticinin sıkıntısı olabilir. Bir takas dosyası hazırda bekletme için kullanılamaz. Geçmişte bir takas dosyası biraz daha yavaştı, ancak bugünlerde fark yok denecek kadar azdı.

Bir takas dosyasının avantajı, büyüklüğe önceden karar vermek zorunda değildir. Ancak, Linux altında yine de bir takas dosyasını çevrimiçi olarak yeniden boyutlandıramazsınız: dosyayı silmeniz, yeniden boyutlandırmanız, sonra yeniden kaydettirmeniz (veya farklı bir dosya oluşturup eskisini kaldırmanız) gerekir. Bu nedenle, bir takas bölümüyle karşılaştırıldığında, Linux altında bir takas dosyasına bu kadar yararı yoktur. Genellikle kalıcı bir fikstür yerine geçici olarak daha fazla sanal belleğe ihtiyaç duyduğunuzda kullanışlıdır.


4
Geçmişte ayrıca bir performans avantajı vardı. Ancak bunun 2.6 çıktığı zaman bittiğini düşünüyorum.
xenoterracide

Bu gerçekten soruyu cevaplamıyor gibi görünüyor. Yoksa bir şey mi kaçırıyorum? Cevap sadece takas dosyalarından bahsediyor ve bölümlerden hiç bahsetmiyor. @Gilles kasıtlıydı, yoksa sadece bir yazım hatası mı yaptınız?
gabe.

1
@gabe: Takas dosyalarını bölümlere göre tartışıyordum. Umarım bu şimdi daha açıktır.
Gilles 'SO- kötülük

1
Penz cevabındaki yorumlarımı buraya işaret ediyorum. Takas dosyalarında algılanan fs'nin neden olduğu performans kaybı tartışma konusudur.
ata

2
Ubuntu Topluluk Yardımına göre Wiki help.ubuntu.com/community/SwapFaq Hazırda bekleme için takas bölümü gerekir. Alıntı: "Aktif bir dosya sisteminde bir takas dosyası kullanamazsınız.". Ve performans ile ilgili olarak, dosya seyrek olmadıkça fark yoktur. serverfault.com/questions/25653/…
Erik Sjölund

28

İhtiyacınız olan tek şey adreslenebilir bir bellek havuzu olduğunda dosya sistemine bağımlılığı önlediğinden takas bölümü tercih edilebilir.

Ancak hiçbir şey, bir takas bölümü yerine ya da takas bölümünün yerine takas dosyası kullanmanızı engellemez.

  • Dosyayı oluştur:

    dd if=/dev/zero of=/extraswap bs=1M count=512
    
  • Dosya içeriğini başlat.

    mkswap /extraswap
    
  • Kullanın:

    swapon /extraswap
    
  • İşe yaradı mı bakın:

    free -m
    

Takas dosyasını her zaman açılışta kullanmaya başlamak için, / etc / fstab dosyasını düzenleyin ve ekleyin

/extraswap           swap          swap    defaults    0 0

[1] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html


5
moreswapBirden fazla takas alanına ihtiyacım olursa, terminalde alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
yazmama

bu iyi bir bilgi, fakat soruyu cevaplamıyor.
lesmana

6
Ayrıca, dosya sistemi ek yükündeki bit yanlış. Genel inanışın aksine, takas dosyalarının kullanımında hiçbir ek yük yoktur. Andrew Morton burada basit bir açıklama yapar . Bu , takas alanı daemonu gibi dinamik bir takas dosyası tabanlı takas yöneticisi kullanmanın nedenlerinden biri, iyi yapılandırılmışsa iyi bir çözümdür.
ata

Takas dosyası yaklaşımının bulutta çalışırken tek seçeneğiniz olabileceğini ekleyelim.
sorin

1

Belki de asıl sebep, ana çekirdeğin diske askıya alınmasının takas dosyaları ile çalışmamasıdır. Örneğin, Debian wiki yönergeleri, buna uswsuspihtiyacınız olursa yüklemek içindir .

Daha yakın zamanlarda, eğer takas dosyaları, eğer dosya sistemi işe yaramazsa btrfs, dağıtımların her zaman bir bölüm olarak takas oluşturması çok kolaydır.

Takas için bir dosya kullanmanın, çekirdek sürüm 2.6'dan önce potansiyel olarak bir bölümden daha düşük performansa sahip olduğu açıkça belirtilmektedir. https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15


1

Tamamlanması için kendi cevabımı ekleyeceğim:

@Gilles tarafından söylendiği gibi, takas dosyası hazırda bekletme için kullanılamaz. Bir takas dosyası kullanılırken, sistem takas dosyasının başlığını bulmalı, ancak bunu yapabilmek için takas dosyasını içeren dosya sistemi monte edilmeli ve günlüklü bir dosya sistemi (ör. Ext3, ext4 ve Linux tarafından kullanılan tüm modern dosya sistemleri) kullanılmalıdır. - diskten devam ederken monte edilemez. (Gerçekte, bunu yapmanın yolları var ama oldukça hantal.)

Kaynak: https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt


0

Bunun esas olarak, bir bölümdeki verilere erişim zamanının düşük olması nedeniyle olduğunu düşünüyorum. Takas dosyasının amacı, gerçekten RAM dışındayken ve sistemin çökmesine neden olabilecek devasa işlemlerin yapılması gerektiğinde, sistem yöneticisine yardımcı olmaktır. Bu durumda, gerektiğinde ara sıra takas dosyaları oluşturacaktır.

Ama yine de ikisine de sahip olabilirsin.

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.