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

स्वैप क्या है?

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

स्वैप स्पेस वास्तव में जरूरी है?

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

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

उन मशीनों पर जिनके पास स्मृति में रहने के लिए सब कुछ के लिए पर्याप्त भौतिक RAM नहीं है, तो स्वैप स्पेस का उपयोग आवश्यक है!

पूर्णता के लिए, यह उल्लेखनीय है कि लिनक्स में आउट-ऑफ-मेमोरी किलर (ओओएम) नामक उपप्रणाली भी है, जो स्मृति से बाहर होने पर कर्नेल को रोकने के बजाए, संसाधनों को मुक्त संसाधनों में मारना शुरू कर देगी। इसके कार्य विन्यास योग्य हैं।

मुझे कितना स्वैप स्थान आवंटित करना चाहिए?

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

स्वैप विभाजन का विस्तार किए बिना स्वैप जोड़ना

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

एक और हार्ड ड्राइव का उपयोग करने के लिए, "लिनक्स स्वैप" (कोड 82) प्रकार का विभाजन बनाएं और फिर स्वैप स्पेस तैयार करने के लिए " mkswap " कमांड चलाएं:

 mkswap / dev / sdb2 

जहां /dev/sdb2 आपके द्वारा बनाए गए विभाजन का नाम है। स्वैप स्पेस का उपयोग करने के लिए तुरंत " swapon " कमांड का उपयोग करें:

 स्वैपॉन / देव / एसडीबी 2 

वर्तमान में उपयोग किए गए स्वैप रिक्त स्थान की सूची प्राप्त करने के लिए " swapon -s " का उपयोग करें। सिस्टम में स्वैप स्पेस को स्थायी रूप से जोड़ने के लिए, आपको /etc/fstab फ़ाइल को संपादित करने और इस तरह की एक पंक्ति जोड़ने की आवश्यकता होगी:

 / dev / sdb2 कोई भी स्वैप sw 0 0 

यदि आपका सिस्टम डिस्क नाम देने के लिए अद्वितीय पहचानकर्ताओं का उपयोग कर रहा है, तो डिवाइस के लिए आईडी की सूची प्राप्त करने के लिए blkid कमांड का उपयोग करें। /etc/fstab में स्वैप स्पेस को माउंट करने की रेखा तब कुछ इस तरह दिखाई देगी:

 यूयूआईडी = 036da155-1ea1-4392-b8d4-700f65aa1 कोई भी स्वैप sw 0 0 

स्वैप के लिए फ़ाइल का उपयोग करने के लिए, फाइल सिस्टम पर एक बड़ी रिक्त फ़ाइल ( dd का उपयोग करके) बनाएं जिसे आप स्वैपिंग के लिए उपयोग करना चाहते हैं। उदाहरण के लिए, 1 जीबी फ़ाइल बनाने के लिए, टाइप करें:

 डीडी अगर = / dev / शून्य = / store / swapfile bs = 1024 count = 1048576 

वांछित फाइल सिस्टम पर स्वैप फ़ाइल का पथ कहां /store/swapfile है।

अतिरिक्त स्वैप विभाजन के साथ, फ़ाइल को अब mkswap साथ तैयार करने की आवश्यकता है और फिर swapon साथ प्रयोग किया जाता है। इसे /etc/fstab फ़ाइल में भी जोड़ा जाना चाहिए। प्रक्रिया बिल्कुल ऊपर की तरह ही है, लेकिन आपको स्वैप स्पेस पैरामीटर के रूप में /dev/sdb2 बजाय /store/swapfile का उपयोग करने की आवश्यकता है।

Swappiness

लिनक्स कर्नेल को यह परिभाषित करने के लिए tweaked किया जा सकता है कि स्मृति से बाहर प्रक्रियाओं को स्वैप करने की कोशिश कैसे करनी चाहिए। इस प्रवृत्ति को कर्नेल वैरिएबल द्वारा नियंत्रित किया जाता है जिसे swappiness कहा जाता है। 0 की एक swappiness का मतलब है कि कर्नेल जितना संभव हो उतना स्वैपिंग से बच जाएगा, जबकि 100 का मतलब है कि कर्नेल स्वैप स्पेस का उपयोग करने में आक्रामक होगा। कई लिनक्स वितरण के लिए डिफ़ॉल्ट सेटिंग 60 है। इस आदेश का उपयोग करके गतिशील रूप से संख्या को बदलना संभव है:

 sudo sysctl vm.swappiness = 10 

किसी मान को स्थायी रूप से सेट करने के लिए, आपको /etc/sysctl.conf फ़ाइल में vm.swappiness चर को बदलने (या जोड़ना, यदि यह मौजूद नहीं है) को बदलने की आवश्यकता है।

अगर आपको लिनक्स में स्वैप के बारे में कोई प्रश्न है तो हमें बताएं।