जिस तरह से लिनक्स एक विशेष परिदृश्य में अदला-बदली करने के लिए लाभ / कमियों की गणना करता है, उसी तरह से स्वैगनेस सेटिंग एक ट्वीक है। एक उच्च स्वैपीनेस सिस्टम को स्वैप करने का कारण नहीं बनेगी जब इसकी आवश्यकता नहीं होती है, और एक कम स्वप्नदिली, यह प्रदान करते हुए कि आप पूरी तरह से स्वैपिंग को अक्षम नहीं करते हैं, यह आपके सिस्टम को स्वैप करने से नहीं रोकेगा जब इसे पूरी तरह से करना होगा।
60 या तो की डिफ़ॉल्ट स्वैगनेस आपके सिस्टम के अच्छे प्रदर्शन को सुनिश्चित करने के लिए एक बहुत अच्छा समझौता है, यह सुनिश्चित करने के लिए कि कैश मेमोरी को आवंटित करना मुश्किल नहीं है, जबकि अप्रयुक्त आवंटित प्रोग्राम मेमोरी है।
याद रखें कि यदि आपके पास आपकी सभी प्रक्रियाओं के लिए भरपूर मात्रा में कैश है, जो कि आमतौर पर होना चाहिए, यदि आपके पास भरपूर मात्रा में फिजिकल रैम है, तो स्वैपिंग आपके लिए कोई समस्या नहीं होनी चाहिए। बहुत अधिक स्वैपिंग के मुद्दों को ठीक करने का पसंदीदा तरीका प्रक्रियाओं द्वारा रैम का उपयोग कम करना है, और / या भौतिक रैम को बढ़ाना है। यदि आपको वास्तव में अधिक रैम की आवश्यकता है, तो स्वैग को कम करने का नकारात्मक प्रभाव पड़ेगा।
ज्यादातर लोग 10-20 तक स्वपन को कम करने की सलाह क्यों देते हैं?
क्योंकि अधिकांश का मानना है कि स्वैपिंग = खराब और अगर आप स्वैगनेस को कम नहीं करते हैं, तो सिस्टम स्वैप कर देगा जब वास्तव में इसकी आवश्यकता नहीं है। दोनों में से कोई भी सच नहीं है। लोग स्वैपिंग को ऐसे समय के साथ जोड़ते हैं जहां उनका सिस्टम अस्त-व्यस्त हो रहा है - हालाँकि, यह ज्यादातर स्वैपिंग है क्योंकि सिस्टम को अन्य तरीकों से नहीं बल्कि चारों ओर से चलाया जा रहा है। यह सच है कि कुछ निश्चित समय होते हैं जब स्वैपिंग पर ध्यान देने योग्य प्रदर्शन जुर्माना हो सकता है, लेकिन सिस्टम ने पहले ही यह स्वीकार कर लिया होगा कि स्वैप करने के अपने निर्णय में, और निर्णय लिया कि ऐसा नहीं करने पर सिस्टम प्रदर्शन या स्थिरता में अधिक से अधिक जुर्माना होगा। बाद में ध्यान देने योग्य हो जाते हैं। कुल मिलाकर डिफ़ॉल्ट सेटिंग्स का परिणाम सबसे अच्छा समग्र प्रदर्शन और विश्वसनीयता होना चाहिए। मैं इसे डिफ़ॉल्ट पर छोड़ने की सलाह दूंगा।
...
एक बार जब आप पर्याप्त मेमोरी का उपयोग कर लेते हैं, तो सुचारू रूप से चलने वाले कैश के लिए पर्याप्त नहीं होता है, तो लिनक्स रैम से स्वैप के लिए कुछ अप्रयुक्त एप्लिकेशन मेमोरी को फिर से आवंटित कर सकता है।
हालांकि यह एक निश्चित कटऑफ के अनुसार ऐसा नहीं करता है। यह ऐसा नहीं है कि आप आवंटन के एक निश्चित प्रतिशत तक पहुंच जाते हैं तो लिनक्स स्वैप करना शुरू कर देता है। यह एक बल्कि "फजी" एल्गोरिथ्म है। यह बहुत सी चीजों को ध्यान में रखता है, जिसे "स्मृति आवंटन के लिए कितना दबाव है" द्वारा सबसे अच्छा वर्णन किया जा सकता है। यदि नई मेमोरी आवंटित करने के लिए बहुत अधिक "दबाव" है, तो इससे संभावना बढ़ जाएगी कि कुछ को अधिक कमरे बनाने के लिए स्वैप किया जाएगा। यदि कम "दबाव" है तो यह इन अवसरों को कम करेगा।
आपके सिस्टम में एक "स्वैप्पीनेस" सेटिंग है जो आपको ट्विक करने में मदद करती है कि इस "दबाव" की गणना कैसे की जाती है। यह आम तौर पर इसे बदलने के लिए अनुशंसित नहीं है, और मैं निश्चित रूप से आपको इसे बदलने की कभी भी सिफारिश नहीं करूंगा। स्वैपिंग एक बहुत अच्छी बात है - किसी भी सामयिक प्रदर्शन दंड का उद्देश्य विभिन्न प्रकार के कार्यों के लिए समग्र प्रणाली जवाबदेही और स्थिरता में लाभ प्राप्त करना है। यदि आप स्वप्नदोष को कम करते हैं, तो आप कैश मेमोरी की मात्रा को थोड़ा और कम कर देते हैं, अन्यथा यह तब भी होगा, जब यह वास्तव में उपयोगी हो सकता है। इसलिए आप सामान्य रूप से अपने कंप्यूटर को धीमा करने का जोखिम उठाते हैं, क्योंकि कम कैश है, जबकि मेमोरी उन अनुप्रयोगों द्वारा ली जा रही है जो इसका उपयोग भी नहीं कर रहे हैं। चाहे आप स्वैपिंग के साथ जो भी विशिष्ट समस्या हो, उसके लिए यह एक अच्छा व्यापार है।
जब व्यवस्था चरमरा जाती है और ज़ोर से स्वैप होती है तो क्या हो रहा है?
बहुत बार लोग अपने सिस्टम को देखेंगे जो डिस्क को जोर से दबा रहे हैं और बहुत सारे स्वैप स्पेस का उपयोग कर रहे हैं और इसके लिए स्वैपिंग को दोष देते हैं। यह गलत तरीका है। यदि स्वैपिंग कभी भी इस चरम पर पहुंच जाती है, तो इसका मतलब है कि आपकी प्रणाली मेमोरी में बहुत कम है और स्वैपिंग एकमात्र ऐसी चीज है जो इसे क्रैश करने या बेतरतीब ढंग से प्रक्रियाओं को मारने से रोकती है। स्वैपिंग के बिना, इस स्थिति में, प्रक्रियाएं दुर्घटनाग्रस्त हो जाएंगी और मर जाएगी। स्वैपिंग एक गहरी समस्या का लक्षण है। अपने सभी कार्यों के लिए पर्याप्त मेमोरी वाले सिस्टम में, स्वैपिंग केवल यह सुनिश्चित करती है कि मेमोरी को कुशल तरीकों से उपयोग किया जाता है, स्मृति को निष्क्रिय प्रक्रियाओं पर कैश से निपटाना जहां वह देखता है कि यह इसके लायक होगा। ऐसी प्रणाली में जहां स्वैपिंग डिस्क को लगातार थ्रैश कर रहा है, यह स्वैपिंग की गलती नहीं है।
जब डिस्क को स्वैप करने के लिए क्या चुनना है, तो सिस्टम उस मेमोरी को चुनने की कोशिश करता है जो वास्तव में उपयोग नहीं किया जा रहा है - से पढ़ा या लिखा गया है। यह गणना के लिए एक बहुत ही सरल एल्गोरिथ्म है जो ज्यादातर समय अच्छी तरह से चुनता है।
...
लेकिन स्वैप मेरे सिस्टम को कैसे गति दे सकता है? धीमी गति से चीजों को स्वैप नहीं करता है?
रैम से स्वैप करने के लिए डेटा ट्रांसफर करने का कार्य एक धीमा ऑपरेशन है, लेकिन यह केवल तभी लिया जाता है जब कर्नेल को पूरा यकीन है कि यह समग्र लाभ होगा। उदाहरण के लिए, यदि आपकी एप्लिकेशन मेमोरी इस बिंदु पर पहुंच गई है कि आपके पास लगभग कोई कैश नहीं बचा है और I / O इस वजह से बहुत अक्षम है, तो आप वास्तव में कुछ मेमोरी को मुक्त करके अपने सिस्टम से बहुत अधिक गति प्राप्त कर सकते हैं, यहां तक कि डेटा को स्वैप करने के प्रारंभिक खर्च के बाद इसे मुक्त करने के लिए।