कर्नेल संस्करण २.६.२, के बाद से, लिनक्स एक स्प्लिट लेस्ट रिसेंटली यूज्ड (LRU) पेज रिप्लेसमेंट रणनीति का उपयोग करता है । एक फाइल सिस्टम स्रोत वाले पृष्ठ, जैसे प्रोग्राम टेक्स्ट या साझा लाइब्रेरी फ़ाइल कैश के हैं। फाइलसिस्टम बैकिंग वाले पृष्ठों को गुमनाम पृष्ठ कहा जाता है, और रनटाइम डेटा से युक्त होते हैं जैसे कि अनुप्रयोगों के लिए आरक्षित स्टैक स्थान आदि। आमतौर पर फ़ाइल कैश से संबंधित पृष्ठ मेमोरी से बेदखल करने के लिए सस्ते होते हैं (जब ये आवश्यक हो तो डिस्क से वापस पढ़ा जा सकता है) । चूंकि अनाम पृष्ठों का कोई फाइल सिस्टम बैकिंग नहीं है, इसलिए उन्हें तब तक मेमोरी में रहना चाहिए, जब तक उन्हें किसी प्रोग्राम की आवश्यकता न हो, जब तक कि उन्हें स्टोर करने के लिए स्वैप स्पेस न हो।
vm.swappiness
में विकल्प खेलने में आता है get_scan_count()
में परिभाषित किया गया mm/vmscan.c
। get_scan_count()
यह निर्धारित करता है कि कैसे अज्ञात और फ़ाइल LRU सूचियों को स्कैन किया जाना चाहिए, जब पृष्ठों को निकालने के लिए खोज की जानी चाहिए। प्रत्येक मामले का मूल्य हाल ही में घुमाए गए और हाल ही में स्कैन किए गए अनुपातों के फ्लोटिंग औसत से निर्धारित होता है जहां सिस्टम के बदलते कार्यभार को ध्यान में रखते हुए हाल के संदर्भों में पुराने लोगों की तुलना में अधिक वजन होता है।
vm.swappiness
एक आपरिवर्तक कि गुमनाम पृष्ठों के पक्ष में फ़ाइल कैश पृष्ठों बाहर गमागमन के बीच संतुलन को बदल देता है। डिफ़ॉल्टvm.swappiness
पेजों को प्राथमिकता दी जाती है, डिफ़ॉल्ट रूप से 60 पर सेट की जाती है । फ़ाइल कैश को 200 का प्राथमिकता मूल्य दिया जाता है जिसमें से vm.swappiness
संशोधक काटा जाता है ( file_prio=200-anon_prio
)। इसका मतलब यह है कि, डिफ़ॉल्ट रूप से, प्राथमिकता वाले वज़न गुमनाम पृष्ठों ( anon_prio=60
, file_prio=200-60=140
) के पक्ष में हैं । हालाँकि, जब सिस्टम एक आउट-ऑफ-मेमोरी स्थिति के करीब होता है , तो अनाम और फ़ाइल LRU सूची दोनों को समान रूप से स्कैन किया जाता है, जब तक कि vm.swappiness
इसे शून्य पर सेट नहीं किया जाता है।
जब vm.swappiness
100 पर सेट किया जाता है, तो प्राथमिकताएं समान ( anon_prio=100
, file_prio=200-100=100
) होंगी । vm.swappiness
शून्य पर सेट करने से कर्नेल को फ़ाइल कैश से पृष्ठों के पक्ष में अनाम पृष्ठों को बेदखल करने से रोका जा सकेगा।