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


32

ऐसा लगता है कि मेरे लिए एक स्वैप फ़ाइल अधिक लचीली है।


1
आप लिनक्स में एक स्वैप फाइल का उपयोग कर सकते हैं। मैं अभी कई मशीनों पर कर रहा हूँ। मैं कुछ विशेष उपयोग नहीं कर रहा हूँ, बस LVM पर ext4 या ext4। कोई एन्क्रिप्शन या कुछ भी जटिल नहीं है। सस्पेंड और हाइबरनेट ने मेरे लिए बहुत काम किया है, यहां तक ​​कि मेरी एनवीएमई मशीन पर भी।
कोरी टी

जवाबों:


32

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

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


4
अतीत में एक प्रदर्शन लाभ भी था। लेकिन मुझे लगता है कि जब 2.6 सामने आया तो समाप्त हो गया।
xenoterracide

ऐसा लगता है कि यह वास्तव में सवाल का जवाब नहीं देता है। या क्या मैं कुछ न कुछ भूल रहा हूं? जवाब केवल स्वैप फ़ाइलों के बारे में बात करता है, और विभाजन का बिल्कुल भी उल्लेख नहीं करता है। @ गिल्स वो इरादतन था, या आपने सिर्फ एक टाइपो बनाया था?
गाबे

1
@gabe: मैं विभाजन के साथ तुलना में स्वैप फ़ाइलों पर चर्चा कर रहा था। उम्मीद है कि अब यह स्पष्ट है।
गिल्स एसओ- बुराई को रोकें '

1
मैं यहाँ पेन्ज़ के उत्तर में अपनी टिप्पणी देता हूँ। स्वैप फ़ाइलों पर कथित fs प्रेरित प्रदर्शन हानि मूट है।
अता

2
उबंटू सामुदायिक सहायता के अनुसार विकी help.ubuntu.com/community/SwapFaq हाइबरनेशन के लिए एक स्वैप विभाजन आवश्यक है। उद्धरण: "यह एक सक्रिय फाइल सिस्टम पर स्वैप फाइल का उपयोग नहीं कर सकता है।" और प्रदर्शन के संबंध में, ऐसा लगता है कि फ़ाइल के विरल होने तक कोई अंतर नहीं है। serverfault.com/questions/25653/…
एरिक Sjölund

28

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

लेकिन कुछ भी आपको स्वैप विभाजन के बजाय स्वैप फ़ाइल का उपयोग करने से रोकता है, या स्वैप विभाजन के अलावा।

  • फ़ाइल बनाएँ:

    dd if=/dev/zero of=/extraswap bs=1M count=512
    
  • प्रारंभिक फ़ाइल सामग्री:

    mkswap /extraswap
    
  • इसका इस्तेमाल करें:

    swapon /extraswap
    
  • देखें कि क्या यह काम किया है:

    free -m
    

हमेशा बूटअप, संपादन / आदि / fstab पर स्वैप का उपयोग शुरू करने और जोड़ने के लिए

/extraswap           swap          swap    defaults    0 0

[१] http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-swap-adding.html


5
उपयोगी उर्फ मैं हमेशा के लिए उपयोग कर रहे हैं मुझे टाइप जाने के लिए moreswapएक टर्मिनल में अगर मैं अचानक अतिरिक्त स्वैप स्थान की आवश्यकता है:alias moreswap='swapfile=`mktemp /tmp/swapXXXX` && sudo touch $swapfile && sudo dd bs=512 count=1M if=/dev/zero | tee $swapfile | pv -s 512M && sudo mkswap $swapfile && sudo swapon $swapfile'
माइकल Mrozek

यह अच्छी जानकारी है, लेकिन यह सवाल का जवाब नहीं देता है।
lesmana

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

जब आप क्लाउड में चल रहे होते हैं, तो स्वैप फाइल एप्रोच आपका एकमात्र विकल्प हो सकता है।
19

1

शायद मुख्य कारण यह है कि मुख्य कर्नेल सस्पेंड-टू-डिस्क स्वैप फ़ाइलों के साथ काम नहीं करता है। उदाहरण के लिए डेबियन विकी निर्देश स्थापित करने के लिए हैं uswsuspयदि आपको इसकी आवश्यकता है।

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

यह अस्पष्ट रूप से उल्लेख किया गया है कि स्वैप के लिए एक फ़ाइल का उपयोग करने से कर्नेल संस्करण 2.6 से पहले संभावित रूप से विभाजन से कम प्रदर्शन हुआ। https://www.kernel.org/doc/gorman/html/understand/understand014.html#text15


1

पूर्णता के लिए मैं अपना स्वयं का उत्तर जोड़ूंगा:

जैसा कि @Gilles ने कहा, हाइपरनेशन के लिए एक स्वैप फाइल का इस्तेमाल नहीं किया जा सकता है। स्वैप फ़ाइल का उपयोग करते समय, सिस्टम को स्वैप फ़ाइल के हेडर का पता लगाना चाहिए, लेकिन ऐसा करने के लिए फ़ाइल सिस्टम में स्वैप फ़ाइल को माउंट किया जाना चाहिए, और एक जर्नलेड फाइल सिस्टम - जैसे ext3, ext4, और मूल रूप से लिनक्स द्वारा उपयोग किए जाने वाले सभी आधुनिक फाइल सिस्टम - डिस्क से रिज्यूम के दौरान माउंट नहीं किया जा सकता। (वास्तव में, ऐसा करने के तरीके हैं, लेकिन काफी बोझिल हैं।)

स्रोत: https://www.kernel.org/doc/Documentation/power/swsusp-and-swap-files.txt


0

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

लेकिन वैसे भी आप दोनों के पास हो सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.