MacOSX में निष्क्रिय मेमोरी को समझने में परेशानी


8

मुझे लगा कि मैं समझ गया हूं कि MacOSX कैसे मेमोरी का प्रबंधन करता है, लेकिन हाल ही में मैं इसके प्रदर्शन से चकित हो गया हूं। यहाँ स्थिति है:

  1. मेरे पास 8GB की फिजिकल मेमोरी वाला MacOSX 10.6.7 पर चलने वाला एक नया Core i7 सिस्टम है। कुछ एप्लिकेशन नियमित रूप से कुछ मेमोरी को लेकर चल रहे हैं- सफारी, मेल, एक्सकोड, टर्मिनल, आदि।
  2. मुझे समानांतर में तीन 64-बिट प्रक्रियाओं को चलाने की आवश्यकता है, जिनमें से प्रत्येक वास्तविक मेमोरी के लगभग 2000 एम का उपयोग करता है।
  3. हालाँकि वायर्ड मेमोरी 1000M से नीचे रहती है (अर्थात मेरे पास प्रक्रियाओं के लिए 7000M से अधिक उपलब्ध है), मुझे लगता है कि मैंने लॉन्च की गई तीन मेमोरी-गहन प्रक्रियाओं से बहुत खराब प्रदर्शन के लिए भारी पेजिंग गतिविधि देखी।
  4. जाहिरा तौर पर, मैं उपलब्ध रैम से बाहर नहीं चल रहा हूं, क्योंकि रिपोर्ट की गई निष्क्रिय मेमोरी लगभग 2500M रहती है और सक्रिय मेमोरी 5000M से ऊपर नहीं बढ़ती है।

क्या कोई मुझे इस बात का सुराग दे सकता है कि मैकॉज़ ने प्रक्रियाओं के लिए निष्क्रिय स्मृति को जारी क्यों नहीं किया, जिसके लिए उसे ज़रूरत है, बजाय पेजिंग का सहारा लेने के? इसके अलावा, क्या सिस्टम द्वारा मेमोरी प्रबंधन को प्रभावित करने का कोई उचित तरीका है?


जवाबों:


5

मैंने पाया है, मेरी मशीन पर, मैक ओएस एक्स सही चीजों को बाहर करने के लिए थोड़ा धीमा है।

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

आप शायद यह जानते हैं लेकिन यहाँ Apple प्रलेखन के लिए कुछ लिंक दिए गए हैं जो OS X पर मेमोरी उपयोग और वर्चुअल मेमोरी का वर्णन करते हैं:

http://support.apple.com/kb/ht1342

http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html

यहां वह स्पष्टीकरण दिया गया है: निष्क्रिय सूची में वे पृष्ठ शामिल हैं जो वर्तमान में भौतिक मेमोरी में निवासी हैं लेकिन हाल ही में एक्सेस नहीं किए गए हैं। इसका क्या अर्थ है इसकी सटीक परिभाषा प्राप्त करना कठिन है, लेकिन लगता है कि इसमें फ़ाइल सिस्टम कैश के साथ-साथ वास्तविक निष्क्रिय मेमोरी भी शामिल है।

निष्क्रिय मेमोरी शायद एक इंटरैक्टिव GUI संचालित ओएस पर संभालना एक मुश्किल चीज है जहां उपयोगकर्ता किसी भी समय किसी भी चल रहे एप्लिकेशन पर स्विच करना चुन सकता है और इस तरह की स्थिति में जवाबदेही प्रदान करना महत्वपूर्ण है .... लेकिन उस का फ़्लिपसाइड वह है आपकी जैसी स्थिति में ओएस को बिल्कुल पता नहीं होता कि क्या करना सही है।

शुद्ध कमांड का उपयोग करके निष्क्रिय मेमोरी (कुछ) को शुद्ध करना संभव है । इसे CHUD टूल इंस्टॉल करके इंस्टॉल करने की आवश्यकता हो सकती है लेकिन आपके पास पहले से ही इंस्टॉल है। मैंने शुद्ध कमांड का उपयोग करने की कोशिश नहीं की है इसलिए YMMV ...

मैं थोड़ा संभल गया हूं और आपके सवाल का जवाब दे भी सकता है और नहीं भी। यह सब लिखने के बाद, मुझे इस साइट पर एक और सवाल मिला, जिसमें एक ही जानकारी का बहुत कुछ है जो शायद मदद भी करे।


धन्यवाद! purgeआदेश मैं वास्तव में क्या ढूंढ रहा था। मुझे Apple के KB में समर्थन लेख मिला था, लेकिन वे विशेष रूप से उपयोगी नहीं थे।
वेंत्ज़ी जेचेव

1

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

purgeडेवलपर्स के लिए एक एप्लिकेशन की स्टार्ट-अप स्थितियों का अनुकरण करना उपयोगी है - उदाहरण के लिए, यह देखने के लिए कि बूट या लंबे अंतराल के बाद पहली बार चलने वाले एप्लिकेशन को प्राप्त करने में कितना समय लगता है। विशिष्ट उपयोगकर्ता के लिए, purgeबहुत उपयोगी नहीं है (और वास्तव में अस्थायी प्रदर्शन में गिरावट का कारण होगा)।

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