यदि मेरे पास कार्य दिवस के अंत में बहुत सारी "निष्क्रिय" मेमोरी है तो इसका क्या मतलब है?


21

मैकबुक एक्स 10.6.5 पर चलने वाले मेरे मैकबुक प्रो में एक दिन के काम के बाद, एक्टिविटी मॉनिटर से पता चलता है कि मेरे कंप्यूटर की 8 जीबी मेमोरी का अधिकांश हिस्सा "इनएक्टिव" है, और पाई चार्ट का केवल एक छोटा सा "फ्री" है। यह तब भी है जब मैंने सभी एप्लिकेशन बंद कर दिए हैं, केवल फाइंडर चल रहा है।

इसका क्या मतलब है? क्या "निष्क्रिय" स्मृति किसी चीज द्वारा ली गई है? या क्या यह वास्तव में अभी भी अनुप्रयोगों के उपयोग के लिए उपलब्ध है? धन्यवाद।


जवाबों:


27

ओएस एक्स, अधिकांश आधुनिक ऑपरेटिंग सिस्टमों की तरह, स्मृति के प्रबंधन के लिए एक वर्चुअल मेमोरी सिस्टम का उपयोग करता है । अन्य उद्देश्यों के बीच, यह ऑपरेटिंग सिस्टम को कंप्यूटर को स्मृति के असीमित पूल के रूप में इलाज करने की अनुमति देता है। इसे प्राप्त करने के लिए, OS रैम के अप्रयुक्त भागों को स्वैप मशीन के रूप में उपयोग करेगा, जिसे स्वेपाइल के रूप में जाना जाता है

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

जब आप एक प्रोग्राम लॉन्च करते हैं, तो यह सक्रिय मेमोरी में लोड हो जाता है। जब आप एक प्रोग्राम छोड़ते हैं, हालांकि, यह रैम से हटाया नहीं जाता है; बल्कि, यह निष्क्रिय स्मृति में टकरा जाता है। यही कारण है कि एक कार्यक्रम को फिर से लॉन्च करना अक्सर तेज होता है - यह अभी भी रैम में है (फ़ायरफ़ॉक्स जैसे बड़े कार्यक्रम के साथ इसे आज़माएं)।

एक बार जब आपकी सभी मेमोरी का उपयोग किया जाता है (फ्री मेमोरी 0 है), ओएस सक्रिय मेमोरी में अधिक जगह बनाने के लिए स्वैप मेमोरी को निष्क्रिय मेमोरी लिख देगा।

यदि कोई प्रोग्राम स्वैफ़ाइल के लिए तैयार हो जाता है, और आप उसे पुनः लॉन्च करते हैं, तो यह स्वैफ़ाइल से सक्रिय मेमोरी में खींच लिया जाएगा।

तो संक्षेप में, आपको वास्तव में परवाह नहीं करनी चाहिए कि क्या आपकी मुफ्त मेमोरी कम है। वास्तव में, आप चाहते हैं कि यह कम हो - मुफ्त मेमोरी व्यर्थ मेमोरी है (जैसा कि ओएस इसे किसी चीज के लिए उपयोग नहीं कर रहा है)।

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


2
मुझे लगता है कि पेज इनसाइट, पेज इन्स की तुलना में स्वैप के उपयोग का एक बेहतर संकेतक है, क्योंकि पेज इन्स में लोडिंग प्रोग्राम के साथ-साथ स्वेपाइल से लोडिंग भी शामिल है।
गॉर्डन डेविसन

1
एक्टिविटी मॉनिटर में, मेरा VM साइज़ 160 GB से अधिक है! क्या मेरे कंप्यूटर पर किसी प्रकार की अदला-बदली है जो वास्तव में इतनी बड़ी है?
hpy

1
@penyuan: नहीं। यह सैद्धांतिक रूप से है कि स्वैप कितना बड़ा हो सकता है, लेकिन स्वैप के वास्तविक आकार को एक्टिविटी मॉनिटर में उपयोग किए गए स्वैप का लेबल दिया जाता है।
मियादी

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

2
@ डिसेज़: निष्क्रिय स्मृति बाहर निकल जाती है। सक्रिय मेमोरी निष्क्रिय हो जाती है जब इसकी आवश्यकता नहीं होती है। मुझे लगता है कि अगर आपके पास इतनी कम मेमोरी है कि निष्क्रिय मेमोरी के लिए कोई जगह नहीं है, तो सक्रिय मेमोरी डिस्क से सीधे मिल जाएगी, लेकिन यह एक विशेष परिस्थिति है। दरअसल, स्वैपफाइल सैद्धांतिक रूप से अनिश्चित काल तक बढ़ता है (जब तक कि कोई डिस्क स्थान नहीं है), लेकिन यह भी, एक अत्यंत दुर्लभ घटना है।
मियादी २

9

यह सबसे अधिक संभावना है कि कोई समस्या नहीं है, और वास्तव में संभावित रूप से आपके कंप्यूटर की गति बढ़ रही है।

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

यदि किसी प्रोग्राम को अधिक मेमोरी की आवश्यकता है, तो ओएस एक्स प्रोग्राम को चलाने या विस्तार करने के लिए स्थान की अनुमति देने के लिए कुछ डिस्क कैश (कम से कम हाल ही में उपयोग की गई फाइलें) को साफ करेगा।

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

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

आपको यह देखना चाहिए कि कोई स्वैप उपयोग है या नहीं, और यदि आप मेमोरी-इंटेंसिव प्रोग्राम खोलते हैं, तो डिस्क पर स्वैप किए बिना निष्क्रिय मेमोरी की मात्रा कम हो जाएगी।

(मेरा मानना ​​है कि थोड़ी देर के लिए 10.4 या 10.5 में एक बग था जहां यह हमेशा इस स्मृति को बहुत प्रभावी ढंग से मुक्त नहीं करेगा, और एक बड़ी डिस्क कैश होने के बावजूद स्वैपिंग का कारण होगा, लेकिन मेरे अनुभव में यह 10.6 में हल होता है)।


निष्क्रिय स्मृति वास्तव में रैम है, न कि स्मृति जो डिस्क से बाहर रखी गई है।
मियादी

3

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

यही सिद्धांत है, किसी भी दर पर, और मेरा मानना ​​है कि यह ध्वनि है। हालाँकि, मैंने इस संदर्भ को किसी "पर्ज" उपयोगिता के लिए लिखा था क्योंकि किसी ने नहीं लिखा था कि उन्हें नहीं लगता कि निष्क्रिय स्मृति जल्दी से पर्याप्त रूप से जारी की जा रही थी।

विषय पर आधिकारिक प्रलेखन के लिए, इसे पढ़ें (और "निष्क्रिय" खोजें)।


रिकॉर्ड के लिए, मेरा एमबीपी वर्तमान में कहता है: निशुल्क 58 एमबी, वायर्ड 239 एमबी, सक्रिय 1.84 जीबी, निष्क्रिय 900 एमबी - और सिस्टम काफी अच्छी तरह से प्रदर्शन कर रहा है।
माइकल एच।

1
मुझे लगता है कि पर्ज कमांड एक भगवान भेजें टूल है। फ़ोटोशॉप + फ़ायरफ़ॉक्स + इलस्ट्रेटर + नेटबीन + स्मार्टगिट होने से आसानी से 4 जी आईमैक क्रॉल कर सकते हैं। बेशक, फ़ायरफ़ॉक्स प्रमुख अपराधी है, लेकिन अगर आप चीज़ों को थोड़ा गति देना चाहते हैं, तो फ़ायरफ़ॉक्स छोड़ दें और "पर्स और" फिर से नया जारी करें
एंटनी

2
पर्ज के मैन पेज वास्तव में कहते हैं कि यह प्रदर्शन विश्लेषण के लिए केवल डिस्क कैश को फ्लश करने के लिए लिखा गया था (अनाम मेम: स्टैक, हीप या राइट ऑन कॉपी) नहीं (ठीक है क्योंकि डिस्क कैश सिस्टम को गति देता है)। इसे तेजी से जारी करने के लिए नहीं लिखा गया था, क्योंकि इसे निष्पादित करने से कर्नेल गतिशील रूप से स्मृति को पुनः प्राप्त करने की आवश्यकता से धीमा है। एप्लिकेशन को बंद करना पूरी तरह से आवंटित मेम को हटा देता है, और यदि आप बाद में इसे शुद्ध करते हैं तो यह एप्लिकेशन लोड धीमा कर देता है, linuxatemyram.com/play.html देखें । मुझे लगता है कि शुद्ध के बारे में कुछ मनोवैज्ञानिक है, बस अनिवार्य रूप से कचरे को खाली करना।
Jano

1

OS X 10.5 से शुरू होने वाले MAC OS X में स्पष्ट मेमोरी प्रबंधन समस्याएं हैं।

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

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

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

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

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

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

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


1
आप जो कुछ भी वर्णन करते हैं, वह एक अलग प्रश्न का आधार बन सकता है, लेकिन यह इस प्रश्न का उत्तर नहीं है।
ग्राहम पेरिन

2
मैं कहूंगा कि नि: शुल्क मेमोरी का आपका वर्णन तेजी से सेट बिंदु तक कम हो रहा है और सिस्टम सभी गैर-सक्रिय और वायर्ड रैम को निष्क्रिय करता है, यह एक संकेत है कि सिस्टम बिल्कुल डिजाइन के रूप में काम कर रहा है। सिर्फ इसलिए कि स्मृति प्रबंधन एक ओएस पर अलग है बनाम दूसरे का मतलब यह नहीं है कि यह या तो टूट गया है। अनुकूलन विकल्पों में हमेशा नीचे की ओर होता है।
bmike

0

यह चर्चा केवल तभी समझ में आती है जब यह कथन कि "आपका कंप्यूटर तेज़ चलेगा जब मुफ्त मेमोरी कम होगी" - सच थे। जब तक मेरा डेस्कटॉप मैक अजीब तरह से वायर्ड नहीं हो जाता, तब तक मेरी मुफ्त मेमोरी (मॉनिटर की गई) मिनट कम होने लगती है, जो भी कार्यक्रम मैं उस समय चला रहा हूं, वह उस बिंदु पर डगमगाने लगता है, जहां मैं तब तक कुछ नहीं कर सकता, जब तक कि वह खुद से पीछे न हट जाए। मेरे नि: शुल्क मेमोरी हस्तक्षेप द्वारा। मेरे पास एक iMac 2118 (2006 या बाद में) है जो अधिकतम 3 जीबी रैम है इसलिए मैं इसे प्रबंधित करने का प्रयास कर सकता हूं जब मैं कर सकता हूं लेकिन यह बहुत निराशाजनक है। कोई विचार?

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