सवाल विंडोज टास्क मैनेजर द्वारा रिपोर्ट की गई कुल मेमोरी उपयोग सभी प्रक्रियाओं के स्मृति उपयोग के योग से कहीं अधिक है? [डुप्लिकेट]


टास्क मैनेजर मेरे 6 जीबी कुल में से 9 0% पर मेरा कुल मेमोरी उपयोग दिखाता है, लेकिन कोई भी प्रक्रिया 250 एमबी रैम से अधिक का उपयोग नहीं कर रही है, और सभी चल रही प्रक्रियाओं के राम उपयोग की मात्रा 2 जीबी से कम है। मैंने कोशिश की:

  • विंडोज 8 टास्क मैनेजर के "प्रोसेस" टैब पर "मेमोरी" कॉलम में संख्याओं को देखते हुए।
  • टास्क मैनेजर के "विवरण" टैब पर "वर्किंग सेट", "प्राइवेट वर्किंग सेट", "साझा वर्किंग सेट" और "कमिट साइज" कॉलम देख रहे हैं।
  • प्रक्रिया एक्सप्लोरर में समान स्मृति-संबंधित कॉलम देख रहे हैं।
  • मैंने Sysinternals RAMMap चलाने का प्रयास किया है, लेकिन जब मुझे कम स्मृति संकट हो रहा है, तो यह लॉन्च पर दुर्घटनाग्रस्त हो जाता है। एक बार जब मैं समस्या का समाधान करता हूं, तो रैममैप सामान्य रूप से चलता है, लेकिन उस समय यह बहुत देर हो चुकी है।

सभी उपयोग की जा रही स्मृति की एक बहुत छोटी राशि दिखाते हैं।

बहुत से लोग इस सवाल के रूपों से पूछ रहे हैं, विंडोज़ के विभिन्न संस्करणों के साथ, इंटरनेट पर। उनमें से कुछ अक्सर अपनी कम स्मृति समस्याओं को हल करने में कामयाब होते हैं, अक्सर सॉफ़्टवेयर को पुन: इंस्टॉल करके; कभी-कभी खिड़कियों को खरोंच से पुनः स्थापित करके। मैं सामान्य प्रश्नों का उत्तर ढूंढ रहा हूं कि ये सभी साझा करते हैं, और ऐसा कभी भी कहीं और जवाब नहीं मिलता है:

  1. सभी सूचीबद्ध प्रक्रियाओं द्वारा उपयोग की जाने वाली स्मृति की तुलना में कुल उपयोग की गई स्मृति का उपयोग क्यों किया जाता है, भले ही मैं उन्हें गिनने का प्रयास कैसे करूं?
  2. खिड़कियां "जानती" कैसे हो सकती हैं कि यह जानने के बिना कि कौन सा प्रोग्राम इसका उपयोग कर रहा है?
  3. क्या प्रक्रियाएं संभवतः स्मृति का उपयोग कर सकती हैं लेकिन सूची में दिखाई नहीं दे सकती हैं?
  4. क्या वहां कोई सॉफ्टवेयर है जो प्रयुक्त स्मृति के बारे में अधिक जानकारी दे सकता है?

विवरण मेरी अपनी समस्या के लिए विशिष्ट है: विंडोज 8.1 में अपग्रेड करने के बाद, समस्या जैसे ही मैं लॉग इन करता हूं। जैसे ही मैंने कोई प्रोग्राम चलाया, मैं स्मृति से बाहर निकलता हूं। मैंने प्रक्रिया एक्सप्लोरर में देखा कि iexplore.exe के कई उदाहरण चल रहे थे, जाहिर है स्वचालित रूप से शुरू हो गया। एक विशेष उदाहरण केवल कुछ एमबी रैम का उपयोग कर रहा था, लेकिन लाखों पेज दोषों को दिखाया गया। एक सनकी पर, मैंने उस विशिष्ट प्रक्रिया को मार दिया, और स्मृति उपयोग तुरंत 70% गिर गया।

एक विशिष्ट प्रश्न के लिए अग्रणी:

  • एक प्रक्रिया को कैसे मार सकता है जो माना जाता है कि केवल कुछ एमबी मुक्त जीबी का इस्तेमाल करते हैं?

और एक (संभवतः कड़ी) बोनस प्रश्न:

  • विंडोज़ को दोबारा स्थापित करने के लिए, मैं अपने कंप्यूटर को रीबूट करते समय हर बार कैसे जा सकता हूं?

79
2018-03-11 02:46


मूल


कर्नेल मेमोरी भी उपयोग में गिना जाता है। RAMMAp की पोस्ट तस्वीर: blogs.technet.com/b/askperf/archive/2010/08/13/... - magicandre1981
मुझे लगता है कि सवाल का शीर्षक होना चाहिए "मैं स्मृति से बाहर क्यों चल रहा हूं।" - surfasb
बिना किसी विनिर्देश के उत्तर देने के लिए यह प्रश्न असंभव है। स्थापित कार्यक्रमों की सूची। या बेहतर अभी तक, प्रदर्शन मॉनिटर से चल रही प्रक्रियाओं का एक डंप। - surfasb
क्या आप वास्तव में अपने कंप्यूटर को पूरी तरह से बंद / पुनरारंभ कर रहे हैं या आप हाइब्रिड शटडाउन (विंडोज 8 में डिफ़ॉल्ट) का उपयोग करते हैं? विंडोज 8 पर स्विच करने के बाद मुझे एक ही समस्या थी। मुझे लगता है कि एक ड्राइवर ने मेरी भौतिक रैम को और अधिक लिया और कंप्यूटर को बंद करने के बाद भी इसे वापस नहीं दिया। कुछ हफ्तों में यह कई गीगाबाइट्स तक जमा हुआ। तो अब हर कुछ दिनों में मैं "रीस्टार्ट" पर क्लिक करता हूं या वास्तव में पीसी को बंद करने के लिए "बंद करें" पर क्लिक करते समय शिफ्ट दबाता हूं। - Robert
मेरे मामले में यह "ड्राइवर लॉक" स्मृति था, जिसे "डायनामिक मेमोरी" सक्षम करने के कारण हाइपर-वी द्वारा आरक्षित किया गया था। मुझे सभी वीएम को रोकना था, सेटिंग को अक्षम करना था, और उन्हें पुनरारंभ करना था। रैममैप सुझाव के लिए धन्यवाद। - Dagelf


जवाब:


वैसे, आपको "स्मृति" शब्द का उपयोग न करने का प्रयास करना चाहिए। यह बहुत भ्रम पैदा करता है। यदि आपका मतलब भौतिक स्मृति है, तो "भौतिक स्मृति" या "रैम" कहें। यदि आपका वर्चुअल मेमोरी है, तो ऐसा कहें। यदि आप बैकिंग स्टोर का मतलब रखते हैं, तो ऐसा कहें।

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

क्योंकि ऑपरेटिंग सिस्टम भौतिक मेमोरी (रैम) बर्बाद नहीं करता है जब तक कि इसमें कोई विकल्प न हो।

खिड़कियां "जानती" कैसे हो सकती हैं कि यह जानने के बिना कि कौन सा प्रोग्राम इसका उपयोग कर रहा है?

क्योंकि कोई प्रोग्राम इसका उपयोग नहीं कर रहा है। उदाहरण के लिए, उस स्मृति में विचार करें जिसमें एक प्रोग्राम के लिए कोड शामिल है जो अभी समाप्त हो गया है। कोई प्रोग्राम इसका उपयोग नहीं कर रहा है। लेकिन उस स्मृति का उपयोग किया जाता है, क्योंकि यह मुफ़्त नहीं है और इसमें डेटा शामिल है जो उपयोगी हो सकता है (यदि प्रोग्राम फिर से चलता है)।

क्या प्रक्रियाएं संभवतः स्मृति का उपयोग कर सकती हैं लेकिन अब सूची में दिखाई दे रही हैं?

यह प्रक्रियाओं द्वारा उपयोग नहीं किया जाता है।

क्या वहां कोई सॉफ्टवेयर है जो प्रयुक्त स्मृति के बारे में अधिक जानकारी दे सकता है?

RAMMap यह कर सकता है।

केवल दो संभावनाएं हैं, राम का उपयोग किया जा सकता है या इसे बर्बाद किया जा सकता है। जाहिर है, पहला बेहतर है। कोई भी मुफ्त मेमोरी हमेशा बर्बाद हो जाती है - कल 6 जीबी का उपयोग करने के लिए 4 जीबी मशीन 2 जीबी का उपयोग नहीं कर सकती है। यदि आप सोच रहे हैं "मैं इसे अभी मुक्त करना चाहता हूं तो मैं इसे बाद में उपयोग कर सकता हूं", इसे भूल जाओ। अब आप इसका इस्तेमाल कर सकते हैं तथा बाद में इसका इस्तेमाल करें।

एक प्रक्रिया को कैसे मार सकता है जो माना जाता है कि केवल कुछ एमबी मुक्त जीबी का इस्तेमाल करते हैं?

आप बैकिंग स्टोर पर कम चल रहे हैं, भौतिक स्मृति नहीं। आपके पास बहुत सारी मुफ्त भौतिक मेमोरी है लेकिन ओएस के लिए अपर्याप्त बैकिंग स्टोर वर्चुअल मेमोरी आवंटित रखने के लिए है जिसे बैकिंग की आवश्यकता हो सकती है।

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

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


9
2018-03-11 05:23



पीएस: मैं "मेमोरी" शब्द का उपयोग नहीं कर रहा हूं क्योंकि मुझे राम और वीएम के बीच का अंतर नहीं पता है, लेकिन क्योंकि मेरा कंप्यूटर केवल मुझे बता रहा है कि यह मुझे "स्मृति" से बाहर कर रहा है, बिना किसी जानकारी के मुझे माध्यम। (मुझे लगता है कि यह पिछली टिप्पणी में निर्दिष्ट कारणों के लिए रैम का मतलब है, लेकिन मैं निश्चित नहीं हूं।) मैं विस्तृत वित्तीय रूपकों की तुलना में वास्तविक vocab (जिसे मैं जरूरी कर सकता हूं) का उपयोग करना चाहता हूं :) - Josh
-1 क्योंकि उत्तर और सभी टिप्पणियों को पढ़ने के बाद, यह अभी भी स्पष्ट नहीं है कि कुल सूचीबद्ध प्रक्रियाओं द्वारा उपयोग की जाने वाली स्मृति की तुलना में कुल उपयोग की गई स्मृति बहुत अधिक क्यों है। - Bennett McElwee
वह शब्दावली, जहां स्मृति का उपयोग "प्रयोग किया जाता है" भले ही कोई प्रोग्राम इसका उपयोग नहीं कर रहा हो, "सामान्य" और "मुक्त" जैसे शब्दों के सामान्य अर्थ से काफी अलग है - शायद यह माइक्रोसॉफ्ट की शब्दावली है, न कि आपके। वैसे भी, उदाहरण के लिए मान लें कि 50% रैम वर्तमान में प्रोग्राम चलाकर उपयोग किया जाता है, और 25% किसी भी चल रहे प्रोग्राम द्वारा उपयोग नहीं किया जाता है लेकिन इसमें डेटा शामिल होता है जो भविष्य में उपयोगी हो सकता है लेकिन इसे भी हटाया जा सकता है। उन्हें एक साथ जोड़ने और "मेमोरी: 75%" प्रदर्शित करने से उपयोगकर्ता को कोई उपयोगी जानकारी नहीं मिलती है। मुझे लगता है कि वह जगह है जहां व्यापक भ्रम आता है। - Bennett McElwee
@BennettMcElwee स्मृति उपयोग को एक साधारण संख्या में कम करने का कोई अच्छा तरीका नहीं है, लेकिन उपयोगकर्ता इस पर जोर देते हैं। यह डेवलपर्स को एक असहज स्थिति में डालता है - वे एक ऐसी संख्या प्रदान कर सकते हैं जो हमेशा सहायक नहीं होता है या कोई संख्या प्रदान नहीं करता है। अधिकांश ओएस और जीयूआई डेवलपर्स पहला विकल्प चुनते हैं - वे एक संख्या प्रदान करते हैं जो बहुत भ्रम की ओर जाता है। यदि आपका सवाल है "क्या अधिक रैम मेरी प्रणाली को बेहतर काम करेगा", जवाब है - विशेषज्ञों के लिए भी, यह कहना बहुत मुश्किल है। - David Schwartz
@ डेविडस्वार्टज़ आपका उत्तर इस तरह की व्याख्या नहीं करता है, यह बस इसे बताता है। क्या आप उस विशिष्ट दावे को वापस करने के लिए कोई लिंक प्रदान कर सकते हैं? मैं "शारीरिक मेमोरी एक्सएक्स%" का अर्थ समझ रहा हूं कि भौतिक रूप से स्थापित RAM का XX% वर्तमान में उपयोग किया जा रहा है और अन्य प्रक्रियाओं के लिए अनुपलब्ध है। मेरा मानना ​​है कि मुझे इस तथ्य से प्रमाणित किया गया है कि 90% से अधिक सिस्टम लॉक अप के लिए प्रवण हो जाता है, और जब अनुप्रयोग 100% से अधिक स्मृति आवंटित करने का प्रयास करते हैं, तो वे पूरी तरह दुर्घटनाग्रस्त हो जाते हैं। मेरे अनुभव में, यह मानक शासन नहीं है जहां अधिकांश सिस्टम संचालित होते हैं। - John Neuhaus