मैक ओएस एक्स को स्वैप का उपयोग करने से कैसे अक्षम करें जब अभी भी "निष्क्रिय" मेमोरी है?


61

ओएस एक्स के लिए मेरे दिन-प्रतिदिन के उपयोग (और कई अन्य इंटरनेट के विभिन्न पदों के अनुसार) में एक सामान्य घटना, सिस्टम को धीमा होने लगता है जब भी कोई "फ्री" मेमोरी उपलब्ध नहीं होती है। माना जाता है कि यह स्वैपिंग के कारण है, क्योंकि भारी डिस्क गतिविधि स्पष्ट है और यह कि vm_stat कई पेजआउट की रिपोर्ट करता है। (मुझे गलत से सही करें)

हालाँकि, स्वैपिंग शुरू होने / समाप्त होने पर "निष्क्रिय" रैम की मात्रा आम तौर पर सभी उपलब्ध मेमोरी (^ 1) का लगभग 12.5% ​​-25% होती है।

Http://support.apple.com/kb/ht1342 के अनुसार :

निष्क्रिय स्मृति

स्मृति में यह जानकारी सक्रिय रूप से उपयोग नहीं की जा रही है, लेकिन हाल ही में उपयोग की गई थी।

उदाहरण के लिए, यदि आप मेल का उपयोग कर रहे हैं और फिर इसे छोड़ दें, तो मेल का उपयोग करने वाला RAM निष्क्रिय मेमोरी के रूप में चिह्नित है। यह निष्क्रिय मेमोरी किसी अन्य एप्लिकेशन द्वारा उपयोग के लिए उपलब्ध है, बिल्कुल मुफ्त मेमोरी की तरह। हालाँकि, यदि आप किसी अन्य अनुप्रयोग द्वारा इसकी निष्क्रिय स्मृति का उपयोग करने से पहले मेल खोलते हैं, तो मेल जल्दी से खुलेगा क्योंकि इसकी निष्क्रिय मेमोरी को धीमी मेमोरी डिस्क से मेल लोड करने के बजाय, सक्रिय मेमोरी में बदल दिया जाता है।

और http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html के अनुसार :

निष्क्रिय सूची में वे पृष्ठ शामिल हैं जो वर्तमान में भौतिक मेमोरी में निवासी हैं लेकिन हाल ही में एक्सेस नहीं किए गए हैं। इन पृष्ठों में वैध डेटा होता है लेकिन किसी भी समय मेमोरी से जारी किया जा सकता है

तो, मूल रूप से: जब एक कार्यक्रम छोड़ दिया है, यह स्मृति निष्क्रिय के रूप में चिह्नित हो जाता है और किसी भी समय दावा योग्य होना चाहिए। फिर भी, ओएस एक्स इस मेमोरी का दावा करने के बजाय स्वैप मेमोरी को स्वैप करना शुरू करना पसंद करेगा, जब भी "फ्री" मेमोरी कम हो जाएगी।

क्यों? इस व्यवहार से अधिक लाभ क्या है, कहते हैं, तुरंत निष्क्रिय स्मृति को जारी करना और स्वैप फ़ाइल को स्पर्श करना भी नहीं है? कुछ स्रोतों (^ 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 अब स्वैप पर हैं।

डायनामिकपेजरवॉपर का उपयोग करके स्वैप-आवंटन को गति देना

स्वैग-उपयोग को तेज करने के लिए एक अच्छी बात है, लेकिन पहले से निष्क्रिय स्मृति में ओएक्सएक्स स्वैपिंग की समस्या को संबोधित नहीं करता है।

डायनेमिक पेज को अक्षम करके और पुनः आरंभ करके स्वैप को अक्षम करना

यह ओएक्सएक्स को सभी मेमोरी का उपयोग करने पर लटकाए गए सिस्टम की कीमत पर स्वैप का उपयोग नहीं करने के लिए मजबूर करेगा। व्यवहार्य विकल्प नहीं ...

हैक किए गए डायनेमिक पेजर का उपयोग करके स्वैप को अक्षम करना

ऊपर डायनामिक पेज को अक्षम करने के समान है, टिप्पणियों से ब्लॉग पोस्ट के कुछ अंश यह दर्शाते हैं कि यह एक व्यवहार्य समाधान नहीं है: "इनएक्टिव मेमोरी हमेशा की तरह उच्च है"। "जब आपका सिस्टम मेमोरी से बाहर चल रहा होता है, तो पूरा ओएस हैंग हो जाता है ...", "यदि आप मैक की मेमोरी की पूरी मात्रा का उपभोग करते हैं, तो मशीन हैंग होने की संभावना है"

संक्षेप में, मैं अभी भी मैक ओएस एक्स को स्वैप का उपयोग करने से अक्षम करने के तरीके से अनजान हूं जब अभी भी "निष्क्रिय" मेमोरी है। यदि यह संभव नहीं है, तो शायद कम से कम एक स्पष्टीकरण है कि क्यों ओएक्सएक्स मेमोरी को स्वैप करना पसंद करता है जो किसी भी समय मेमोरी से जारी किया जा सकता है ?


1
मुझे यह समस्या मिली है, इन एक्टिविटी मॉनीटर नंबरों द्वारा सचित्र: बासिस्टेंस.डे / आई / एफ २३२२२ डी.पंग बमुश्किल कोई मुफ्त मेमोरी, लेकिन बहुत सारी निष्क्रिय मेमोरी। इसके बजाय, पुनःप्राप्त करने के लिए, OSX जोर से स्वैप करना शुरू करना पसंद करता है, जैसा कि आप 40 जीबी पेज बहिष्कार द्वारा देख सकते हैं।
जोहान ज़ेफर

मुझे बहुत सारी मुफ्त मेमोरी मिली है और अभी भी कई जीबी स्वैप का उपयोग किया जा रहा है। 16GB rMBP।
स्टीवन लू

1
जाहिरा तौर पर कुछ लोगों ने "पर्ज" को चलाने से लाभ की सूचना दी है। apple.stackexchange.com/questions/67031/… गैर नकारात्मक
rogerdpack

जवाबों:


19

परिभाषा के अनुसार, निष्क्रिय मेमोरी वह मेमोरी होती है जिसे पृष्ठांकित करने के लिए तैयार किया जाता है, और इसे पेजिंग करने के लिए इसे स्वैप करने के लिए लिखना शामिल हो सकता है। यह किसी भी तरह की समस्या या समस्या नहीं है जिसे अनुकूलित किया जाना चाहिए; यह वास्तव में OS X के रूप में काम कर रहा है

दुर्भाग्य से, टेक सपोर्ट राइटर कर्नेल डेवलपर्स नहीं हैं, और Apple नॉलेज बेस सपोर्ट आर्टिकल का उद्धरण गलत है जब यह दावा करता है कि इनएक्टिव मेमोरी प्रोग्राम्स द्वारा अप्रयुक्त मेमोरी है। जब आप कोई प्रोग्राम छोड़ते हैं, तो उसकी सभी निवासी मेमोरी फ्री हो जाती है; यह निष्क्रिय में बंद नहीं करता है। हालाँकि, डेवलपर साइट का दूसरा लिंक यह वर्णन करता है कि मेमोरी प्रबंधन कैसे काम करता है एक अच्छा संसाधन है, अगर पूरी तरह से पढ़ा जाए।

ओएस एक्स में "निष्क्रिय मेमोरी" का क्या अर्थ है, इसके बारे में कई गलत धारणाएं हैं। गलत धारणाओं के विपरीत, सभी निष्क्रिय मेमोरी खाली, अप्रयुक्त, कैश या शुद्ध नहीं है। वास्तव में, सक्रिय मेमोरी को कैश या शुद्ध किया जा सकता है, अगर यह हाल ही में एक्सेस किया गया हो। बहुत निष्क्रिय मेमोरी में डेटा भी होता है जिसे केवल त्याग नहीं किया जा सकता है। यदि इसे छोड़ दिया गया, तो प्रोग्राम क्रैश हो जाएंगे, क्योंकि छोड़े गए पृष्ठों में मान्य डेटा शामिल होगा (जैसा कि OS X डेवलपर की ओर से उद्धरण कहता है,) और प्रोग्रामों को उम्मीद है कि उन्होंने (वर्चुअल) मेमोरी में डेटा को गायब नहीं किया है।

निष्क्रिय मेमोरी में सक्रिय मेमोरी के समान डेटा होते हैं। अंतर केवल इतना है कि ओएस एक्स ने देखा है कि मेमोरी के कुछ हिस्से कुछ समय से पढ़े या लिखे नहीं गए हैं।

कारण यह है कि ओएस एक्स कुछ मेमोरी को निष्क्रिय और अन्य क्षेत्रों को "सक्रिय" के रूप में वर्गीकृत करता है, पेजिंग से बाहर करना पड़ता है। जब मेमोरी कम होती है, तो आपको कुछ डेटा पेज करना होगा। सवाल है, कौन सा डेटा? यदि आप उन डेटा को पृष्ठ से बाहर कर देते हैं जो एक प्रोग्राम को तुरंत फिर से आवश्यकता होती है, तो यह समय बर्बाद करता है और कुछ भी नहीं पूरा करता है। तो आप स्मृति को पृष्ठ से बाहर करना चाहते हैं जिसे एक प्रोग्राम को तुरंत फिर से उपयोग करने की आवश्यकता नहीं होगी।

यह अनुमान लगाना कि भविष्य में किन पृष्ठों के अनावश्यक होने की संभावना है, क्योंकि एक कार्यक्रम अपनी आभासी मेमोरी का उपयोग कर सकता है, लेकिन यह ओएस को पसंद करता है और इसके योजनाओं के बारे में कुछ भी नहीं बताता है। लेकिन एक अनुमानी के रूप में, अधिकांश कार्यक्रम उनकी स्मृति उपयोग में "चिपचिपा" हैं; यदि उन्होंने कुछ समय तक मेमोरी के कुछ टुकड़े का उपयोग नहीं किया है, तो संभव है कि वे उस मेमोरी का उपयोग न करें, और स्मृति का उपयोग जारी रखने की संभावना है जो उन्होंने हाल ही में उपयोग की है।

इसलिए जब OS कुछ डेटा को पेज करने का निर्णय लेता है, तो यह उन पृष्ठों की अदला-बदली की रणनीति लेता है, जिनका हाल ही में उपयोग नहीं किया गया है। यही कारण है कि OS X उस मेमोरी को सॉर्ट करता है जिसे प्रोग्राम्स द्वारा "एक्टिव" और "इनएक्टिव" के दो पाइल्स में कैप्चर किया जा रहा है। ऊपर तैनात लिंक डेवलपर साइट पर, अगर पूरी तरह से पढ़ा है, बताता है कि कैसे है कि इस प्रक्रिया से होता है:

  • जब मेमोरी कम होने लगती है, तो OS सक्रिय मेमोरी पेजों से गुजरने लगता है, और प्रत्येक पर एक झंडा लगाता है।
  • यदि कोई प्रोग्राम किसी पृष्ठ पर पढ़ता या लिखता है, तो ध्वज साफ़ हो जाता है।
  • यदि, कुछ देरी के बाद, ध्वज को मंजूरी नहीं दी जाती है, तो वह पृष्ठ "निष्क्रिय" ढेर में क्रमबद्ध हो जाता है।
  • यदि एक "निष्क्रिय" पृष्ठ इसके कार्यक्रम द्वारा पहुँचा जाता है, तो इसे वापस "सक्रिय" ढेर में डाल दिया जाता है।
  • जब स्मृति समाप्त हो जाती है, तो "निष्क्रिय" पृष्ठ बाहर पृष्ठांकित होते हैं।

ध्यान दें कि किस मेमोरी को स्वैप करने का निर्णय लेने के लिए यह छँटाई प्रक्रिया सभी आधुनिक ऑपरेटिंग सिस्टम के समान है। लिनक्स में सक्रिय और निष्क्रिय पृष्ठों की समान दो सूचियाँ हैं, जैसा कि लिनक्स वर्चुअल मेमोरी मैनेजर को समझने में वर्णित है । विंडोज़ दो से अधिक वर्गों के सस्वर पाठ के साथ कुछ अलग उपयोग कर सकता है; मुझे इस समय एक हालिया, विश्वसनीय तकनीकी विवरण नहीं मिल रहा है। "पृष्ठ प्रतिस्थापन एल्गोरिथ्म" शीर्षक वाले विकिपीडिया पृष्ठ पर अधिक कार्यान्वयन पर चर्चा की गई है । ओएस एक्स के साथ एकमात्र अंतर यह था कि आंकड़े कैसे दिखाए गए थे: किसी ने फैसला किया कि सक्रिय topया निष्क्रिय या गतिविधि मॉनिटर के लिए अलग-अलग संख्या दिखाना एक अच्छा विचार होगा । पूर्वव्यापी में यह शायद इतना अच्छा विचार नहीं था (और यह ओएस एक्स 10.9 में बदल गया है।)

झंडे स्थापित करने और सक्रिय / निष्क्रिय ढेर को बनाए रखने की यह प्रक्रिया प्रोसेसर शक्ति का थोड़ा सा हिस्सा लेती है। उस कारण से, ओएस एक्स ऐसा नहीं करता है जब बहुत सारी मुफ्त मेमोरी होती है। तो आपके द्वारा शुरू किए गए पहले प्रोग्राम सभी "सक्रिय" मेमोरी के रूप में दिखाएंगे जब तक कि मुफ्त मेमोरी कम चलना शुरू न हो जाए।

इसलिए, जैसा कि आप एक खाली स्लेट से शुरू करते हैं, और अधिक से अधिक प्रोग्राम खोलते हैं, आप गतिविधि मॉनीटर में निम्नलिखित प्रगति देख सकते हैं:

  • सबसे पहले, बहुत सारी "मुक्त" मेमोरी है और बहुत कम निष्क्रिय है। ऐसा इसलिए है क्योंकि मेमोरी फ़्लैगर ने चलना शुरू नहीं किया है।
  • जैसे ही फ्री मेमोरी ड्राप होती है, OS X अपने मेमोरी फ्लैगर को चलाना शुरू कर देगा, और आपको "निष्क्रिय" राशि दिखाई देने लगेगी। "निष्क्रिय" का प्रत्येक बिट पहले "सक्रिय" था।
  • जब आप मुफ्त मेमोरी से बाहर निकलते हैं, तो "निष्क्रिय" ढेर के पन्नों को पृष्ठांकित किया जाएगा। मेमोरी-फ्लैगर भी पूर्ण झुकाव को मेमोरी को सक्रिय और निष्क्रिय में चला रहा होगा। आमतौर पर, आपको स्वैप करते समय "निष्क्रिय" बहुत कुछ दिखाई देगा, यह दर्शाता है कि मेमोरी-फ्लैगर वह कर रहा है जो इसे माना जाता है।

पेज होना चाहिएइससे पहले कि वे बाहर बदली हैं उन्हें निष्क्रिय के रूप में वर्गीकृत किया जाए। वह यह है कि Apple डेवलपर साइट के उद्धरण का अर्थ है जब यह कहता है कि "इन पृष्ठों में वैध डेटा है लेकिन किसी भी समय मेमोरी से जारी किया जा सकता है।" यह सक्रिय पृष्ठों के विरोध में है, जो तब तक जारी नहीं किए जाएंगे, जब तक कि उन्हें निष्क्रिय नहीं किया जाएगा। पृष्ठों को जारी करने के विभिन्न तरीके हैं; यदि पृष्ठ को किसी फ़ाइल से मैप किया गया था और संशोधित नहीं किया गया है, तो इसे तुरंत हटा दिया जा सकता है और मांग पर फिर से पढ़ा जा सकता है। इसी तरह अगर यह मेमोरी है जिसे पहले स्वैप किया गया था और इसे स्वैप करने के बाद संशोधित नहीं किया गया था। प्रोग्राम डेटा को संग्रहीत करने के लिए स्पष्ट रूप से कैश और शुद्ध मेमोरी आवंटित कर सकते हैं, जिसे भूल जाने और मांग पर फिर से बनाया जा सकता है (लेकिन कारण एक प्रोग्राम कैश आवंटित करेगा। यदि उस डेटा को फिर से बनाने में महत्वपूर्ण समय लगता है।

इसलिए एक्टिविटी मॉनिटर में "निष्क्रिय" मेमोरी की मात्रा को देखते हुए, और यह देखते हुए कि कंप्यूटर को स्वैप करने के लिए लिख रहा है उसी समय बहुत अधिक निष्क्रिय है, केवल आपको बताता है कि सिस्टम डिज़ाइन के रूप में काम कर रहा है।

निष्क्रिय मेमोरी और फ़ाइल कैश के बीच एक भ्रम भी है। मुझे यकीन नहीं है कि वहाँ भ्रम क्यों है, क्योंकि गतिविधि मॉनिटर पहले से ही अलग-अलग शीर्षक के तहत उन्हें सूचीबद्ध करता है। कैश मेमोरी का उपयोग हाल के डेटा को संग्रहीत करने के लिए किया जाता है जिन्हें फ़ाइल सिस्टम से पढ़ा या लिखा गया है, अगर उन्हें फिर से एक्सेस करने की आवश्यकता होती है। जब मेमोरी कम होती है, तो ओएस एक्स पहले कैश से छुटकारा पाने की प्रवृत्ति रखता है। यदि आपके पास स्वैप थ्रैशिंग है, और गतिविधि मॉनिटर कैश का एक बड़ा ढेर दिखाता है (निष्क्रिय नहीं) तो यह एक समस्या होगी। लेकिन निष्क्रिय स्मृति एक अलग चीज है।

यदि संदेह है, तो "निष्क्रिय" और "सक्रिय" के बीच के अंतर को अनदेखा करें। उन्हें "कार्यक्रमों द्वारा उपयोग की जाने वाली स्मृति" की एक गांठ होने के नाते और दो संख्याओं को एक साथ जोड़ने के लिए। यह वही है जो हर दूसरे ऑपरेटिंग सिस्टम आपको मेमोरी उपयोग के बारे में बताता है।

OS X 10.9 के लिए नोट: मावेरिक्स ने "मेमोरी कम्प्रेशन" पेश किया, जो कमोबेश, स्वैप की एक और परत है। सक्रिय पेज अब वर्गीकृत निष्क्रिय हो जाते हैं, फिर संपीड़ित (जो आपके द्वारा उपयोग किए जा रहे टूल के आधार पर कर्नेल मेमोरी के रूप में दिखाई दे सकते हैं), फिर मेमोरी उपयोग में वृद्धि के रूप में स्वैप करने के लिए लिखा जाता है। एक्टिविटी मॉनिटर में सक्रिय और निष्क्रिय के लिए मावेरिक्स ने अलग-अलग संख्या दिखाना बंद कर दिया है, क्योंकि यह विशेष रूप से इसके बारे में गलत धारणाओं को देखते हुए, एक उपयोगी चीज नहीं है।


4

मैकोस एक्स के व्यवहार को बदलने का वर्तमान में कोई आसान तरीका नहीं है (या ऐसा कहा जाता है) व्यवहार। हालांकि कुछ हैक उपलब्ध हैं हालांकि (डेवलपर खाते और एसडीके की आवश्यकता है):

http://cestdelamerde.com/archives/22-Killing-Mac-OS-X-Swapping-How-To-Disable-dynamic_pager.html

http://dropsafe.crypticide.com/article/3848

सौभाग्य!

परिशिष्ट भाग। मुझे लगता है कि आप इस जवाब को (मेरे द्वारा भी) मैकॉक्स में सक्रिय, निष्क्रिय और अन्य यादों की अधिक सामान्य समीक्षा के लिए पढ़ सकते हैं: वायर्ड मेमोरी बनाम ओएस एक्स में सक्रिय मेमोरी


आपके उत्तर के लिए धन्यवाद। स्वप्नदोष को समायोजित करने से निश्चित रूप से मदद मिलेगी - बुमेर कि यह आसान नहीं है! पहले लिंक के बारे में, मैं वास्तव में एक ऐसी हैक की तलाश कर रहा हूं, जिसमें स्वैप / डायनेमिक_पेजर को पूरी तरह से अक्षम करना और पुनः आरंभ करना शामिल नहीं है, क्योंकि स्वैप उपयोग को अक्षम करने के लिए बहुत अधिक प्रयास की आवश्यकता होती है, साथ ही कम राशि के संपर्क में आने पर सिस्टम को अस्थिर छोड़ देता है। निष्क्रिय और मुक्त स्मृति की। 2 लिंक कभी बढ़ती स्वैप फ़ाइलों की समस्या को संदर्भित करता है। जबकि और महत्वपूर्ण मुद्दा विशेष रूप से जब कोई स्वैप फ़ाइलों पर कम हो रहा है, तो यह वास्तव में इस धागे में मेरे प्रश्न के लिए प्रासंगिक नहीं है ...
9

4

स्थायी समाधान नहीं है, लेकिन कम से कम यह कुछ निष्क्रिय स्मृति को पुनः प्राप्त करने में मदद कर सकता है, संभावित रूप से खूंखार गमागमन से बचा जा सकता है: http://itunes.apple.com/nz/app/freememory/id460931672?mt=12

उपकरण का उपयोग करने के लिए स्वतंत्र और बहुत आसान है। एक बार शुरू होने के बाद, सिस्टम टूलबार / मेनू में इसका "फ्री मेमोरी" विकल्प चुनें।

एक्टीविमिटर मेमोरी डिस्प्ले के विपरीत, यह केवल मुफ्त मेमोरी दिखाता है, जो कि स्वैपिंग का एक बेहतर संकेतक लगता है।


मैं लगभग दो महीने पहले आपके सुझाव के बाद से इस ऐप का मूल्यांकन कर रहा हूं। ऐसा लगता है कि यह ऐप वास्तव में विभिन्न तरीकों के माध्यम से "मुक्त" मेमोरी की मात्रा में वृद्धि करता है, जिसमें आक्रामक रूप से खुद के लिए बहुत सारी मेमोरी का दावा करना शामिल है, फिर इसे जारी करना। हालाँकि, यह स्मृति की केवल एक ही मात्रा का कारण बनता है कि इसे "मुक्त" किया जाए। यह कहना है कि यह किसी भी मेमोरी को जारी करने में मदद नहीं करता है , केवल मेमोरी कंटेंट को राम से HD तक ले जा रहा है। अंत में, यह बहुत सारे स्वैप-इन का कारण बनता है जब मैं उन अनुप्रयोगों का उपयोग करने का प्रयास करता हूं जो स्मृति को मुक्त करते समय खुले थे, क्योंकि इसके बहुत सारे vm अब स्वैप पर हैं। :(
मोतिन

@Motin, मैंने महीनों के लिए FreeMemory का उपयोग किया है, और यह ऐसा नहीं करता है, कम से कम मेरे अनुभव में। अगर मुझे शिक्षित अनुमान (गतिविधि मॉनीटर में मैंने जो देखा है) के आधार पर, अंतर यह है कि एफएम पहले "सक्रिय" मेमोरी का उपभोग करता है, जिसे डिस्क कैश पर प्राथमिकता दी जाती है। यह अन्य मेमोरी को प्राथमिकता में उच्च करके "मुक्त" करता है, फिर यह अपनी मेमोरी को मुक्त करता है । मैंने इसे कभी भी स्वैप करने के लिए जोड़कर नहीं देखा है (हो सकता है कि यह उपभोग करते समय थोड़ी मात्रा में आवंटित किया गया हो)।
पलकविहीनता

2

OS X 10.5 के साथ शुरू होने वाले MAC OS X में स्पष्ट मेमोरी मैनेजमेंट की समस्याएं हैं। वेब पहले ही सिस्टम में कुछ समय के बाद नाटकीय रूप से धीमा होने की शिकायतों के साथ बंद हो गया था। वापस तो मेरे पास धीमी मशीन थी, 1 जीबी रैम के साथ मैक मिनी, इसलिए मैंने (गलत तरीके से) निष्कर्ष निकाला कि यह अवर हार्डवेयर के कारण था।

अब मेरे पास 2010 एमबीपी, कोर आई 7, 8 जीबी रैम, डुअल जीपीयू है। मैक ओएस एक्स स्नो लेपर्ड दर्द था, लेकिन ओएस एक्स लायन के प्रवास के बाद, मैक पर कुछ गंभीर सामान काम करना एक दुःस्वप्न बनने लगा।

मैं आखिरकार समस्याग्रस्त परिदृश्य को पुन: पेश करने में कामयाब रहा, इसलिए मैंने परीक्षण चलाया और स्क्रीन रिकॉर्ड किया, वीडियो में।

मैक ओएस एक्स शेर प्रदर्शन समस्या - टूटी हुई स्मृति प्रबंधन

मैं tar + bzip कमांड चलाता हूं, जो कि बेसिक यूनिक्स सामान है, बड़ी मात्रा में पिक्चर फाइलों पर, मेरे पिक्चर्स / फोल्डर में। शुरू करने से ठीक पहले, मैं निष्क्रिय / कैश्ड प्रोग्राम डेटा को हटाने के लिए "पर्ज" कमांड चलाता हूं।

आप वीडियो पर देख सकते हैं कि मुफ्त मेमोरी बहुत तेजी से गिरना शुरू हो जाती है, और निष्क्रिय लगातार बढ़ रहा है। यदि आप "bsdtar" कमांड पर एक नज़र डालते हैं, तो यह केवल रैम का एक टुकड़ा लेता है, इसलिए समस्या इस प्रक्रिया में नहीं है। आप यह नहीं कह सकते हैं कि यह एक प्रोग्राम मेमोरी लीक है, क्योंकि तब समस्या निष्क्रिय राम में नहीं होगी, बल्कि सक्रिय / वायर्ड में होगी।

जब मुफ्त मेमोरी 100mb से कम हो जाती है, तो मैंने कुछ ऐप शुरू किए, जैसे कि सफारी, iPhoto और MS Word, और आप वीडियो में देख सकते हैं, कि ऐप को शुरू करने में कुछ मिनट लगते हैं, जब सामान्य रूप से (जब फ्री रैम होती है), तो लोड करने के लिए कुछ 3-5 सेकंड लगेंगे।

मैं अपने लिनक्स सेंटोस 6 बॉक्स पर एक ही परिदृश्य और एक ही कमांड चलाता हूं, वहां कोई समस्या नहीं है! मेमोरी उपयोग कुछ 10-20mb है, कैश / बफर के साथ कोई समस्या नहीं है।

Mac OS X में मेमोरी मैनेजमेंट को बहुत तोड़ना चाहिए!


2
आप जो देख रहे हैं वह मेमोरी में सिस्टम कैशिंग फाइल है। मैं मानता हूं कि एक समस्या है, इसमें कैश कभी भी शुद्ध नहीं लगता है ... लेकिन कैशिंग ही (और परिणाम के रूप में निष्क्रिय मेमोरी का विकास) एक समझदार और कभी-कभी उपयोगी प्रदर्शन विशेषता है।
पलकविहीनता

इसके अलावा परीक्षण वातावरण बाँझ से दूर है। हम नहीं बता सकते कि क्विकटाइम प्लेयर क्या कर रहा है, या कोई भी अन्य प्रोग्राम खुला है।
चिशीस्टींडैंड

1

मुझे यकीन है कि इसका कोई सही जवाब नहीं है। यह मेमोरी के साथ वही है जो तब सक्रिय रहता है जब आप अपने मैक को सोने के लिए डालते हैं, यह सिर्फ आपके द्वारा बनाई गई हर नींद के साथ बढ़ता और बढ़ता है।

"मज़ा" (उर्फ महंगा) पक्ष पर, आप अपनी मेमोरी को अपग्रेड कर सकते हैं या एचडीडी को एसएसडी के साथ बदल सकते हैं, इसलिए स्वैपिंग एक प्रदर्शन हिट नहीं होगी। मैंने पहला विकल्प चुना, क्योंकि कॉर्सियर मेमोरी अब उचित मूल्य पर उपलब्ध है।

16 जीबी रैम


2
ध्यान रखें कि SSDs में सीमित लेखन चक्र होते हैं। यह भी ध्यान दें कि गैर-ट्रिम सक्षम एसएसडी के लिए, आखिरकार लिखना महंगा हो सकता है क्योंकि फ्लैश सेल को मिटाना होगा।
लहरिया क्रैब

क्या आप "नींद के कारण स्मृति उपयोग को बढ़ाने के लिए" समस्या के स्रोत का हवाला दे सकते हैं?
गॉर्डन 21

क्या मैं अपने अनुभव का हवाला दे सकता हूं? :) मैंने एक त्वरित खोज की और यह पाया: चर्चा ।apple.com / message / 21624847#21624847 + निष्क्रिय स्मृति से संबंधित कई विषय हैं जिन्हें आवश्यकता पड़ने पर साफ़ नहीं किया जाता है। मैंने व्यक्तिगत रूप से देखा कि कैसे, हर नींद के बाद, निष्क्रिय स्मृति बनी रहती है जैसे पहले थी और बढ़ती है। 'पर्ज' एक विकल्प है, लेकिन मैं हर 20 मिनट में एक बार निष्क्रिय मेमोरी को शुद्ध नहीं करना चाहूंगा (मुझे यकीन है कि यह 4 गीब रैम के साथ होगा)।

1
@WavyCrab SSDs में सीमित लेखन चक्र हो सकते हैं, लेकिन ऐसा कोई मौका नहीं है जो आप कभी भी उस सीमा तक नहीं पहुंच पाएंगे। मुझे इस बारे में चिंता नहीं होगी, जब तक कि यह डेटा सेंटर के लिए एसएसडी न हो। किसी भी स्थिति में यदि आप अत्यधिक लेखन द्वारा SSD को नीचे लाने जा रहे हैं, तो आप जल्द ही एक HDD नीचे लाएंगे।
और्रेडिटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.