लिनक्स मेमोरी मैनेजमेंट में स्वैग्‍पन को कैसे कॉन्फ़िगर करें?


11

स्वैपीनेस पैरामीटर भौतिक मेमोरी से बाहर और स्वैप डिस्क पर प्रक्रियाओं को स्थानांतरित करने के लिए कर्नेल की प्रवृत्ति को नियंत्रित करता है। डिफ़ॉल्ट सेटिंग क्या है और समग्र प्रदर्शन को बेहतर बनाने के लिए इसे कैसे कॉन्फ़िगर किया जाए ?


3
स्वैग बदलने के बाद, मैंने swapoff -aनए सिरे से स्वैप को खाली करने के लिए इसे उपयोगी पाया । serverfault.com/a/354384/203035
निमो

जवाबों:


10

लिनक्स कर्नेल एक स्वैच्छिक सेटिंग प्रदान करता है जो स्वप्नदोष को नियंत्रित करता है

$ cat /proc/sys/vm/swappiness
60  

/etc/sysctl.confजड़ के रूप में खुला । फिर, इस लाइन को फ़ाइल में बदलें या जोड़ें:

vm.swappiness = 10

स्वेच्छा मूल्य बदलने के लिए अस्थायी रूप से इस कमांड को आज़माएँ:

$ echo 50 > /proc/sys/vm/swappiness

1
यह कैसे उत्तर देता है "समग्र प्रदर्शन में सुधार करने के लिए इसे कैसे कॉन्फ़िगर करें?"
टेकफ्रेड

आपके सिस्टम का प्रदर्शन धीमा होने पर स्वैपिंग की आवश्यकता होती है क्योंकि यह कई बार ऐसा होता है जब आप उपयोग करने योग्य रैम से बाहर चल रहे होते हैं, जो आपके सिस्टम को धीमा कर देता था (शायद यहां तक ​​कि क्रैश हुए एप्लिकेशन) भले ही आपने स्वैप न किया हो। इसलिए चीजों को सरल बनाने के लिए, स्वैपिंग होती है क्योंकि आपका सिस्टम चारों ओर से दूसरे रास्ते के बजाय नीचे की ओर मुड़ता जा रहा है - और कुछ मामलों में यह दिन को बचा सकता है।
मोंगरेल

2
क्या आपको sudo sysctl -p /etc/sysctl.confबदलावों के प्रभावी होने की आवश्यकता नहीं है?
पैरामोल

11

से Swappiness, विकिपीडिया

आप इस मान को एक वर्चुअल फ़ाइल में सेट कर सकते हैं /proc/sys/vm/swappiness । उल्लिखित मान यह तय करेगा कि स्वैप स्पेस का उपयोग कैसे किया जाना चाहिए, नीचे कुछ उदाहरण दिए गए हैं।

vm.swappiness = 0   # Swap is disabled. In earlier versions, this meant that the kernel would swap only to avoid an out of memory condition, but in later versions this is achieved by setting to 1.
vm.swappiness = 1   # Kernel version 3.5 and over, as well as kernel version 2.6.32-303 and over: Minimum amount of swapping without disabling it entirely.
vm.swappiness = 10  # This value is sometimes recommended to improve performance when sufficient memory exists in a system, this value *10* could be considered for the performance being expected. 
vm.swappiness = 60  # The default value.
vm.swappiness = 100 # The kernel will swap aggressively.

यद्यपि यह वास्तव में आवश्यकता पर भी निर्भर करता है, यदि उपलब्ध भौतिक मेमोरी पर्याप्त है, तो स्वैप स्थान की बहुत आवश्यकता नहीं हो सकती है, आम आदमी की शर्तों में डिफ़ॉल्ट मान को बदलने की आवश्यकता नहीं होगी 60


@techraf ने जवाब अपडेट किया।
कीशोव बोराटे

1
VMs में मैं सलाह देता हूं कि इसे केवल 10 के मामले में बदल दिया जाए।
रुई एफ रिबेरो

2

RedHat / CentOS में डिफ़ॉल्ट मान 60 है।
"प्रदर्शन को बेहतर बनाने के लिए" बहुत व्यापक शब्द है। आप किस प्रदर्शन को बेहतर बनाने की कोशिश कर रहे हैं?

क्या आपके पास कम मेमोरी वाले मुद्दे हैं?
क्या आपका सिस्टम स्वैप करता है जब अभी भी मुफ्त मेमोरी / कैश्ड मेमोरी है?

लिनक्स में मुफ्त रैम = व्यर्थ रैम, इसलिए डिस्क कैश के लिए लगभग सभी मुफ्त मेमोरी का उपयोग किया जाता है।
स्वैग के साथ मामले हैं = 60 जहां स्मृति में पृष्ठों को स्वैप में ले जाया जाता है यदि उन्हें विस्तारित समय अवधि के लिए एक्सेस नहीं किया गया है, तो कोई फर्क नहीं पड़ता कि आपके पास असंबद्ध रैम है।
कुछ मेमोरी पेज को SWAP में ले जाना कोई बुरी बात नहीं है।

कृपया अधिक विस्तृत उत्तर के लिए अपने मुद्दे पर कुछ और प्रकाश डालें।

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