मैं उपयोग कर /proc/sys/vm/overcommit_memory
रहा हूँ Linux में स्मृति overcommitting में देख रहा हूँ, और मैंने कुछ लेख पढ़े हैं जो एक ही बात नहीं कहते हैं।
यह डॉक , "गलत दिशा में जा रहा है" शीर्षक के तहत, "मान 1: do overcommit, और 0 (डिफ़ॉल्ट): do" नहीं कहता है, लेकिन फिर अगली कुछ पंक्तियों में यह उल्लेख करता है, इसी तरह चीजें, कि यह वास्तव में सच नहीं है और इसका मतलब है कि "कितना overcommitment के बारे में अनुमान उचित है"। इसका मतलब है कि स्मृति ओवरकमिट वैल्यू 0, राइट का उपयोग करके अक्षम नहीं है ?
यह भी कहता है कि 1 इंगित करता है कि "किसी भी मॉलोक (कभी भी) को मना न करें", 2 अर्थ के साथ "ओवरकमिट के बारे में सटीक होना चाहिए - कभी भी स्वैप स्थान से बड़ा आभासी पता स्थान नहीं बनाना चाहिए और भौतिक स्मृति का एक अंश overcommit_ratio से अधिक है।"
दूसरी ओर, Red Hat पत्रिका में कहा गया है, "यदि मान 0 है, तो यह निर्धारित करने के लिए कर्नेल जाँचता है कि क्या किसी एप्लिकेशन से मैलोडॉक कॉल के लिए मेमोरी अनुरोध देने के लिए पर्याप्त मेमोरी फ्री है। यदि पर्याप्त मेमोरी है, तो। अनुरोध स्वीकार किया जाता है। अन्यथा, इसे अस्वीकार कर दिया जाता है और आवेदन में एक त्रुटि कोड वापस आ जाता है। " यह वास्तव में ओवरकम को अक्षम करने जैसा लगता है।
"यदि मान 1 पर सेट है, तो कर्नेल अनुदान को भौतिक RAM की मात्रा से ऊपर आवंटित करता है और सिस्टम में स्वैप करता है जैसा कि overcommit_ratio मान द्वारा परिभाषित किया गया है .... यदि इस फ़ाइल में सेटिंग 2 है, तो कर्नेल सभी मेमोरी आवंटन की अनुमति देता है भले ही वर्तमान स्मृति आवंटन राज्य की हो। ” मूल्यों 1 और 2 के संदर्भ में, यह पिछले डॉक्टर द्वारा कही गई बात के विपरीत है, है ना?
क्या किसी को पता है कि वास्तव में क्या सही है, और अगर यह संभव है कि क्या 'अक्षम' को खत्म कर दिया जाए?