सवाल एसएसडी के साथ कौन सी लिनक्स फाइल सिस्टम सबसे अच्छा काम करता है


विकी से:

महत्वपूर्ण टीआरआईएम फ़ंक्शन से शुरू होने वाले लिनक्स ओएस द्वारा समर्थित है   2.6.33 कर्नेल (2010 की शुरुआत में उपलब्ध)। हालांकि, विभिन्न फाइल सिस्टम के बीच समर्थन अभी भी असंगत है या मौजूद नहीं है। उचित विभाजन   संरेखण स्थापना सॉफ्टवेयर द्वारा भी नहीं किया जाता है।

तो, कौन सी फाइल सिस्टम एसएसडी के लिए सबसे अच्छा काम करता है और इंस्टॉलेशन के दौरान टीआरआईएम + विभाजन संरेखण का समर्थन करता है और उबंटू पर उपलब्ध है?


113
2018-01-03 17:44


मूल




जवाब:


फाइल सिस्टम EXT4 + TRIM:

  • टीआरआईएम के साथ EXT4 अनावश्यक लेखन को कम करके प्रदर्शन में सुधार करता है एसएसडी ड्राइव के चक्र, क्योंकि वे लिखने-लिखने के चक्र सीमित करते हैं।
  • उबंटू और कुछ अन्य लिनक्स स्वाद टीआरआईएम के साथ एक्सटी 4 का समर्थन करते हैं।

SWAP विभाजन:

  • सुनिश्चित करें कि आपके पास एसएसडी पर एक SWAP स्थान नहीं है, फिर से कम करने के लिए लिखने के चक्र।
  • यदि आपके पास यांत्रिक ड्राइव है, तो आपको एक स्वैप स्पेस बनाना चाहिए यांत्रिक ड्राइव पर, और एसएसडी पर रखने से बचें।

विभाजन संरेखण:

  • विभाजन को एक साफ 1 एमबी सीमा पर शुरू करना चाहिए ताकि ब्लॉक आकार हो फाइल सिस्टम का एसएसडी के ब्लॉक आकार के साथ संरेखित है।

तो उपयोग करें EXT4 + TRIM एक यांत्रिक हार्ड ड्राइव पर एक एसडब्ल्यूएपी या एसएसडी पर कोई SWAP के साथ।

उपर्युक्त स्रोत का जिक्र करके कार्यान्वित किया जा सकता है: एसएसडी प्रदर्शन को अधिकतम कैसे करें


87
2017-08-30 06:05



जीपीटी आधुनिक विधि का उपयोग कर रहा है gdisk और grub 2.0.x, (मुझे लगता है कि किसी ने इसे उत्तर में नीचे उल्लिखित किया है) और एमबीआर पुराने का उपयोग कर विरासत विधि है grub 0.9.7 तथा fdisk.. आप यहां और अधिक पा सकते हैं: wiki.archlinux.org/index.php/Solid_State_Drives - aliasgar
यह निर्दिष्ट करने के लिए अनावश्यक है nodiratime जब आप भी निर्दिष्ट करते हैं noatime। सहमत हैं, यह शांत नरों के लिए शांत और उन्नत दिखता है, लेकिन तब से noatime इनोड्स पर एनीम अक्षम करता है, और निर्देशिका भी इनोड हैं, यह कहने की तरह है "अपने हाथ धोएं, और अपने अंगूठे भी धोएं"। :) - Redsandro
अनुभव से बाहर मैं कह सकता हूं कि कोई शेड्यूलर ("नोप") समय सीमा से तेज़ी से काम करता है। - drumfire
नहीं, "लिनक्स स्वैप विभाजन डिफ़ॉल्ट रूप से टीआरआईएम संचालन कर रहे हैं जब अंतर्निहित ब्लॉक डिवाइस टीआरआईएम का समर्थन करता है, उन्हें बंद करने की संभावना के साथ, या एक बार या निरंतर टीआरआईएम संचालन के बीच चयन करने के लिए। "इसलिए तेजी से लाभ लेने के लिए एसएसडी पर स्वैप विभाजन रखा जाना चाहिए एक्सेस समय, जिसमें प्रत्येक पृष्ठ स्वैप होने में बहुत समय लगेगा - phuclv
@ टाटर जैसा कि लिंक में उल्लिखित है, हम चोरी की चोरी के रूप में कहीं और चिपकने वाली पूरी उत्तर प्रतिलिपि भी दर्ज करते हैं। (या इसे अलग-अलग कॉल करें, लेकिन यह एट्रिब्यूशन के साथ भी स्वीकार्य नहीं है)। मेटा को और प्रश्न पूछें। मैं इस विषय धागे को हटा दूंगा। - slhck


संक्षिप्त जवाब

  • चुनें ext4, और या तो इसे साथ माउंट करें discard के लिए विकल्प TRIM समर्थन, या FITRIM का उपयोग करें (निचे देखो)। इसका भी उपयोग करें noatime यदि आप "एसएसडी पहनने" से डरते हैं तो विकल्प।

  • अपना डिफ़ॉल्ट I / O शेड्यूलर (CFQ) न बदलें बहु अनुप्रयोग सर्वर पर, क्योंकि यह प्रक्रियाओं के बीच निष्पक्षता प्रदान करता है और स्वचालित एसएसडी समर्थन है। हालाँकि, समय सीमा का उपयोग करें डेस्कटॉप पर लोड के तहत बेहतर प्रतिक्रिया प्राप्त करने के लिए।

  • उचित डेटा संरेखण की आसानी से गारंटी देने के लिए, प्रत्येक विभाजन का प्रारंभिक क्षेत्र 2048 का एक बहु होना चाहिए (= 1 एमआईबी)। आप उपयोग कर सकते हैं fdisk -cu /dev/sdX उन्हें बनाने के लिए। हाल के वितरणों पर, यह स्वचालित रूप से आपके लिए इसका ख्याल रखेगा।

  • एसएसडी पर स्वैप का उपयोग करने से पहले दो बार सोचें। यह शायद एचडीडी पर स्वैप की तुलना में बहुत तेज़ होगा, लेकिन यह डिस्क को तेज़ी से भी पहन देगा (जो प्रासंगिक नहीं हो सकता है, नीचे देखें)।

लंबा जवाब

  • फ़ाइल सिस्टम:

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

  • एसएसडी प्रदर्शन और टीआरआईएम:

TRIM सुविधा एसएसडी ब्लॉक को साफ़ करती है जिनका उपयोग फाइल सिस्टम द्वारा अब नहीं किया जाता है। यह दीर्घकालिक लेखन प्रदर्शन को अनुकूलित करेगा और एसएसडी पर उनके डिजाइन के कारण सिफारिश की जाएगी। इसका मतलब है कि फाइल सिस्टम उन ब्लॉक के बारे में ड्राइव बताने में सक्षम होना चाहिए। discardमाउंट विकल्प ext4 इस तरह जारी करेंगे TRIM आदेश देता है जब फाइल सिस्टम ब्लॉक मुक्त हो जाते हैं। ये है ऑनलाइन त्यागें

हालांकि, यह व्यवहार थोड़ा प्रदर्शन ओवरहेड का तात्पर्य है। लिनक्स 2.6.37 के बाद से, आप उपयोग से बच सकते हैं discard और कभी-कभी करना चुनते हैं बैच त्यागें इसके बजाय FITRIM के साथ (उदाहरण के लिए crontab से)। fstrim उपयोगिता यह (ऑनलाइन), साथ ही साथ करता है -E discard का विकल्प fsck.ext4। हालांकि आपको इन उपकरणों के "हालिया" संस्करण की आवश्यकता होगी।

  • एसएसडी पहनते हैं:

आप अपने ड्राइव पर लिखना सीमित करना चाहेंगे क्योंकि इस संबंध में एसएसडी का सीमित जीवनकाल है। हालांकि बहुत ज्यादा चिंता मत करो, आज का सबसे खराब 128 जीबी एसएसडी समर्थन कर सकता है कम से कम 5 जीबी से अधिक समय के लिए प्रति दिन 20 जीबी लिखित डेटा (प्रति सेल 1000 लिखने चक्र)। बेहतर वाले (और भी बड़े) लंबे समय तक चल सकते हैं: आप शायद तब तक इसे बदल देंगे।

यदि आप उपयोग करना चाहते हैं विनिमय एसएसडी पर, कर्नेल एक गैर घूर्णन डिस्क नोटिस होगा और करेंगे स्वैप उपयोग यादृच्छिक (कर्नेल स्तर पहनने के स्तर): आप फिर एक देखेंगे SS (ठोस राज्य) स्वैप सक्षम होने पर कर्नेल संदेश में:

/ Dev / sda1 पर 20 9 7148k स्वैप जोड़ना। प्राथमिकता: -1 विस्तार: 1   भर में: 20 9 7148k एसएस

  • I / O शेड्यूलर:

इसके अलावा, मैं ज्यादातर के साथ सहमत हूं aliasgarका जवाब (भले ही इसमें से अधिकांश - कानूनी रूप से किया गया हो? - से कॉपी किया गया यह वेबसाइट), लेकिन मुझे आंशिक रूप से असहमत होना चाहिए अनुसूचक अंश। डिफ़ॉल्ट रूप से, समय सीमा शेड्यूलर है घूर्णन डिस्क के लिए अनुकूलित क्योंकि यह लागू करता है लिफ्ट एल्गोरिदम। तो, आइए इस भाग को स्पष्ट करें।

शेड्यूलर पर लंबा जवाब

कर्नेल 2.6.2 9 से शुरू, एसएसडी डिस्क स्वचालित रूप से पता चला है, और आप इसे सत्यापित कर सकते हैं:

cat /sys/block/sda/queue/rotational

आपको मिलना चाहिये 1 हार्ड डिस्क के लिए और 0 एक एसएसडी के लिए।

अब, सीएफक्यू शेड्यूलर इस जानकारी के आधार पर अपने व्यवहार को अनुकूलित कर सकता है। लिनक्स 3.1 के बाद, कर्नेल दस्तावेज़ cfq-iosched.txt फ़ाइल कहते हैं:

सीएफक्यू के पास एसएसडी के लिए कुछ अनुकूलन हैं और यदि यह एक गैर घूर्णन का पता लगाता है   मीडिया जो उच्च कतार गहराई का समर्थन कर सकता है (इसमें कई अनुरोध   एक समय में उड़ान), [...]।

साथ ही, समय सीमा शेड्यूलर क्षेत्र संख्या के आधार पर घूर्णन डिस्क पर अनियंत्रित सिर आंदोलनों को सीमित करने की कोशिश करता है। कर्नेल दस्तावेज़ का उद्धरण deadline-iosched.txt, fifo_batch  विकल्प विवरण:

अनुरोधों को किसी विशेष डेटा दिशा के `बैचों 'में समूहीकृत किया जाता है   (पढ़ें या लिखें) जो कि क्षेत्र के बढ़ते क्रम में सेवा दी जाती है।

हालांकि, एसएसडी का उपयोग करते समय इस पैरामीटर को 1 तक ट्यून करना दिलचस्प हो सकता है:

यह पैरामीटर प्रति-अनुरोध विलंबता के बीच संतुलन को ट्यून करता है और   कुल थ्रूपुट। जब कम विलंबता प्राथमिक चिंता है,   छोटा बेहतर होता है (जहां 1 उपज का मूल्य पहले-पहले आते हैं   व्यवहार)। बढ़ते फीफो_बैच आम तौर पर थ्रूपुट में सुधार करता है   विलंबता भिन्नता की लागत।

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

उस ने कहा, एक बेहतर बेंचमार्क के साथ समय सीमा का उपयोग करने का प्रयास करेंगे fifo_batch=1

डिफ़ॉल्ट रूप से एसएसडी पर समय सीमा का उपयोग करने के लिए, आप एक फाइल बना सकते हैं, कहें /etc/udev.d/99-ssd.rules निम्नलिखित नुसार:

# all non-rotational block devices use 'deadline' scheduler
# mostly useful for SSDs on desktops systems
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/scheduler}="deadline"

63
2018-02-12 23:45



उस विभाजन के संरेखण से आपका क्या मतलब है स्वचालित रूप से हाल के वितरणों पर ध्यान दिया जाता है? जब आप मैन्युअल विभाजन का उपयोग करते हैं तो यह भी लागू होता है ubuntu स्थापना या gparted द्वारा विभाजन करते समय? - jarno
अधिकांश हालिया वितरणों में @ जर्नो (अब कई सालों से), ग्राफिकल चीजों के माध्यम से fdisk से विभाजन उपकरण, डिवाइस प्रारंभ से 1 एमबी के गुणकों पर विभाजन संरेखण बनाने के लिए ऑटो-डिफॉल्ट होते हैं। यह preemptively 512byte, 4k, 8k, और आधा bazillion अन्य ब्लॉक / क्लस्टर आकार के साथ संरेखित है जो प्रकृति में 2 ^ एन हैं। जब तक आप ऐसा करने के लिए महत्वपूर्ण प्रयास नहीं करते हैं, तब तक यह विभाजन को गलत तरीके से संरेखित करना लगभग असंभव बनाता है। - killermist


Archlinux लेख ठोस राज्य ड्राइव खंड में कहते हैं फाइल सिस्टम का विकल्प :

एक्स्ट 2/3/4, बीआरटीएफ इत्यादि सहित फाइल सिस्टम के लिए कई विकल्प मौजूद हैं।

Btrfs 
Btrfs समर्थन को लिनक्स कर्नेल की मुख्यलाइन 2.6.2 9 रिलीज़ के साथ शामिल किया गया है। कुछ महसूस करते हैं कि यह पर्याप्त परिपक्व नहीं है   उत्पादन के उपयोग के लिए इसके शुरुआती गोद लेने वाले भी हैं   ext4 के लिए संभावित उत्तराधिकारी। उपयोगकर्ताओं को पढ़ने के लिए प्रोत्साहित किया जाता है    Btrfs अधिक जानकारी के लिए लेख।

ext4 
Ext4 एक और फाइल सिस्टम है जिसमें एसएसडी के लिए समर्थन है। इसे 2.6.28 के बाद से स्थिर माना जाता है और दैनिक उपयोग के लिए पर्याप्त परिपक्व होता है।   Btrfs के विपरीत, ext4 स्वचालित रूप से डिस्क प्रकृति का पता नहीं लगाता है;   उपयोगकर्ताओं को स्पष्ट रूप से TRIM कमांड समर्थन का उपयोग करके सक्षम करना होगा   fstab में माउंट विकल्प को छोड़ दें (या tune2fs -o discard / dev / sdaX के साथ)।

बीएसटीएफएस और एक्सटी 4 एसएसडी के कुशल उपयोग के लिए दो प्रमुख आवश्यकताओं को पूरा करते हैं:

  • फाइल सिस्टम को ATA_TRIM कमांड जारी करने में सक्षम होना चाहिए अंतर्निहित एसएसडी
  • फाइल सिस्टम को डिस्क पर अनियंत्रित लेखन नहीं करना चाहिए

प्रदर्शन के लिए, दो अन्य आवश्यकताएं हैं:

  • विभाजन को एसएसडी के ब्लॉक आकार में गठबंधन करने की आवश्यकता है
  • प्रत्येक Ext4 प्रारूपित विभाजन के लिए TRIM स्पष्ट रूप से सक्षम होना चाहिए

पहला लिनक्स इंस्टॉलर के साथ आजकल स्वचालित है। "-cu" झंडे से शुरू होने पर fdisk 1024KB सीमा पर विभाजन भी बनाएगा।

दूसरा Btrfs के लिए स्वचालित है, लेकिन Ext4 के लिए यह मैन्युअल रूप से किया जाता है "/ etc / fstab" फ़ाइल में प्रत्येक Ext4 विभाजन के लिए माउंट विकल्पों की सूची में "त्यागें" जोड़ना। अधिक जानकारी के लिए यह देखें कैसे

मेरी राय में, इसे Ext4 के लिए fstab के साथ थोड़ा सा झुकाव की आवश्यकता थी इस परिपक्व और उत्कृष्ट फाइल सिस्टम का उपयोग न करने का कोई कारण नहीं है।


12
2017-08-30 05:59





बीटीआरएफएस आईएमओ। उबंटू 8.04 और बाद में जीआरबी के संस्करण शामिल हैं जो जीपीटी जागरूक हैं। जीपीटी और गडिस्क के साथ यह आपके लिए आपके विभाजन को संरेखित करेगा। मेरा मानना ​​है कि एफडीस्क भी ऐसा ही करेगा।

वैसे भी, यहां एक BTRFS फ़ाइल सिस्टम पर उबंटू इंस्टॉल करने का एक लिंक है।

http://www.linuxbsdos.com/2011/05/05/how-to-install-ubuntu-11-04-on-a-btrfs-file-system/

उम्मीद है की वो मदद करदे।


-2
2017-08-29 20:56