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


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


298
2018-02-13 18:31


मूल


एक लाइन sudo bash -c "echo 'vm.swappiness = 15' >> /etc/sysctl.conf" - redanimalwar
@redanimalwar आपको भी चलाने की जरूरत है sudo sysctl -p sysctl.conf फ़ाइल से नया swappiness मान लोड करने के लिए, अन्यथा परिवर्तन अगले रीबूट पर लागू होता है। - waldyrious


जवाब:


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

एक स्वैप सेटिंग शून्य इसका मतलब है कि डिस्क को तब तक टाला जाएगा जब तक कि पूरी तरह जरूरी नहीं है (आप स्मृति से बाहर हो जाते हैं), जबकि एक स्वैप सेटिंग 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 = 3 9 5 है

तो इसका मतलब यह है कि कब 10% (3 9 5 एमबी) रैम छोड़ा गया है तो यह स्वैप का उपयोग शुरू कर देगा।


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

Swappiness क्या है

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

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

देख http://en.wikipedia.org/wiki/Swappiness

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


उदाहरण

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

enter image description here जैसा कि मैंने रैम का उपयोग करने के लिए अपने सिस्टम और वीएम को कॉन्फ़िगर किया है 90%पर 90% कोई स्वैपिंग नहीं थी।

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


453
2018-02-13 18:33



100 की स्वैपिंग प्रोग्राम को तत्काल बाहर नहीं निकालती है, न ही 60 या 90% स्वैप का मूल्य तब होता है जब राम 60 या 90% भरा होता है। यह पर्याप्त नहीं होने पर कुछ स्मृति को मुक्त करने के लिए कैश बनाम चीजों को स्वैप करने से पृष्ठों को चुरा लेने के लिए वरीयता का अनुपात है। एक कम मूल्य कैश से पृष्ठों को चोरी करना पसंद करेगा, और एक उच्च मूल्य दृढ़ता से पेजों को आज़माने और स्वैप करने के लिए पसंद करता है। मेमोरी (लगभग) सभी का उपयोग होने के बाद ही सेटिंग का कोई प्रभाव पड़ता है, और कर्नेल को कुछ मुक्त करने का तरीका चुनना होता है। - psusi
आपको यह इंगित करने की ज़रूरत है कि चलने वाले प्रोग्रामों द्वारा चलाए जा रहे रैम को डिस्क कैश के रूप में उपयोग किया जाता है ... इसलिए, स्वैपनेस कम करके, आप एक प्रोग्राम का मौका बढ़ा सकते हैं, जिसे आकार में नहीं बदला जाता है, लेकिन साथ ही साथ आकार कम हो जाता है डिस्क कैश का, जो डिस्क को धीमा कर सकता है। तो वास्तविक प्रदर्शन पर इस सेटिंग के प्रभाव उस सीधा नहीं हैं ... आप पाठ्यक्रम के प्रयोग में आपका स्वागत है लेकिन मुझे संदेह है कि डिफ़ॉल्ट लोगों को इस विषय में पर्याप्त समझने वाले लोगों द्वारा निर्धारित किया जाता है :) - Sergey
@ सर्गी और इसके विडंबना यह है कि छोटे रैम वाले लोग प्रदर्शन को बढ़ावा देने के लिए हर चाल का प्रयास कर सकते हैं और जिन लोगों के लिए 60 या इससे भी अधिक उच्चतम आंकड़े होंगे, उतने ही अधिक होने की संभावना है। हम में से हम इसे 10 तक सेट कर रहे हैं क्योंकि हमारे पास टन रैम उतना अधिक नहीं हो रहा है जितना वे हार जाएंगे। - Jon Hanna
@Freedom_Ben: देखें linuxatemyram.com :) - Sergey
बस एक समान चर्चा छोड़कर - unix.stackexchange.com/questions/88693/... - Elijah Lynn