क्या यह noatime के साथ Ext4 को ट्यून करने लायक है?


77

उबंटू के पिछले संस्करणों के साथ (एक्सटी 3 फाइलसिस्टम का उपयोग करके) मैंने noatimeपैरामीटर को सेट करके ध्यान देने योग्य परिणामों के साथ बेहतर प्रदर्शन के लिए इसे ट्यून किया /etc/fstab

क्या अभी भी यह करने के लिए लायक है कि एक्सटी 4 फाइलसिस्टम के साथ, जो अब उबंटू में डिफ़ॉल्ट है? यदि हां, तो क्या प्रक्रिया किसी तरह से बदल गई है?

इस ट्यूनिंग का एक उदाहरण यहां पाया जा सकता है।

जवाबों:


66

relatimeजब तक ओवरराइड नहीं किया जाता , उबंटू 10.04 पर, डिफ़ॉल्ट माउंट विकल्पों का हिस्सा है /etc/fstab। पिछले कुछ रिलीज relatimeस्पष्ट रूप से थे /etc/fstab। पुराने जमाने के मेल नोटिफ़ायर के लिए परेशानी पैदा किए बिना relatimeएक ही गति (और फ्लैश राइट साइकिल संरक्षण) लाभ देता है noatime

आपके द्वारा उद्धृत लेख अनुशंसा करता है data=writeback। उबंटू डिफ़ॉल्ट रूप में data=ordered। भारी डिस्क लोड के मामले में उबंटू की सेटिंग धीमी है, लेकिन दुर्घटना या बिजली की विफलता के मामले में डेटा हानि का जोखिम काफी कम है। इसलिए मैं उबंटू डिफ़ॉल्ट से बदलने की सिफारिश नहीं करूंगा।

अधिकांश परिस्थितियों में कम लाभ के लिए, दुर्घटना के मामले में डेटा खो जाने के दौरान समय खिड़की commit=5को बदलना commit=100

सारांश: सेटिंग्स को छोड़ दें जैसे वे हैं, उन्हें एक कारण के लिए चुना गया था।


जोड़ा गया: माउंट विकल्पों से परे अन्य चीजें हैं जो एक अंतर बना सकती हैं। स्वयं से स्विच ext3करना ext4अक्सर एक दृश्यमान सुधार होता है। यहाँ लैपटॉप उपयोगकर्ताओं के लिए कुछ और सुझाव दिए गए हैं।

  • यदि आपके पास धीमी एसएसडी है, तो एसयू में इस धागे की जांच करें । महत्वपूर्ण युक्तियों का उपयोग कर रहे हैं tmpfsके लिए /tmpऔर ब्राउज़र कैश (और शायद इतिहास) के लिए।

  • यदि आपके पास एक हार्ड डिस्क है और आप चाहते हैं कि यह विस्तारित लंबाई के लिए कताई बंद कर दे, तो noflushd स्थापित करें , जो रैम को पूरा होने तक डिस्क को सभी लिखने में देरी करके स्पिन करने की अनुमति देता है। (बेशक, रीड डिस्क को स्पिन करने का कारण बन सकता है; आप cat /files/I/m/likely/to/need >/dev/nullडिस्क के नीचे घूमने से पहले चलने की आदत में आना चाहते हैं।) प्रभावी होने के लिए noflushd के क्रम में, सभी स्वैप बंद करें और कुछ के साथ अपने फाइल सिस्टम को माउंट करें। commit=3600

    प्रभावी रूप से noflushd का उपयोग करने का अर्थ है कि आपका डेटा विस्तारित अवधि के लिए डिस्क पर अलिखित रह सकता है। यह एक जोखिम है, जो कि कुछ समय के लिए डिस्क से आने वाले शोर या गर्मी के लाभ के खिलाफ तौला जाना है। यदि आप उस जोखिम के साथ सहज नहीं हैं तो noflushd का उपयोग न करें।


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

2
@ डीकियो: noatimeबनाम atimeएक दृश्यमान अंतर बना सकता है, लेकिन मुझे आश्चर्य होगा कि noatimeबनाम relatime। मैंने अपने उत्तर में कुछ लैपटॉप-विशिष्ट युक्तियां जोड़ी हैं; मैंने व्यक्तिगत रूप से इन युक्तियों से दृश्यमान सुधार देखे हैं। नोफ्लशड एक जोखिम उठाता है जिसे मैं उपयोग करने के लिए तैयार था।
गाइल्स

हाँ, मैं सिर्फ noatime और relatime के बीच के अंतर के बारे में गुगली कर रहा था, और आप सही हैं। relatime (जो अब ubuntu में डिफ़ॉल्ट है) atime और noatime के बीच एक अच्छा समझौता है।
डेसिओ लीरा

मैंने इसके बारे में पढ़ा है data=writeback- यह बस यादृच्छिक क्रम में फ़ाइल डेटा और मेटाडेटा लिखता है (जैसा कि विरोध किया जाता है orderedजो हमेशा डेटा के बाद मेटाडेटा लिखता है) । इसका मतलब है कि पावर आउटेज से आप अपनी फ़ाइल α बाइट्स को पा सकते हैं, जहाँ 0 बाइट्स वास्तव में लिखे गए हैं। खैर ... लेकिन यह बिल्कुल स्वाभाविक है! मैं हमेशा सोचता रहा कि फाइलसिस्टम पहले फ़ाइल का आकार बढ़ाता है, और फिर डेटा लिखता है। यह पता लगाना कि यह रिवर्स ऑर्डर में हो सकता है, रैम में कैशिंग जोड़ने के लिए इस पैटर्न को बदलने की आवश्यकता है। मैं आश्वस्त नहीं हूं कि writebackयदि विलंबता को सुधारने में मदद मिल सकती है तो इसका उपयोग क्यों न किया जाए।
हाय-एंजेल

17

हां, यह अभी भी noatimeUbuntu 12.10 के रूप में उपयोग करने के लिए समझ में आ सकता है

relatimeएक डिफ़ॉल्ट माउंट विकल्प है। और relatimeसे बहुत बेहतर है atime। पहले को लिखने के बाद पहले पढ़ने के लिए एक लिखने की आवश्यकता होती है, बाद में हर पढ़ने के लिए एक लिखने की आवश्यकता होती है। लेकिन noatimeप्रत्येक पढ़ने के साथ एक नि: शुल्क है।

इसका मूल रूप से मतलब है कि relatimeमाउंट के लिए एक डिस्क पर लिखने की संख्या एक noatimeमाउंट अन्य चीज के बराबर डबल रिश्तेदार के करीब है । यह फ्लैश मेमोरी उपकरणों पर विभाजन के लिए एक गंभीर चिंता का विषय है।

लिनक्स कर्नेल समुदाय द्वारा विस्तृत चर्चा http://kerneltrap.org/node/14148 पर है


3
दो का कारक सामान्य रूप से सही नहीं है। सिद्धांत रूप में कारक 1 के बीच है (असीम रूप से अक्सर उपयोग की जाने वाली फ़ाइल) और 2 (असीम रूप से प्रयुक्त फ़ाइल)। इसका मतलब यह है, कि वास्तविक कारक मूल रूप से 1 है, क्योंकि शायद ही कभी 2 के करीब कारक औसत में महत्वपूर्ण रूप से खाते नहीं हैं।
पैट्रिक हैकर

1 केवल लिखने के लिए है। 2 अन्य सभी के लिए है। केवल लिखने वाली फ़ाइलों का कोई मतलब नहीं है, लेकिन वे समय-समय पर दिखाई दे सकते हैं। इसलिए मेरा मूल अनुमान प्रासंगिक होना चाहिए।
यानिचार

@yanychar: relatimeकमियां समझाने और kerneltrap चर्चा साझा करने के लिए धन्यवाद , लेकिन " केवल लिखने का कोई मतलब नहीं है फ़ाइलें " बकवास है: सभी /usrऔर /libकेवल पढ़ने के लिए फ़ाइलें हैं। दरअसल, ज्यादातर पेड़, संत /homeऔर /varपढ़े- लिखे ही होते हैं। फाइलें /etcभी शायद ही कभी बदल जाती हैं।
MestreLion

2
@MestreLion: उबंटू संकुल के टन स्थापित करता है। पैकेज समय-समय पर अपग्रेड किए जाते हैं। यदि पैकेज स्थापित होने और अपग्रेड किए जाने के समय के बीच किसी फ़ाइल का कोई रीड्स नहीं था, तो फ़ाइल "राइट-ओनली" थी। फ़ाइल relatimeकी तुलना में कोई अतिरिक्त लेखन नहीं है noatime। बाकी सभी के लिए, फ़ाइल पढ़ने पर एक अतिरिक्त लिखना होता है।
यनहार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.