टास्कमैनगर में प्रदर्शित नहीं होने वाली वर्चुअल मशीन मेमोरी उपयोग


28

विंडोज मेमोरी प्रबंधन के बारे में कुछ है और यह टास्कमैनर के साथ संबंध है जो मुझे समझ में नहीं आता है और मुझे उम्मीद है कि कोई मुझे बता सकता है।

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

तो मेरा सवाल यह है कि वीएम की मेमोरी उपयोग (जो 100 एमबी की होगी) प्रोसेसेस टैब पर क्यों नहीं दिखती है?

जवाबों:


30

VirtualPC, HyperV और शायद इसी तरह के उत्पाद ड्राइवर लॉक मेमोरी नामक किसी चीज़ का उपयोग करते हैं, जो प्रोसेस एक्सप्लोरर, टास्क मैनेजर आदि में दिखाई नहीं देता है। RAMMap आपको एक प्रक्रिया द्वारा उपयोग किए गए ड्राइवर लॉक की गई मेमोरी दिखाएगा।


1
रिकॉर्ड के लिए RAMMap केवल विस्टा या उच्चतर है।
टिम एबेल

1
RAMMap ने एक प्रक्रिया के लिए लॉक की गई मेमोरी नहीं दिखाई, यह कुल लॉक मेमोरी को
दिखाती है

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

क्या प्रक्रिया वास्तव में उस मेमोरी को आवंटित करती है? मैंने SysInternals 'VMMap की कोशिश की है और जब आप सही VBoxHeadless.exeप्रक्रिया चुनते हैं (यह प्रक्रिया ट्री शाखा पर एक पत्ती है, अर्थात इसका कोई अन्य बच्चा नहीं है, तो आप इसे खोजने के लिए प्रक्रिया एक्सप्लोरर का उपयोग कर सकते हैं), कि "खोई" मेमोरी उस प्रक्रिया के दोनों निजी बाइट्स और वर्किंग सेट के तहत दिखाई देता है (भले ही प्रोसेस एक्सप्लोरर दोनों मानों के लिए बहुत कम दिखाई दे रहा है)। इसलिए मैं थोड़ा उलझन में हूं कि वे अलग-अलग मूल्य क्यों दिखा रहे हैं, लेकिन वीएम मैप वास्तविक संख्या दिखाते हैं
दाविद फेरेंस्की रोगोजान

6

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

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


क्या प्रक्रिया वास्तव में उस मेमोरी को आवंटित करती है? मैंने SysInternals 'VMMap की कोशिश की है और जब आप सही VBoxHeadless.exeप्रक्रिया चुनते हैं (यह प्रक्रिया ट्री शाखा पर एक पत्ती है, अर्थात इसका कोई अन्य बच्चा नहीं है, तो आप इसे खोजने के लिए प्रक्रिया एक्सप्लोरर का उपयोग कर सकते हैं), कि "खोई" मेमोरी उस प्रक्रिया के दोनों निजी बाइट्स और वर्किंग सेट के तहत दिखाई देता है (भले ही प्रोसेस एक्सप्लोरर दोनों मानों के लिए बहुत कम दिखाई दे रहा है)। इसलिए मैं थोड़ा उलझन में हूं कि वे अलग-अलग मूल्य क्यों दिखा रहे हैं, लेकिन वीएम मैप वास्तविक संख्या दिखाते हैं
दाविद फेरेंस्की रोगोजान

5

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

इस कॉलम को सक्षम करने के लिए:

1) कार्य प्रबंधक प्रारंभ करें

2) प्रक्रियाओं टैब पर जाएं

3) दृश्य> कॉलम का चयन करें

4) सुनिश्चित करें कि "मेमोरी - वर्किंग सेट" टिक गया है

उदाहरण के लिए, इस समय मेरे पास चलने वाला वीएम का प्राइवेट सेट 43mb है, जबकि वर्किंग सेट 2.3Gb है


1
मेमोरी एप्लिकेशन उपयोग की पूरी राशि क्या है? वर्किंग सेट + प्राइवेट सेट या सिर्फ वर्किंग सेट?
zendar

2
शायद यह विंडोज के विभिन्न संस्करणों में अलग है, लेकिन विंडोज 7 के तहत वह नहीं है जो मैं देख रहा हूं। "वर्किंग सेट" नंबर "प्राइवेट वर्किंग सेट" नंबरों से बड़े होते हैं, लेकिन वीएम की मेमोरी के लिए दूर से पर्याप्त नहीं होते हैं। मैंने मेमोरी से संबंधित सभी कॉलम और उनमें से कोई भी करने की कोशिश की है। यह विंडोज वर्चुअल पीसी और वर्चुअलबॉक्स दोनों के साथ है। Windows का कौन सा संस्करण और आप किस VM होस्ट का उपयोग कर रहे हैं?
स्कॉट बूसिंगर

दुर्भाग्यवश, कोई एकल संख्या नहीं है जो यह बताती है कि "मेमोरी कितनी प्रक्रिया" का उपयोग कर रही है, क्योंकि आप साझा मेमोरी, फाइल-मैपेड मेमोरी, पेजेड-आउट मेमोरी और कुछ अन्य जैसी जटिलताओं में पड़ते हैं। यहाँ कुछ अवधारणाओं की एक अच्छी व्याख्या है: stackoverflow.com/questions/1984186/…
tylerl

मुझे नहीं लगता कि वर्किंग सेट आपको इस मामले में कुछ भी उपयोगी बता रहा है। वीएम के अंदर, यह रिपोर्ट कर रहा है कि यह लगभग 6 जीबी मेमोरी का उपयोग करता है जबकि वर्चुअलबॉक्स की प्रक्रियाएं अपने कार्य समूह में 100 एमबी से अधिक का उपभोग नहीं करती हैं ।
दाविद फेरेंस्की रोगोजान
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.