SSD'm için btrfs veya Ext4 kullanmalı mıyım?


16

Ofis bilgisayarımın Ubuntu 11.10 (Oneiric) amd64 masaüstü kök bölümü için SSD için btrfs (atma, sıkıştırma = lzo ve space_cache seçenekleriyle) veya Ext4 (atma seçeneğiyle) kullanmalı mıyım?

/ home bir HDD olacaktır, bu nedenle güvenilirlik verilerimi değil işletim sistemini etkiler.

Yanıtlar:


13

Phoronix tarafından yapılan testlere göre , her zaman birçok faktöre bağlıdır. Bir durumda , bir SSD'deki büyük dosyaları okurken Btrfsçok daha iyi olacaktır EXT4. Benzer şekilde Disk işlem performansı göz önüne alındığında, Ext4daha sonradan daha iyi performans gösterebilir.

Bu testlere burada , burada ve burada bir göz atabilirsiniz (UYARI: Uzun makaleler).

Ancak toplam olarak, Btrfs şu anda EXT4 dosya sistemi üzerinde , SSD modunda kullanırken bile nicel bir performans avantajına sahip değildir .

Şimdilik seçim yapabilirsiniz Ext4.


2
Makaleler sırasıyla 2011 Eylül, 9 Ağustos 2010 ve 29 Mayıs 2009 tarihleri ​​arasındadır. En son odaklanmak, çünkü btrflerin son 2 yılda evrimleşeceğini varsayıyorum. Sayfa 4'teki btrfs + LZO grafiği, sıralı okuma ve yazma performansı için şaşırtıcıdır, ancak btrfs rastgele yazma işlemleri ile kötü sonuç verir, bu nedenle DB'ler ve VM görüntüleri için kesinlikle btrfs'ye hayır. Kök bölümü ile yük çoğunlukla rastgele okumalar, hangi ext4 daha iyi değil sanırım.
Graham

Birkaç yıl içinde Btrfs EXT4'ten daha iyi bir seçeneğe dönüşecek. Daha umut verici bir dosya sistemi :)
NBK

7

2016'da bu soruya rastlayanlar için ... ext4 kullanın. Ben btrfs denedim ve fark önemli. 10 günlük bir süre içinde ext4'e IO'lar yazın 17.800 sektör. Btrfs? 490.400 sektör. Aynı SSD, özdeş dosya sistemi, farklı bölümler. Temel olarak, aynı iş yükü.

Sürücüde sıfır yazma etkinliği olduğunda hem ext4 hem de btrfs "sessiz" olur. Bu iyi.

Ext4 değiştirilen verileri ve bazı ek yükleri yazar. Genel gider, yazılan verilerle ilgilidir. 4K yazma (1 blok) bir sonraki işlemde yaklaşık 50-80 blok ek yükü iter. (Ext4 Journal tamamen etkindir)

Btrfs üzerinde tek bir 4K bloğu değiştirin ve bir sonraki işlemde 4000-5000 blok ek yükü itin. Varsayılan taahhüt 30 saniye, sanırım. 120 kullandım.

Şimdi, SSD'yi nasıl kullandığınıza bağlı. Kök olarak, genellikle oldukça sabit, düşük seviyeli bir yazma akışı vardır. Günlük dosyaları, ntp drift dosyaları, man db yeniden oluşturma, opensm topoloji güncellemeleri, vb.

Yukarıdaki 10 günlük sayılar "yazma sınırlı" SSD'm içindir. Bu 17.800 sektörün büyük bir kısmı ufacık bir sistem güncellemesinin sonucuydu. Biri btrfs kopyası acı çekmedi. Yazarlarım tam olarak ntp drift, opensm topolojisi ve man db güncellemeleri (her gece). Sistem yükseltmeleri vim /etc/whatevervb. Gibi aktif olarak başlatılanlar dışında başka hiçbir şey bu diske vurmaz .

Genel olarak, SSD'ler gerçekten çok sayıda yazıya maruz kalacak. Onları boşa harcamanın nedenini göremiyorum, çünkü haber medyası tavşanları ve gökkuşağıları takip ediyor. COW için bu fiyatı ödemek istiyorsanız, bunun için gidin. "Performans" için çok fazla değil. Bu bir SSD ve muhtemelen insan tarafından bilinen en kötü "dosya sistemini" koyabilir ve yine de kaba bir güçle bir miktar performans elde edebilirsiniz. Ext4, insanoğlunun bildiği en kötü dosya sistemi değil.

Aylık fs kontrolü yok. Aşağıdaki komut dosyasını deneyin. % 100 kesmek, md montaj noktaları için çalışmaz,

#! /bin/bash
dev=`cat /proc/mounts | grep " $1 " | awk '{print $1}'`
x=`basename $dev`
vmnam=`lsblk $dev -o MOUNTPOINT,PKNAME | grep "$1" | awk '{print $2}'`
vmx=`vmstat -d | grep $vmnam | awk '{print $8}'`
lbax=`smartctl -a $dev | grep LBA | awk '{print $10}'`
tmpnam=`mktemp XXX`
echo "Tracking device: $dev, mounted on $1 (vmstat on $vmnam)"
tim=`date +%s`
timx=`date +%s`
while true
do
    vm=`vmstat -d | grep "$vmnam" | awk '{print $8}'`
    lba=`smartctl -a $dev | grep LBA | awk '{print $10}'`
    if [ "$vm" != "$vmx" ]
    then
        tim=`date +%s`
        dif=`dc <<< "$vm $vmx - p"`
        lbad=`dc <<< "$lba $lbax - p"`
        timd=`dc <<< "$tim $timx - p"`
        echo `date` " (sec=$timd) writes=$vm (dif=$dif) (lba=$lbad)"
        vmx="$vm"
        lbax="$lba"
        timx="$tim"
        find "$1" -mount -newer "$tmpnam" -print | grep -v "/tmp"
        touch "$tmpnam" 
    fi
    sleep 1 
done

Sürücünün kendisine göre kaç blok yazıldığını ve tam olarak hangi dosyaların güncellendiğini söyleyecektir. Root privs gerekir. Kendin için gör. Kök dosya sisteminde SSD çalıştırıyorum ve stat.sh komut dosyasını çağırıyorum. Yani...sudo ./stat.sh /


Karşılaştırma yönteminizi beğenmedim. Örneğin, aylık fs kontrolü başladı ve bu sonuçları aldınız. Btrfs şimdi hemen hemen her yerde ve iyi bir nedenden dolayı varsayılan.
Barafu Albino

Aylık fs kontrolü yok. Aşağıdaki komut dosyasını deneyin. Bu% 100 kesmek, md
montaj noktaları

2
Neden böyle büyük bir yazma yükü? 1 bloğun ext4 üzerine bile yazılan 50-80 blok oluşturduğunu - yani 40 kat daha fazla ihtiyaç duyduğunuzu söylediniz. Neden?
Golar Ramblar

Testimde, 2018'in sonunda hala doğru olup olmadığını sorguladım. testimde, iotop ve smartctl'ye göre yazılan miktarı karşılaştırdım ve ikincisinin, önceki (ext4) miktarının 3 katı olduğunu iddia ettim.
Michael

2

En son test ettiğimde ve henüz hiçbir yerde farklı bir şey duymadım, ext4 katı hal medyasını yiyor . (parmak sürücüsü, yarıiletken sürücüler, vb.) Böyle bir aygıtta kullanmanızı önermiyorum. Bunun yerine ext3 kullanın. SSD ile ilgili çoğu durumda, farkı yine de söyleyemezsiniz.

BTRFS henüz tam olarak kararlı değil. Ancak, kritik olmayan uygulamalar için yeterince kararlıdır. Önyüklenebilir flash sürücüler yapmak için kullandığım şey bu. Mount seçenekleriniz olarak sıkıştırma = zlib ve ssd kullanırsanız, sıkıştırma çoğu katı hal ortamının düşük yazma hızlarını telafi eder ve ssd, ayırma algoritmasını bu tür cihazlarda önemli ölçüde daha iyi performans gösterecek şekilde değiştirir ve donanım tarafından zayıf aşınma dengelemesi. Hala sorun olan tek performans alanı, senkronizasyon çağrılarının yavaş olmasıdır. Bu genel kullanım için bir sorun değildir, ancak dpkg çağrıları her işlemden sonra senkronize edilir, bu nedenle yazılımı yüklemek ve güncellemek yavaş olabilir. BTRFS ayrıca, belirli koşullar altında oldukça faydalı olan anlık görüntü ve diğer gelişmiş özellikler de sunar.

BTRFS ile gitmeye karar verirseniz, 3.2.0-2 veya sonraki bir çekirdeği kullanarak bir dağıtım kullandığınızdan emin olun. 3.1.x gerekirse kullanılabilir. Daha eski çekirdekler için en yeni BTRFS modüllerini kendiniz derlemeniz gerekir. Dahili olanlar neredeyse kararlıdır, ancak hata düzeltme eski sürümlerde çalışmaz, bu da bir şeyler ters giderse sizi bir dere bırakabilir. En son sürümlerde en yaygın hataları gerçekten onarabilen fsck vardır.

Son bir uyarı, bir BTRFS dosya sistemindeki takas dosyalarının onu bozacağına dair haberler duydum. Bu sorun giderilmiş olabilir, ancak uygulamadan önce dikkatlice kontrol ettiğinizden emin olun.

BTRFS kurulumunu istediğiniz şekilde yapılandırmak için yardıma ihtiyacınız olursa bize bildirin. Belirli şeyler için oldukça iyi çalışan birkaç çılgın olanlar yaptım.


2

Anekdot kanıtlara dayanan bir katı hal sürücüsünde ext4 kullanmam ve ext4'ün dosya sistemiyle ilişkili okuma ve yazma sayısı nedeniyle bir SSD'nin ömrünü büyük ölçüde azaltabileceğini gösteren kendi deneyimim. Son zamanlarda okuduğum bir makale, SSD'deki optimize edilmemiş (sayfa boyutu, vb.) Ext4'ün disk ömrünü yarıya indirebileceğini öne sürdü. Bir haftalık sorun giderme işleminden sonra, kendi SSD'lerimin bu sorun nedeniyle sadece sekiz ay sürdüğü sonucuna vardım. Bir SSD kullanıyorsanız, dosya sisteminin ayarlandığı tipik silindir boyutundan farklı olabilecek flash sayfa boyutu gibi şeylere dayanarak dosya sisteminin nasıl optimize edileceği konusunda çok sayıda okuma yapın.


2
Okuduğunuz makaleye bağlantı veya başka tanımlayıcı bilgiler sağlayabilir misiniz?
Eliah Kagan

Bu makaleyi özellikle bulmaya çalışacağım. Unutmayın, bu ifade puro dükkanında sörf yaparken internette bulundu. TRIMM ve optimizasyon gibi konulardaki makalelere bakın. Ne yaparsanız yapın, benim gibi olmayın ve sekiz ay sonra "sudo reboot" gibi komutlarda G / Ç hataları almaya başlayın.
user75153 06
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.