मैं स्वैग्‍पन को कैसे कॉन्फ़िगर करूं?


345

मुझे स्वैच्छिकता को कॉन्फ़िगर करने के लिए सरल और आसान तरीके से चरण-दर-चरण की आवश्यकता है।


17
एक लाइनरsudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf"
redanimalwar

8
@redanimalwar को आपको sudo sysctl -psysctl.conf फ़ाइल से नए स्वैग्मेंट मान को लोड करने के लिए चलाने की आवश्यकता है , अन्यथा परिवर्तन केवल अगले रिबूट पर लागू होता है।
वॉलीड्रिअस

जवाबों:


509

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

शून्य की एक स्वैगनेस सेटिंग का अर्थ है कि डिस्क को तब तक टाला जाएगा जब तक कि पूरी तरह से आवश्यक न हो (आप मेमोरी से बाहर चले जाएं), जबकि 100 की स्वैगनेस सेटिंग का अर्थ है कि प्रोग्राम को लगभग तुरंत डिस्क पर स्वैप किया जाएगा।

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

one@onezero:~$ cat /proc/sys/vm/swappiness
60

जैसा कि मेरे पास 4 जीबी रैम है मैं इसे 10 या 15. नीचे करना चाहता हूं। स्वैप फाइल तब ही उपयोग की जाएगी जब मेरी रैम का उपयोग लगभग 80 या 90 प्रतिशत होगा। सिस्टम स्वैप्पीनेस मान को बदलने के लिए, रूट के/etc/sysctl.conf रूप में खोलें । फिर, इस लाइन को फ़ाइल में बदलें या जोड़ें:

vm.swappiness = 10

परिवर्तन प्रभावी होने के लिए रिबूट।

जब आपका सिस्टम अभी भी साथ चल रहा हो तो आप मान बदल सकते हैं:

sysctl vm.swappiness=10

आप एक ही प्रभाव को प्राप्त करने के लिए रिबूट करने के बजाय रन करके swapoff -aऔर फिर swapon -aरूट के रूप में अपना स्वैप साफ़ कर सकते हैं ।

अपने स्वैप फॉर्मूला की गणना करने के लिए:

free -m (total) / 100 = A

A * 10

root@onezero:/home/one# free -m
             total       used       free     shared    buffers     cached
Mem:          3950       2262       1687          0        407        952
-/+ buffers/cache:        903       3047
Swap:         1953          0       1953

तो कुल 3950/100 = 39.5 * 10 = 395 है

तो इसका क्या मतलब है कि जब राम का 10% (395 एमबी) बचा है, तो यह स्वैप का उपयोग करना शुरू कर देगा।


                                          मदद । उबटन। विनिमय

                                           स्वैग क्या है

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

  • swappiness 0 और 100 के बीच मान हो सकता है।
  • swappiness=0:
    • कर्नेल संस्करण 3.5 और नया: स्वैपपन अक्षम करता है।
    • 3.5 से अधिक पुराना कर्नेल संस्करण: यथासंभव लंबे समय तक भौतिक मेमोरी से स्वैपिंग प्रक्रियाओं से बचा जाता है।
  • swappiness=1:
    • कर्नेल संस्करण 3.5 और उससे अधिक: पूरी तरह से अक्षम किए बिना न्यूनतम स्वैग।
  • swappiness=100:
    • कर्नेल को भौतिक मेमोरी से आक्रामक रूप से स्वैप करने की प्रक्रिया बताता है और उन्हें कैश स्वैप करने के लिए ले जाता है।

Http://en.wikipedia.org/wiki/Swappiness देखें ।

उबंटू में डिफ़ॉल्ट सेटिंग है swappiness=60। स्वैग के डिफ़ॉल्ट मान को कम करने से संभवतः एक विशिष्ट उबंटू डेस्कटॉप स्थापना के लिए समग्र प्रदर्शन में सुधार होगा। मूल्य की swappiness=10सिफारिश की जाती है, लेकिन प्रयोग करने में संकोच न करें।


उदाहरण

91% पर स्वैप का उपयोग करना शुरू किया :

यहां छवि विवरण दर्ज करें जैसा कि मैंने पर राम का उपयोग करने के अपने सिस्टम और वीएम कॉन्फ़िगर किया है 90% , पर 90% कोई अदला-बदली थी।

उसके बाद मैंने फ़ायरफ़ॉक्स और शटर जैसे कुछ एप्लिकेशन खोले, और यह स्वैप करना शुरू कर दिया क्योंकि रैम का उपयोग 90% से ऊपर है ।


118
100 का स्वैग करने से प्रोग्राम तुरंत स्वैप नहीं होते हैं, न ही 60 या 90 मतलब स्वैप का उपयोग तब होता है जब रैम 60 या 90% भरा हो। यह पर्याप्त नहीं है जब कुछ स्मृति मुक्त करने के लिए कैश बनाम गमागमन से पृष्ठों को चुराने के लिए वरीयता का अनुपात है। एक कम मान दृढ़ता से कैश से पृष्ठों को चुराना पसंद करेगा, और एक उच्च मूल्य दृढ़ता से पृष्ठों की कोशिश करना और स्वैप करना पसंद करता है। मेमोरी का उपयोग करने के बाद ही सेटिंग का कोई प्रभाव पड़ता है (लगभग) सभी का उपयोग किया जाता है, और कर्नेल को यह चुनना होता है कि कुछ को कैसे मुक्त किया जाए।
Psusi

67
आपको यह इंगित करने की आवश्यकता है कि चलने वाले प्रोग्रामों पर कब्जा नहीं करने वाली रैम का उपयोग डिस्क कैश के रूप में किया जाता है ... इसलिए, स्वैगनेस कम करने से, आप प्रोग्राम को स्वैप नहीं किए जाने की संभावना बढ़ाते हैं, लेकिन साथ ही साथ आकार में कमी करते हैं डिस्क कैश, जो डिस्क एक्सेस को धीमा कर सकता है। तो वास्तविक प्रदर्शन पर इस सेटिंग के प्रभाव सीधे नहीं हैं ... आप बेशक प्रयोग करने के लिए स्वागत करते हैं, लेकिन मुझे संदेह है कि चूक उन लोगों द्वारा निर्धारित की जाती है जो विषय में पर्याप्त समझ रखते हैं :)
सर्गेई

14
@ सेर्गेई और इसकी विडंबना यह है कि छोटे रैम वाले लोग प्रदर्शन को बढ़ावा देने के लिए हर चाल को आजमाने की सबसे अधिक संभावना रखते हैं और ऐसे लोगों के होने की संभावना अधिक होती है जिनके लिए 60 या इससे अधिक का सबसे अच्छा आंकड़ा होगा। हममें से वे इसे 10 पर सेट कर रहे हैं क्योंकि हमने बहुत सारे रैम हासिल नहीं किए हैं क्योंकि वे ऐसा करते हैं तो वे हार जाएंगे।
जॉन हैना


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