क्या मुझे अपने SSD के लिए btrfs या Ext4 का उपयोग करना चाहिए?


16

क्या मुझे मेरे Ubuntu मशीन के लिए SSD 11.10 (Oneiric) amd64 डेस्कटॉप रूट विभाजन के लिए SSD के लिए SSD के लिए btrfs (त्यागें, सेक = lzo और space_cache विकल्प) या Ext4 (त्याग विकल्प के साथ) का उपयोग करना चाहिए?

/ होम एक HDD होगा ताकि fs विश्वसनीयता OS को प्रभावित करे न कि मेरा डेटा।

जवाबों:


13

के अनुसार परीक्षणों के अनुसार फेरोनिक्स किए यह हमेशा कई कारकों पर निर्भर करता है। एक एसएसडी पर बड़ी फ़ाइलों को पढ़ने Btrfsसे एक मामले में बहुत बेहतर होगा EXT4। इसी तरह डिस्क लेनदेन के प्रदर्शन पर विचार करते हुए, Ext4बाद में बेहतर प्रदर्शन कर सकते हैं।

आप इन परीक्षणों के माध्यम से यहां देख सकते हैं , यहाँ और यहाँ देख सकते हैं (चेतावनी: लंबा लेख)।

लेकिन कुल मिलाकर, Btrfs के पास अभी EXT4 फ़ाइल-सिस्टम पर मात्रात्मक प्रदर्शन का लाभ नहीं है , यहां तक ​​कि एसएसडी मोड में उपयोग करने पर भी।

तो आप Ext4अभी के लिए चुन सकते हैं।


2
लेख क्रमशः सितम्बर 2011, 9 अगस्त 2010 और 29 मई 2009 हैं। नवीनतम पर ध्यान केंद्रित कर रहा हूं क्योंकि मुझे लगता है कि पिछले 2 वर्षों में btrfs विकसित होंगे। पृष्ठ 4 पर btrfs + LZO चार्ट अनुक्रमिक पढ़ने और लिखने के प्रदर्शन के लिए अद्भुत है, लेकिन btrfs यादृच्छिक लेखन के साथ बुरी तरह से करता है इसलिए निश्चित रूप से DBs और VM छवियों के लिए btrfs को नहीं। मुझे लगता है कि रूट विभाजन के साथ लोड ज्यादातर यादृच्छिक पढ़ता है, जिसके लिए यह ext4 से बेहतर नहीं है।
ग्राहम

कुछ वर्षों के भीतर Btrfs EXT4 से बेहतर विकल्प में बदल जाएगा। इसकी अधिक आशाजनक फ़ाइल प्रणाली :)
NBK

7

2016 में इस सवाल पर ठोकर खाने वालों के लिए ... ext4 का उपयोग करें। मैंने btrfs की कोशिश की और अंतर काफी है। 10 दिनों की अवधि के लिए IO लिखकर ext4 को 17,800 सेक्टर्स तक पहुँचाया गया। Btrfs? 490,400 सेक्टर। समान एसएसडी, समान फाइल सिस्टम, विभिन्न विभाजन। मूल रूप से, एक ही कार्यभार।

जब ड्राइव पर शून्य लेखन गतिविधि होती है तब ext4 और btrfs दोनों "शांत" चलते हैं। अच्छी बात है।

Ext4 संशोधित डेटा, और कुछ ओवरहेड लिखेगा। ओवरहेड लिखे गए डेटा से संबंधित है। एक 4K लेखन (1 ब्लॉक) अगले प्रतिबद्ध पर ओवरहेड के लगभग 50-80 ब्लॉक को धक्का देता है। (Ext4 जर्नल पूरी तरह से सक्षम है)

Btrfs पर एक एकल 4K ब्लॉक को संशोधित करें और आप अगले प्रतिबद्ध में 4000-5000 से अधिक ओवरहेड ब्लॉक के बीच धक्का देंगे। डिफ़ॉल्ट प्रतिबद्ध 30 सेकंड है, मुझे विश्वास है। मैंने 120 का इस्तेमाल किया।

अब, यह इस बात पर निर्भर करता है कि आप SSD का उपयोग कैसे करते हैं। जड़ के रूप में, आम तौर पर एक निरंतर, निम्न स्तर, लिखने की धारा चल रही है। लॉग फाइलें, ntp बहाव फाइलें, आदमी db rebuilds, ओपनम टोपोलॉजी अपडेट इत्यादि, आदि प्रत्येक घटना को एक अन्य 4000-5000 के साथ एक btrfs ड्राइव को हथौड़ा करेगा।

उपरोक्त 10 दिन की संख्याएं मेरे "सीमित सीमित" एसएसडी के लिए हैं। उन 17,800 क्षेत्रों के थोक एक लघु प्रणाली अद्यतन का परिणाम थे। एक btrfs कॉपी को नुकसान नहीं हुआ। मेरे लेखक, वास्तव में, एनटीपी बहाव, ओपनम टोपोलॉजी और मैन डीबी अपडेट (रात्रिकालीन) हैं। सिस्टम अपग्रेड vim /etc/whatever, आदि जैसे सक्रिय रूप से शुरू की गई चीजों के अलावा और कुछ भी उस डिस्क को हिट नहीं करता है ।

पूरे SSDs पर बहुत सारे लेख लिखे जाएंगे। मैं सिर्फ उन्हें बर्बाद करने में बात नहीं देख सकता 'क्यूज़ समाचार मीडिया बन्नी और इंद्रधनुष का पीछा कर रहा है। यदि आप गाय के लिए इस कीमत का भुगतान करना चाहते हैं, तो इसके लिए जाएं। "प्रदर्शन" के लिए, इतना नहीं। यह एक एसएसडी है और आप शायद सबसे खराब "फाइल सिस्टम" को जान सकते हैं जो उस पर आदमी को पता है, और अभी भी प्रदर्शन का कुछ स्तर मिलता है - बस क्रूर बल द्वारा। Ext4, अब तक, सबसे खराब फ़ाइल सिस्टम नहीं है जो मनुष्य को ज्ञात है।

कोई मासिक एफएस जाँच नहीं। नीचे स्क्रिप्ट का प्रयास करें। यह 100% हैक है, md माउंटपॉइंट के लिए काम नहीं करेगा,

#! /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

यह आपको बताएगा कि ड्राइव खुद के अनुसार कितने ब्लॉक लिखे गए थे, और वास्तव में कौन सी फाइलें अपडेट की गई थीं। रूट प्राइवेट चाहिए। अपने आप को देखो। मैं रूट फाइल सिस्टम पर SSD चलाता हूं, और स्क्रिप्ट stat.sh को कॉल करता हूं। इसलिए...sudo ./stat.sh /


मुझे आपकी तुलना का तरीका पसंद नहीं है। उदाहरण के लिए, मासिक एफएस चेक में लात मारी गई और आपको वे परिणाम मिले। Btrfs अब हर जगह डिफ़ॉल्ट है, और एक अच्छे कारण के लिए।
बाराफू अल्बिनो

कोई मासिक एफएस जाँच नहीं। नीचे स्क्रिप्ट का प्रयास करें। यह 100% हैक है, md
माउंटपॉइंट्स के

2
इतना बड़ा ओवरहेड क्यों लिखा? आपने कहा, कि 1 ब्लॉक ने ext4 पर भी 50-80 ब्लॉक बनाए हैं - जो कि जरूरत से 40 गुना अधिक है। क्यों?
गोल्लर रामबलर

मैं सवाल करता हूं कि क्या यह 2018 के अंत में अभी भी सही है। मेरे परीक्षण में, मैंने iotop और smartctl के अनुसार लिखी गई राशि की तुलना की और पाया कि बाद वाले ने पूर्व (ext4) के रूप में 3x राशि का दावा किया।
माइकल

2

पिछली बार मैंने इसका परीक्षण किया था, और मैंने अभी तक कहीं भी अलग-अलग नहीं सुना है, एक्स 4 खाती है ठोस-राज्य मीडिया । (थंबड्राइव, सॉलिड-स्टेट ड्राइव आदि) मैं इस तरह के डिवाइस पर इसे इस्तेमाल करने की सलाह नहीं देता। इसके बजाय ext3 का उपयोग करें। SSD पर अधिकांश मामलों के लिए आप वैसे भी अंतर नहीं बता पाएंगे।

BTRFS अभी तक काफी स्थिर नहीं है। हालांकि, यह गैर-महत्वपूर्ण अनुप्रयोगों के लिए पर्याप्त स्थिर है। यह वही है जो मैं बूट करने योग्य फ्लैश ड्राइव बनाने के लिए उपयोग करता हूं। यदि आप अपने माउंट विकल्प के रूप में कंप्रेस = zlib और ssd का उपयोग करते हैं तो कम्प्रेशन, अधिकांश सॉलिड-स्टेट मीडिया की निचली गति के लिए बना देगा और sdd एलोकेशन अल्गोरिद्म को एक में बदल देता है, जो इस तरह के उपकरणों पर काफी बेहतर प्रदर्शन करता है और किसी भी को बना देगा हार्डवेयर द्वारा खराब पहनना। एक प्रदर्शन क्षेत्र जो अभी भी एक मुद्दा है सिंक कॉल धीमा है। यह सामान्य उपयोग के लिए कोई समस्या नहीं है, लेकिन dpkg हर ऑपरेशन के बाद सिंक को कॉल करता है, इसलिए सॉफ़्टवेयर स्थापित करना और अपडेट करना धीमा हो सकता है। BTRFS भी स्नैपशॉट और अन्य उन्नत सुविधाएँ प्रदान करता है जो कुछ परिस्थितियों में काफी उपयोगी होती हैं।

यदि आप BTRFS के साथ जाने का निर्णय लेते हैं, तो कर्नेल 3.2.0-2 या उसके बाद वाले डिस्ट्रो का उपयोग करना सुनिश्चित करें। यदि आवश्यक हो तो 3.1.x व्यावहारिक है। पुराने कर्नेल के लिए आपको नवीनतम BTRFS मॉड्यूल को स्वयं संकलित करना होगा। इन-बिल्ट वाले लगभग स्थिर होते हैं, लेकिन पुराने संस्करणों में त्रुटि-सुधार काम नहीं करता है, जो आपको गलत लगता है, तो आपको एक संकट छोड़ सकता है। नवीनतम संस्करणों में fsck है जो वास्तव में सबसे आम दोषों की मरम्मत कर सकता है।

एक अंतिम चेतावनी, मैंने ऐसी रिपोर्टें सुनी हैं कि BTRFS फाइल सिस्टम पर स्वैप यह भ्रष्ट होगा। यह मुद्दा अच्छी तरह से तय किया गया है, लेकिन एक को लागू करने से पहले सावधानी से जांचना सुनिश्चित करें।

यदि आपको किसी BTRFS सेटअप को जिस तरह से आप चाहते हैं, कॉन्फ़िगर करने में कोई मदद चाहिए, तो मुझे बताएं। मैंने कुछ पागल लोगों को किया है जो विशिष्ट चीजों के लिए अच्छी तरह से काम करते हैं।


2

मैं anecdotal सबूत के आधार पर एक ठोस राज्य ड्राइव पर ext4 का उपयोग नहीं करूंगा और मेरे खुद के अनुभव से पता चलता है कि ext4 एक एसएसडी के जीवनकाल को बहुत कम पढ़ता है और फाइल सिस्टम के साथ जुड़े लिखता है। एक लेख जिसे मैंने हाल ही में पढ़ा था कि SSD पर ext4 (पेज आकार आदि के लिए लेखांकन) को अपनाने से डिस्क जीवन आधे में कट सकता है। एक हफ्ते तक शूटिंग करने के बाद, मैं इस नतीजे पर पहुंचा हूं कि मेरे खुद के एसएसडी इस मुद्दे के कारण केवल आठ महीने ही चले हैं। यदि आप एक SSD का उपयोग करते हैं, तो फ्लैश पेज आकार जैसी चीजों के आधार पर फ़ाइल सिस्टम को अनुकूलित करने के तरीके के बारे में बहुत कुछ पढ़ें जो कि विशिष्ट सिलेंडर आकार से भिन्न हो सकता है जो फ़ाइल सिस्टम के लिए सेट है।


2
क्या आप अपने द्वारा पढ़े गए लेख के लिए, या अन्य पहचान करने वाली जानकारी के लिए एक लिंक प्रदान कर सकते हैं?
एलियाह कगन

मैं विशेष रूप से उस लेख को खोजने की कोशिश करूंगा। कृपया याद रखें, सिगार की दुकान पर सर्फिंग करते समय इंटरनेट पर यह कथन पाया गया था। एक लाइन, एक SSD पर ext4 का उपयोग करने से पहले अपने पढ़ने और होमवर्क करें। TRIMM और अनुकूलन जैसी चीजों के लेख देखें। आप जो कुछ भी करते हैं, वह मेरे जैसा नहीं है और आठ महीने के बाद "सुडो रिबूट" जैसे कमांड पर I / O त्रुटियां प्राप्त करना शुरू कर दें।
user75153
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.