सवाल प्रदर्शन के लिए विभाजन बनाम फ़ाइल स्वैप?


प्रदर्शन के लिए बेहतर क्या है? डिस्क के अंदर के करीब एक विभाजन में धीमी पहुंच के समय होंगे, और हमें ओएस के बीच स्विच करने और विभाजन को स्वैप करने के लिए ड्राइव की प्रतीक्षा करनी होगी।

दूसरी तरफ, एक स्वैप विभाजन सभी फाइल सिस्टम को सीधे डिस्क पर लिखने की इजाजत देता है, जो फ़ाइल से तेज़ हो सकता है।

प्रदर्शन व्यापार क्या है?

एक निश्चित आकार swapfile कितना अंतर बनाता है?

क्या यह एक मामला है कि स्वैप विभाजन में बदलना लंबा होगा, लेकिन स्वैप विभाजन पर प्रदर्शन बेहतर होगा, अगर यह एक स्वैप फ़ाइल हो?


53
2018-06-15 03:06


मूल


जिज्ञासा के कारण। क्या आप कर्नेल संस्करण, रैम, विभाजन और फाइल सिस्टम योजना जैसे सिस्टम विवरण प्रदान कर सकते हैं? - Viky
आप किस ओएस पर खोज रहे हैं? - Mathieu Chateau
लिनक्स जानकारी के लिए, देखें lkml.org/lkml/2005/7/7/326 - Adam Monsen


जवाब:


असल में जब तक आप इसका उपयोग नहीं करते हैं तब तक यह बहुत अंतर नहीं करता है स्पैस फाइलें

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

आंतरिक रूप से लिनक्स कर्नेल एक स्वैप फ़ाइल के अंतर्निहित ब्लॉक को कम से कम सीधे एक्सेस करेगा - मुझे अभी यह लिंक नहीं मिल रहा है कि हुड के नीचे क्या होता है, आपको इस पर भरोसा करना है जब तक कि कोई और अधिक आधिकारिक नहीं ढूंढ लेता। मैं अभी इसके साथ आ सकता हूं:

यह सब केवल लिनक्स कर्नेल की 2.6 लाइन पर लागू होता है।

यदि आप इष्टतम प्रदर्शन चाहते हैं (और वह क्या है, वास्तव में? ... स्वैपिंग धीमी है, अवधि। रैम बढ़ाएं ताकि आप स्वैप न करें श्रेष्ठ प्रदर्शन), आप एक विभाजन का उपयोग करना चाहते हैं।


22
2018-06-15 08:28



स्वैप के आधुनिक संस्करण स्वैप के रूप में स्वरूपित स्पैस फ़ाइलों के साथ काम करने से इनकार कर देंगे, जिसका हवाला देते हुए कि फाइल छेद है। - Tim Post♦


  1. हार्ड डिस्क पर, थ्रूपुट और मांग अक्सर डिस्क की शुरुआत की ओर तेज़ी से होती है, क्योंकि वह डेटा डिस्क के बाहरी क्षेत्र के करीब संग्रहीत होता है, जिसमें सिलेंडर के अधिक से अधिक क्षेत्र होते हैं। इस प्रकार, डिस्क की शुरुआत में स्वैप बनाना प्रदर्शन में सुधार कर सकता है।

  2. 2.6 लिनक्स कर्नेल के लिए, स्वैप विभाजन और ए के बीच कोई प्रदर्शन अंतर नहीं है अखंडित फ़ाइल की अदला - बदली करें। जब स्वैप द्वारा स्वैप विभाजन / फ़ाइल सक्षम होती है, 2.6 कर्नेल को पता चलता है कि कौन से डिस्क ब्लॉक स्वैपफाइल को संग्रहीत किया जाता है, ताकि जब स्वैप करने का समय आता है, तो इसे फाइल सिस्टम से निपटने की ज़रूरत नहीं है।

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

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

लिनक्स पर, अगर स्वैपफाइल को अनगिनत बनाया गया है, और कभी विस्तार नहीं किया गया है, तो कम से कम सामान्य फाइल सिस्टम जैसे ext3 / 4 के साथ यह खंडित नहीं हो सकता है। यह हमेशा एक ही डिस्क ब्लॉक का उपयोग करेगा, जो संगत हैं।

मैं निष्कर्ष निकालता हूं कि एक समर्पित स्वैप विभाजन के एकमात्र लाभ के बारे में आपको सूचित करने की आवश्यकता होने पर अप्रत्याशितता की गारंटी है; यदि आपका स्वैप कभी विस्तारित नहीं किया जाएगा, तो एक नई फाइल सिस्टम पर बनाई गई फ़ाइल को अतिरिक्त विभाजन की आवश्यकता नहीं होती है।


21
2018-06-07 13:48



यहां जोड़ने की एकमात्र चीज यह है कि यदि आप मशीन को "डिस्क पर निलंबित" करने के लिए कॉन्फ़िगर किया गया है, तो वास्तव में क्या हो रहा है यह है कि स्मृति में सामान स्वैप करने के लिए लिखा गया है। इसके लिए काम करने के लिए, स्वैप अपने स्वयं के विभाजन पर होना चाहिए क्योंकि स्वैप ऐसा होने के लिए एक सक्रिय फाइल सिस्टम पर नहीं हो सकता है। इसलिए, यदि आपके पास कोई सर्वर है, तो आप शायद इस सुविधा का उपयोग नहीं करते हैं और खुशी से एक स्वैप फ़ाइल का उपयोग कर सकते हैं। यदि आपके पास लैपटॉप है, तो आप शायद एक स्वैप विभाजन चाहते हैं ताकि आप हाइबरनेशन के लिए "फाइल को निलंबित" कर सकें। - Nathan S. Watson-Haigh
@ नाथन एस। वाटसन-हाई डेटा के साथ क्या होता है जो पहले से ही स्वैप में है? इसे फेंक नहीं दिया जा सकता है। - XTF
@ नाथन एस। वॉटसन-हाई क्या आप एक स्रोत को जोड़ सकते हैं? उबंटू 17.04 डिफ़ॉल्ट रूप से एक स्वैप फ़ाइल का उपयोग करता है। यह आश्चर्यजनक होगा अगर यह "डिस्क पर निलंबित" नहीं हो सका। - Matthias Weiler


मुझे लगता है कि हम अभी मंच पर हैं, जब तक कि आप एक कॉन्फ़िगरेशन वाला लैपटॉप नहीं चला रहे हैं जो स्वैप में डेटा को निलंबित / सोते समय लिखता है, स्वैप को वास्तव में "अंतिम उपाय" माना जाना चाहिए। आपकी सबसे अच्छी शर्त एक बॉक्स में पर्याप्त रैम डालना है ताकि यह डिस्क पर कभी भी पेज न हो।

कहा जा रहा है कि, एक विभाजन शायद बेहतर तरीका है, प्रदर्शन के अनुसार, हालांकि एक फ़ाइल अधिक लचीला है। बस सुनिश्चित करें कि यह 7200+ आरपीएम धुरी पर है।


3
2018-06-15 03:21



एक विभाजन बेहतर प्रदर्शन के रूप में क्यों होगा, जब एक्सेस का समय देरी के लिए कारक से अधिक हो सकता है? - Bill Gray
चूंकि किसी फ़ाइल का उपयोग करने के लिए अधिक सिर आंदोलनों की आवश्यकता हो सकती है, क्योंकि डेटा को पढ़ने / लिखने के लिए पृष्ठ ढूंढने पर फ़ाइल सिस्टम पर कहीं भी हो सकता है, इसलिए संरचनाओं को खोजना पड़ सकता है जबकि स्वैप विभाजन के साथ प्रत्येक पृष्ठ एक ज्ञात स्थान पर होगा विभाजन। यह एक अलग अंतर कारक (थोक थ्रूपुट के रूप में संलग्न) के रूप में उपयोग समय बनाता है। - David Spillett
"जब तक आपको हाइबरनेट करने की आवश्यकता न हो तब तक स्वैप को कॉन्फ़िगर न करें" एक विवादास्पद दृश्य है। कभी-कभी जब सिस्टम वास्तविक स्मृति स्वैप पर कम होता है तो सिस्टम को पुनर्प्राप्त करने की अनुमति मिल सकती है। स्वैप न होने से आपको प्रोग्राम चलाने से सीमित कर सकते हैं जो विशाल स्मृति आवंटन करते हैं लेकिन वास्तव में इसे अधिकतर स्पर्श नहीं करते हैं (उदा। कुछ डीबगिंग टूल)। कभी-कभी स्मृति के कब्जे वाले लेकिन निष्क्रिय क्षेत्र को डिस्क कैश के रूप में बेहतर ढंग से उपयोग किया जाता है और यह कि ट्रेडऑफ केवल तभी किया जा सकता है जब स्वैप उपलब्ध हो। देख unix.stackexchange.com/questions/2658/... चर्चा के लिए। - Anon


यह एक दिलचस्प सवाल है और इसके बारे में बहुत कुछ पढ़ रहा है। अंतर्निहित फाइल सिस्टम के कारण आम तौर पर एक स्वैप विभाजन फ़ाइल से बेहतर होता है। लेकिन अगर आपको हमेशा अपने स्वैप के आकार को बढ़ाने की आवश्यकता होती है तो फ़ाइल एक बेहतर विकल्प है। कर्नेल 2.4 तक यह माना जाता था कि एक स्वैप विभाजन फ़ाइल से तेज़ है, लेकिन अब कर्नेल 2.6 के सुधार के साथ, प्रदर्शन लगभग समान हैं।

इंटरनेट पर मुझे कुछ मिला।

http://www.go2linux.org/swap-file-vs-swap-partition

तथा

http://www.sunmanagers.org/pipermail/summaries/2005-November/006913.html


3
2018-06-15 03:27



उन लिंकों में से कोई भी वास्तव में उनके फैसलों के पीछे कारणों की व्याख्या नहीं करता है। - Bill Gray
तर्क यह है कि फ़ाइल में अंतर्निहित फाइल सिस्टम अधिभार होगा। यदि आप एक फाइल बनाते हैं तो इसे खंडित किया जा सकता है। और स्वैप पर कैश किए जा रहे फ़ाइल के आधार पर, पूरे विभाजन की तुलना में पढ़ना धीमा हो सकता है जो स्वैप फ़ाइल सिस्टम है। - Viky
आगे खोदने और विकी पर सापेक्ष आलेख मिला। आपकी सहायता करने के लिए कुछ स्वैप ट्यूनिंग पैरामीटर हैं जिन्हें आप चेक कर सकते हैं। लिनक्स के लिए कार्यान्वयन के तहत स्पष्टीकरण की जांच करें। मदद हो सकती है। en.wikipedia.org/wiki/Paging - Viky
उपर्युक्त विकी लिंक पर उद्धरणों में से एक का पालन किया और उसी मुद्दे के बारे में एक दिलचस्प धागा पाया। शायद इसे देखना चाहें। lkml.org/lkml/2005/6/28/427 - Viky
मैंने अपने प्रश्न में फाइल सिस्टम अधिभार का उल्लेख किया है, लेकिन यह उतना ही प्रदर्शन ब्लॉक नहीं है जितना आंतरिक डिस्क के पास विभाजन है। वह देरी फाइल सिस्टम ओवरहेड से बड़ी होगी। - Bill Gray


हमारे काम पर विचार यह है कि चूंकि एक स्वैप फ़ाइल खंडित हो सकती है, और विखंडन स्वैप पहुंच धीमा कर देता है, विभाजन एक बेहतर दृष्टिकोण है। बेशक, एक स्थिर आकार के स्वैपफ़ाइल को परिभाषित करना एक ही चीज़ है लेकिन यह केवल व्यक्तिपरक रूप से साफ दिखता है।

क्या यह दृष्टिकोण एक सही तरीका है? शायद नहीं, क्योंकि अभ्यास 10 साल पहले स्थापित किया गया था। मध्यवर्ती वर्षों में ड्राइव प्रौद्योगिकी में एकमात्र बड़ा परिवर्तन हमारे द्वारा उपयोग किए जाने वाले RAID नियंत्रकों की जटिलता है (हम अभी तक एसएसडी के लिए पर्याप्त समृद्ध नहीं हैं)। ड्राइव आकारों में वृद्धि का मतलब है कि हमारे द्वारा बनाए गए स्वैप विभाजन ड्राइव की शुरुआत के करीब है जब 18 जीबी ड्राइव मानक शिपिंग कर रहे थे, इसलिए स्वैप गति पुराने दिनों में भी तेज थी।

बेशक, हमारे ईएसएक्स-आधारित विंडोज सिस्टम पर, स्वैप फ़ाइल की स्थिति पूरी तरह से पूरी तरह से म्यूट हो जाती है। स्वैप फ़ाइल और भौतिक डिस्क प्लेटर्स के बीच वर्चुअलाइजेशन की इतनी सारी परतें हैं कि इससे कोई फर्क नहीं पड़ता। लेकिन हम इसे एक अलग विभाजन पर रखते हैं क्योंकि यह सिर्फ मानक है।


2
2018-06-15 05:12



एक स्वैप फ़ाइल खंडित नहीं होती है, क्योंकि कर्नेल प्रत्यक्ष एमएमएपी दृष्टिकोण का उपयोग करता है और फ़ाइल को कभी भी बढ़ा या छोटा नहीं करेगा। +1 हालांकि वर्चुअलाइजेशन पर आपकी टिप्पणी के लिए: यह अक्सर कोई फर्क नहीं पड़ता। - parasietje


स्वैप फ़ाइल का उपयोग करना फ़ाइल-टू-मेमोरी-अनुवाद के लिए थोड़ा अतिरिक्त मेमोरी का उपयोग कर सकता है। हम प्रति 1 जीबी स्वैप प्रति 1 एमबी मेमोरी के बारे में बात कर रहे हैं। फ़ाइल सिस्टम कैश स्वैप डेटा कैश नहीं करता है, केवल संगठनात्मक डेटा, जो अतिरिक्त मेमोरी आवश्यकताओं में से अधिकांश होना चाहिए।

इसके अलावा मुझे संदेह है कि आप 1000 बार एक बार अतिरिक्त सिर की तलाश में छोड़कर किसी भी उचित प्रदर्शन को खो देंगे।

मजेदार तथ्य, एक गतिशील रूप से विस्तारित स्वैप फ़ाइल के साथ zswap का उपयोग करके परिणामस्वरूप अप्रयुक्त होने पर बहुत कम लागत पर स्वैप संचालन पर प्रभावशाली गति होती है।


0
2017-07-14 16:22



क्या आप अपने दावों के लिए औचित्य प्रदान कर सकते हैं? यह बल्कि अजीब लगता है। - austinian