ओएस एक्स के लिए मेरे दिन-प्रतिदिन के उपयोग (और कई अन्य इंटरनेट के विभिन्न पदों के अनुसार) में एक सामान्य घटना, सिस्टम को धीमा होने लगता है जब भी कोई "फ्री" मेमोरी उपलब्ध नहीं होती है। माना जाता है कि यह स्वैपिंग के कारण है, क्योंकि भारी डिस्क गतिविधि स्पष्ट है और यह कि vm_stat कई पेजआउट की रिपोर्ट करता है। (मुझे गलत से सही करें)
हालाँकि, स्वैपिंग शुरू होने / समाप्त होने पर "निष्क्रिय" रैम की मात्रा आम तौर पर सभी उपलब्ध मेमोरी (^ 1) का लगभग 12.5% -25% होती है।
Http://support.apple.com/kb/ht1342 के अनुसार :
निष्क्रिय स्मृति
स्मृति में यह जानकारी सक्रिय रूप से उपयोग नहीं की जा रही है, लेकिन हाल ही में उपयोग की गई थी।
उदाहरण के लिए, यदि आप मेल का उपयोग कर रहे हैं और फिर इसे छोड़ दें, तो मेल का उपयोग करने वाला RAM निष्क्रिय मेमोरी के रूप में चिह्नित है। यह निष्क्रिय मेमोरी किसी अन्य एप्लिकेशन द्वारा उपयोग के लिए उपलब्ध है, बिल्कुल मुफ्त मेमोरी की तरह। हालाँकि, यदि आप किसी अन्य अनुप्रयोग द्वारा इसकी निष्क्रिय स्मृति का उपयोग करने से पहले मेल खोलते हैं, तो मेल जल्दी से खुलेगा क्योंकि इसकी निष्क्रिय मेमोरी को धीमी मेमोरी डिस्क से मेल लोड करने के बजाय, सक्रिय मेमोरी में बदल दिया जाता है।
निष्क्रिय सूची में वे पृष्ठ शामिल हैं जो वर्तमान में भौतिक मेमोरी में निवासी हैं लेकिन हाल ही में एक्सेस नहीं किए गए हैं। इन पृष्ठों में वैध डेटा होता है लेकिन किसी भी समय मेमोरी से जारी किया जा सकता है ।
तो, मूल रूप से: जब एक कार्यक्रम छोड़ दिया है, यह स्मृति निष्क्रिय के रूप में चिह्नित हो जाता है और किसी भी समय दावा योग्य होना चाहिए। फिर भी, ओएस एक्स इस मेमोरी का दावा करने के बजाय स्वैप मेमोरी को स्वैप करना शुरू करना पसंद करेगा, जब भी "फ्री" मेमोरी कम हो जाएगी।
क्यों? इस व्यवहार से अधिक लाभ क्या है, कहते हैं, तुरंत निष्क्रिय स्मृति को जारी करना और स्वैप फ़ाइल को स्पर्श करना भी नहीं है? कुछ स्रोतों (^ 2।) से संकेत मिलता है कि ओएस एक्स रिलीज करने से पहले स्वैप करने के लिए "निष्क्रिय" मेमोरी को बाहर कर देगा, लेकिन इसका मतलब यह नहीं है कि क्या मेमोरी किसी भी समय मेमोरी से मुक्त हो सकती है ? स्वैपिंग महंगा है, जारी करना सस्ता है, है ना?
क्या यह व्यवहार कुछ वरीयता या ज्ञात हैक का उपयोग करके बदला जा सकता है? (अधिमानतः एक जिसमें स्वैप / डायनेमिक_पेजर को पूरी तरह से अक्षम करना और पुनः आरंभ करना शामिल नहीं है ...)
मैं पर्ज कमांड की सराहना करता हूं , साथ ही कुछ फ्री मेमोरी को मजबूर करने के लिए डिस्क अनुमतियों की मरम्मत की अवधारणा भी है, लेकिन वे वास्तव में स्वैप / रिलीज निर्णय तर्क को ठीक करने की तुलना में अधिक नि: शुल्क मेमोरी को मजबूर करने के तरीके हैं ...
Btw एक समान प्रश्न यहाँ पूछा गया था: http://forums.macnn.com/90/mac-os-x/434650/why-does-os-x-swap-when/ और यहाँ: http: //hintsforums.acworld .com / showthread.php? t = 87688 लेकिन भले ही ओपी ने मुख्य प्रश्न पूछा हो, लेकिन कोई भी उत्तर इसका उत्तर नहीं देता है ...
^ 1। UPDATE 17-mar-2012 जब से मैंने पहली बार इस प्रश्न को पोस्ट किया है, मैं 4 जीबी से 8 जीबी तक स्थापित रैम में चला गया हूं, और समस्या बनी हुई है। "निष्क्रिय" राम की मात्रा पहले 0.5gb-1.0gb थी और अब लगभग 1.0-2.0GB है जब स्वैपिंग शुरू / होती है / समाप्त होती है, तो ऐसा लगता है कि लगभग 12.5% -25% RAM को Inactive द्वारा osx के रूप में संरक्षित किया गया है गिरी तर्क।
^ 2। उदाहरण के लिए https://apple.stackexchange.com/questions/4288/what-does-it-mean-if-i-have-lots-of-inactive-memory-at-the-end-a-a-work- दिन :
एक बार जब आपकी सभी मेमोरी का उपयोग किया जाता है (फ्री मेमोरी 0 है), ओएस सक्रिय मेमोरी में अधिक जगह बनाने के लिए स्वैप मेमोरी को निष्क्रिय मेमोरी लिख देगा।
अद्यतन 17-मार्च -2018
यहां उन तरीकों का एक राउंड-अप है जो अब तक मदद करने के लिए सुझाए गए हैं:
पर्ज आदेश
"प्रदर्शन विश्लेषण के लिए कोल्ड डिस्क बफ़र कैश के साथ प्रारंभिक बूट स्थितियों को अनुमानित करने के लिए उपयोग किया जाता है। यह अनाम मेमोरी को प्रभावित नहीं करता है जिसे मॉलोक, vm_allocate, आदि के माध्यम से आवंटित किया गया है।"
यह डिस्क कैश को स्वैप करने के लिए ओएक्स को रोकने के लिए उपयोगी है (जो कि हास्यास्पद है कि ऑक्स वास्तव में पहले स्थान पर ऐसा करता है), लेकिन नकारात्मक पक्ष यह है कि डिस्क कैश जारी किया गया है, जिसका अर्थ है कि अगर डिस्क कैश होने वाला नहीं था अदला-बदली, एक बस एक कोल्ड डिस्क बफर कैश के साथ समाप्त होगा, शायद प्रदर्शन को नकारात्मक रूप से प्रभावित करेगा।
FreeMemory एप्लिकेशन और / या डिस्क अनुमतियाँ मरम्मत कुछ नि: शुल्क स्मृति मजबूर करने के लिए
किसी भी मेमोरी को रिलीज़ करने में मदद नहीं करता है , केवल कुछ गीगाबाइट मेमोरी सामग्री को रैम से एचडी में स्थानांतरित करता है। अंत में, यह बहुत सारे स्वैप-इन का कारण बनता है जब मैं उन अनुप्रयोगों का उपयोग करने का प्रयास करता हूं जो स्मृति को मुक्त करते समय खुले थे, क्योंकि इसके बहुत सारे vm अब स्वैप पर हैं।
डायनामिकपेजरवॉपर का उपयोग करके स्वैप-आवंटन को गति देना
स्वैग-उपयोग को तेज करने के लिए एक अच्छी बात है, लेकिन पहले से निष्क्रिय स्मृति में ओएक्सएक्स स्वैपिंग की समस्या को संबोधित नहीं करता है।
डायनेमिक पेज को अक्षम करके और पुनः आरंभ करके स्वैप को अक्षम करना
यह ओएक्सएक्स को सभी मेमोरी का उपयोग करने पर लटकाए गए सिस्टम की कीमत पर स्वैप का उपयोग नहीं करने के लिए मजबूर करेगा। व्यवहार्य विकल्प नहीं ...
हैक किए गए डायनेमिक पेजर का उपयोग करके स्वैप को अक्षम करना
ऊपर डायनामिक पेज को अक्षम करने के समान है, टिप्पणियों से ब्लॉग पोस्ट के कुछ अंश यह दर्शाते हैं कि यह एक व्यवहार्य समाधान नहीं है: "इनएक्टिव मेमोरी हमेशा की तरह उच्च है"। "जब आपका सिस्टम मेमोरी से बाहर चल रहा होता है, तो पूरा ओएस हैंग हो जाता है ...", "यदि आप मैक की मेमोरी की पूरी मात्रा का उपभोग करते हैं, तो मशीन हैंग होने की संभावना है"
संक्षेप में, मैं अभी भी मैक ओएस एक्स को स्वैप का उपयोग करने से अक्षम करने के तरीके से अनजान हूं जब अभी भी "निष्क्रिय" मेमोरी है। यदि यह संभव नहीं है, तो शायद कम से कम एक स्पष्टीकरण है कि क्यों ओएक्सएक्स मेमोरी को स्वैप करना पसंद करता है जो किसी भी समय मेमोरी से जारी किया जा सकता है ?