निष्क्रिय स्मृति संसाधनों की बर्बादी नहीं है?


87

मैं नीचे दिए गए इस स्क्रीनशॉट में उदाहरण के प्रकाश में विशेष रूप से अपनी मशीन पर स्मृति उपयोग के स्पष्टीकरण की तलाश कर रहा हूं:

स्मृति उपयोग

मैं समझता हूँ कि क्या है Freeऔर Activeइसका मतलब है
लेकिन के अर्थ क्या हैं Wiredऔर Inactive?

विशेष रूप से inactive, यह किसी चीज के लिए इतनी मेमोरी का उपयोग क्यों करता है जिसका हम उपयोग नहीं करते हैं?

जवाबों:


142

निष्क्रिय स्मृति को एक भद्दा नाम के कारण एक भयानक रैप मिला। इसे कुछ ऐसा कहा जाना चाहिए जैसे "अपने मैक को वास्तव में दूसरे, तीसरे और चौथी बार तेज करो, यह एक ही कार्य करता है" स्मृति, सिवाय इसके कि एक भयानक नाम भी है।

Apple ने गतिविधि की निगरानी फिर से लिखी जब उसने कई नई सुविधाएँ शुरू कीं और संपीड़ित मेमोरी को जोड़ा, इसलिए इसमें से कुछ अब macOS पर लागू नहीं होते हैं जो "निष्क्रिय मेमोरी" नहीं दिखाते हैं, लेकिन यह अभी भी मैक ओएस एक्स मेमोरी प्रबंधन पर इस के खिलाफ दस्तावेज के रूप में लागू होता है गतिविधि मॉनिटर का संस्करण: https://support.apple.com/en-us/HT201538

यहाँ बताया गया है कि मैंने OS X पर वर्चुअल मेमोरी की अवधारणा के लिए किसी को नई चीजों को कैसे समझाया:

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

समस्या तब उत्पन्न होती है जब Free + Inactive कुल 1/3 से कम होता है और तब चीजें वास्तव में धीमी हो सकती हैं।

निष्क्रिय स्मृति बोनस गति / डबल ड्यूटी रैम है। यह एक पल के नोटिस के रूप में मुफ्त में कार्य करता है, लेकिन बार-बार किए जाने वाले कार्यों को भी तेज करता है, अगर सिस्टम सही तरीके से अनुमान लगाता है और रैम में कुछ रखता है जो आप फिर से करेंगे। यह पहले से रैम में लोड होने के बाद से स्वैप की गई मेमोरी से तेज है और जब वर्चुअल मेमोरी सिस्टम अच्छा अनुमान लगाता है तो चीजों को तेज करता है।

जब आप सोच रहे हैं कि क्या रैम एक समस्या है, तो 4 श्रेणियों में से प्रत्येक को देखने के बजाय (5 यदि आप सक्रिय स्वैप की गिनती करते हैं), तो आप डब्ल्यू + ए को एक नए कार्यक्रम / कार्य को धीमा कर सकते हैं और एफ + मैं एक गति के रूप में। नया कार्यक्रम / कार्य। आपके पास जितना अधिक F + I है, उतने ही नए प्रोग्राम आप RAM से पहले लॉन्च कर सकते हैं जो कि आवंटित की गई मेमोरी को टटोलने के लिए स्वैपिंग पर निर्भर रहना पड़ता है।

आपको वास्तव में यह जानने की आवश्यकता नहीं है कि मैंने ऊपर उल्लेख किया था तब से स्वैप कैसे काम करता है। असल में, जब कोई प्रोग्राम बेकार बैठा होता है और दिनों (या घंटों) के लिए उपयोग नहीं किया जाता है, तो सिस्टम उस रैम को प्रोग्राम को मारने के बजाय हार्ड ड्राइव पर लिख देगा। यह सिस्टम को फेरबदल करता है और मेमोरी प्रबंधन से संबंधित सभी प्रकार की चीजों को संभालता है और प्रत्येक प्रोग्राम को आपस में बात करने की आवश्यकता से सहमत रखता है जो सिस्टम के बाहर होने पर कम मेमोरी का उपयोग करेगा।

यहां एक वास्तविक दुनिया उदाहरण है कि निष्क्रिय रैम का उपयोग कैसे किया जाता है।

  1. सभी ऐप्स से बाहर निकलें और सुनिश्चित करें कि हम जिन दो ऐप्स का परीक्षण कर रहे हैं, वे आपके लॉग इन करते समय ऑटो स्टार्ट पर सेट नहीं हैं
  2. अपने मैक को रिबूट करें
  3. अपने एक्टिविटी मॉनिटर को फायर करें और पूरे रैम को देखें
  4. अनुप्रयोग A को प्रारंभ करने में कितना समय लगता है (MS Word एक अच्छा विकल्प होगा)
  5. ए से बाहर निकलें
  6. अनुप्रयोग B को प्रारंभ करने में कितना समय लगता है (Adobe कुछ अच्छा भी होगा)
  7. B छोड़ो
  8. A के दूसरे लॉन्च में कितना समय लगता है
  9. ए से बाहर निकलें
  10. टाइम बी का दूसरा लॉन्च।
  11. समय ए की तीसरी बार बी चल रहा है।

आपको दूसरे / तीसरे लॉन्च के लिए नाटकीय स्पीडअप को देखना चाहिए क्योंकि सिस्टम निष्क्रिय रैम में रखना सीखता है जो इन दो ऐप को चलाने की जरूरत है।


आपके मामले में - वायर्ड और एक्टिव के कुल का मतलब है कि डिस्क में कुछ स्वैपिंग की संभावना है और आपका मैक उतना तेज़ नहीं है जितना कि यह हो सकता है क्योंकि आपका निष्क्रिय रैम उन सभी चीजों को स्टोर करने के लिए पर्याप्त नहीं है जिन्हें आपको पुनः उपयोग करने की आवश्यकता हो सकती है। । यदि आपके पास एक तेज एसएसडी ड्राइव है, तो यह रैम आवंटन ठीक है और आपके रैम के 1/2 से कम एक बार धीमा होने के बजाय शुरू होने के बजाय, आप एफ + आई के लिए कुल रैम के 1/4 की तरह चीजों को काट सकते हैं। + ध्यान देने योग्य सुस्ती देखने से पहले। ये दिशानिर्देश सामान्य हैं, और आप vm_stat 15यह सुनिश्चित करने के लिए देखना चाहते हैं कि निरंतर और मध्यम मात्रा में अदला-बदली आपके मैक को धीमा बना रही है।


9
मेरे जैसे नवागंतुक के लिए वाह बहुत पूरा जवाब। बहुत बहुत धन्यवाद, बहुत सराहना की :)
GusDeCooL

6
युप - मुझे सभी के लिए उत्तर मिलता है - एक बार और सभी के लिए, लोग इसे बेहतर बनाने के लिए इसे संपादित कर सकते हैं और आपको अपना उत्तर मिल जाएगा। एक वेब साइट के लिए बहुत अच्छा विचार जहां लोग आ सकते हैं और दिलचस्प सवाल पूछ सकते हैं। :-)
bmike

3
वाह! सुंदर जवाब!
duci9y

3
काश, वे इसे मेरे ओएस क्लास में इस तरह समझाते।
स्टाइलफेल

2
@cvsguimaraes पर्स तत्काल नहीं है; chat.stackexchange.com/transcript/message/12107920#12107920
ग्राहम पेरिन

6

यह संख्या जो यह निर्धारित करने में सबसे महत्वपूर्ण है कि क्या आपका मैक मेमोरी को 'स्ट्रेस्ड' कर रहा है, वह 'पेज आउट' फिगर है। Mavericks में एक्टिविटी मॉनिटर में यह नहीं दिखाया गया है, वे अब 'स्वैप यूज़:' में जानकारी दिखाते हैं।

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

यदि आप पृष्ठ को बढ़ते हुए देखते हैं तो आपको कार्रवाई करनी चाहिए।


4

मेरे मैक पर समस्या "निष्क्रिय" मेमोरी है, जब तक मैं कमांड विंडो में मैनुअल पर्ज नहीं करता, तब तक पर्स नहीं लगता। यह पॉप अप विंडो बनाता है और तब तक बनाता है जब तक कि मुझे पॉपअप विंडो न मिल जाए, मुझे एप्लिकेशन को मारने के लिए कहा जाता है। मेरे सभी अनुप्रयोगों को मारने के बाद भी, मेरे पास अभी भी कुछ भी चलाने के लिए बहुत अधिक निष्क्रिय मेमोरी है। इसलिए, मेरे मैक पर माउंटेन लायन के नवीनतम संस्करण को चलाने पर यह सच नहीं है कि मुफ्त मेमोरी कम होने पर निष्क्रिय मेमोरी पुनः प्राप्त हो जाती है। या तो मेरे पास एक ऐप है जो निष्क्रिय मेमोरी का एक हिस्सा है जो कभी भी मुक्त नहीं होता है, या आईओएस में बग है। (मेरे पास 8 जीबी की भौतिक मेमोरी है ... जो पर्याप्त होना चाहिए!)


2
मैं आपके साथ हूँ, एर्नी ... मैक ओएस 10.6 और 10.7 में मैकबुक प्रो और मैक प्रो पर, निष्क्रिय मेमोरी खत्म हो जाएगी, और ओएस स्वैप करना शुरू कर देगा ("पेज इन्स" और "पेज आउट्स" के अनुसार) सिस्टम एक स्टॉप को क्रॉल करेगा। निष्क्रिय स्मृति कभी भी पुनः प्राप्त नहीं होती है। मुझे निष्क्रिय स्मृति को पुनः प्राप्त करने के लिए "पर्ज" का उपयोग करना होगा, और अपने सिस्टम को फिर से सक्रिय करना होगा।
एरिक

2
यह पॉपअप विंडो कहां से आती है? vm_statजब यह होता है तो स्मृति की स्थिति क्या होती है? क्या आपको इतना यकीन है कि कुछ भी चलाने के लिए "बहुत अधिक" निष्क्रिय स्मृति "हो सकती है"? जहां तक ​​मेरा सवाल है, यह सब सुनकर है कि जिस कोड को आप जानते हैं, उसमें कोई समर्थन नहीं है, वास्तव में कर्नेल में चलता है।
क्यूबा ओबेर

2
क्या आपकी मेमोरी आवंटन कुछ भी दिखती है जैसा कि गस ने प्रस्तुत किया है? यहाँ हम एक गीगाबाइट वायर्ड और एक गीगाबाइट और एक आधा सक्रिय के बारे में बात कर रहे हैं। इस स्थिति में निष्क्रिय / मुक्त राशन मुझे ठीक लगता है। शायद आप एक दूसरा प्रश्न पूछेंगे कि आपके पास उस स्थिति का विवरण है जहां चीजें टूट रही हैं?
bmike

2

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

मेरा काम डेटा के एक बड़े समूह को म्यूट करना था, i / o समय लेने वाला है, इसलिए धारणा यह है कि डेटा का एक बड़ा हिस्सा जितना संभव हो सके एक झपट्टा में पढ़े, इसे वहां प्रोसेस करें, और फिर इसे डिस्क पर वापस लिखें , फिर प्रक्रिया को तब तक दोहराएं, जब तक कि कुछ घंटे न लग जाएं। मैं जो देखता हूं वह यह है कि हर बार जब मैं डेटा के एक नए हिस्से में पढ़ता हूं, तो निष्क्रिय मेमोरी कूद जाती है - मुझे लगता है कि सिस्टम एआई मानता है कि मैं फिर से पुराने चंक का उपयोग करना चाहता हूं, जो मैं नहीं करता - और मुफ्त याददाश्त गिरती है।

इस प्रक्रिया के कुछ पुनरावृत्तियों के बाद नि: शुल्क मेमोरी बस कुछ एमबी तक नीचे हो जाती है, निष्क्रिय मेमोरी कुछ और एमबी को मुक्त कर देगी, और फिर अंततः मुक्त और निष्क्रिय स्मृति के बीच आगे-पीछे होने के कुछ मिनटों के बाद, निष्क्रिय मेमोरी मुक्त हो जाएगी एक बार में कुछ जीबी ऊपर। सभी जैसा कि @bmike वर्णन करता है, और दोनों vm_stat 15 और गतिविधि मॉनिटर शो 0 पेज-आउट दिखाते हैं।

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


0

हाल ही में सक्रिय और छोड़ने वाले ऐप द्वारा उपयोग की जाने वाली निष्क्रिय स्मृति । यदि उपयोगकर्ता फिर से प्रोग्राम खोलना चाहता है तो ओएस एक्स इसे सुरक्षित रखता है। ऐसा होने पर, ओएस एक्स को मेमोरी को स्थानांतरित करने की आवश्यकता नहीं होती है जो प्रदर्शन की गति को तेज करता है। यदि आप प्रोग्राम को दोबारा नहीं खोलते हैं, तो थोड़ी देर के बाद निष्क्रिय की मेमोरी को मुक्त या स्थानांतरित कर दिया जाएगा। (c)

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

तो यू को इसे प्रबंधित करने के लिए विशेष चाल का उपयोग करना होगा।

निष्क्रिय स्मृति के purgeलिए इसे मुक्त करने की आज्ञा है।


-3

मूल रूप से यह टूट गया है। जब फ्री रैम कम हो, तो इनएक्टिव रैम को "प्यूरेज" किया जाना चाहिए। पहले से खोले गए एप्लिकेशन के लिए रैम रखने की क्या उम्मीद है कि उपयोगकर्ता इसे फिर से खोलेगा? यह तथ्य कि फ्री रैम कम है, यह दर्शाता है कि मौजूदा सक्रिय अनुप्रयोगों में पर्याप्त रैम नहीं है और अब स्वैप हो रहा है। बंद अनुप्रयोगों के लिए GB का RAM रखना केवल गूंगा है। Apple के अपने विवरण के अनुसार, Free RAM कम होने पर Inactive RAM को अपने आप शुद्ध या उधार लिया जाना चाहिए। स्पष्ट रूप से यह मामला नहीं है।


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

@bmike लेकिन इसका मतलब यह नहीं होगा कि जब कोई मुफ्त रैम नहीं बचता है और मैं एक नया ऐप शुरू करता हूं, तो निष्क्रिय रैम का हिस्सा घट जाएगा और सक्रिय बढ़ जाएगा? यह स्पष्ट रूप से मामला नहीं है और मेरे अनुभव से सिस्टम बेहद धीमा हो जाता है जब भी कोई और अधिक मुक्त राम नहीं बचा है, निष्क्रिय राम के गीगाबाइट होने के बावजूद। लगता है कि सिस्टम निष्क्रिय डिस्क को फिर से उपयोग करने से पहले स्वैपिंग डिस्क को प्राथमिकता देना चाहता है।
कोडिंगफ्रीड

4
@ codingFriend1 चलो सटीक - vm_statआप कितने पेज मुफ्त मानते हैं "कोई और अधिक मुफ्त RAM"? जब मैक "धीमा" होता है तो पेज इन और पेज आउट के लिए vm_stat 1क्या मायने रखता है ? किसी भी समय मैं इसे एक समस्या प्रणाली पर देख रहा हूं, मुझे vm_stat 15एक टर्मिनल विंडो में चलना पसंद है (या फाइलसिस्टम में लॉग इन करना) ताकि मुझे ठीक से पता चल सके कि पेजिंग गतिविधि क्या है, यह तय करने पर कि क्या / जब मैं चीजों को ट्यून करूंगा पेजर। इस उदाहरण में 100 एमबी मुफ्त रैम है, इसलिए यह पेजिंग दबाव में भी संभव नहीं है।
bmike

-4

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


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