Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> आभासी मशीन

गेस्ट OS में मेमोरी ओवरकमिटमेंट का पता लगाना

जब आप वर्चुअलाइजेशन होस्ट (VMware ESXi या हाइपर-V) पर चलने वाले VMs को एडमिनिस्टर करते हैं और प्रदर्शन समस्याओं का विश्लेषण करते हैं, तो आप अक्सर उन स्थितियों का सामना करते हैं जब गेस्ट OS में उपलब्ध मेमोरी का आकार ऑपरेटिंग सिस्टम जितना देखता है (या जिसे उसे असाइन किया गया है) उससे बहुत कम होता है। उदाहरण के लिए, एक वर्चुअल मशीन को 8 GB मेमोरी आवंटित की गई है, टास्क मैनेजर दिखाता है कि 1 GB फ्री है, हालांकि सभी रनिंग प्रोसेस 3 GB से कम का उपभोग करते हैं। बाकी 4 GB कहां हैं?

एक नियम के रूप में, यह व्यवहार हाइपरवाइज़र में मेमोरी ओवरकमिट सुविधा के उपयोग के कारण होता है।

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

VMware में मेमोरी ओवरकमिट को लागू करने के तंत्र में से एक मेमोरी बलूनिंग है। हाइपर-V में, समान सुविधा डायनामिक मेमोरी द्वारा लागू की जाती है।

नोट: वैसे, VMware और माइक्रोसॉफ्ट दोनों मेमोरी संसाधनों को बचाने के लिए मेमोरी कम्प्रेशन का व्यापक और प्रभावी ढंग से उपयोग करते हैं (यह मेमोरी ओवरकमिट तकनीक के कार्यान्वयन में से एक भी है)।

VMware ESXi में मेमोरी ओवरकमिटमेंट (वर्चुअल मेमोरी बलूनिंग) vmmemctl.sys ड्राइवर (VMware Tools में शामिल) द्वारा लागू किया जाता है, जो यदि आवश्यक हो तो इसमें एक नकली प्रक्रिया बनाकर (जैसे गुब्बारा फुलाना) भौतिक मेमोरी पर कब्जा कर सकता है। इस प्रकार, कब्जे वाली मेमोरी की मात्रा गेस्ट OS में अन्य एप्लिकेशन के लिए अनुपलब्ध हो जाती है, और हाइपरवाइज़र मुक्त मेमोरी को अन्य VMs के बीच वितरित कर सकता है। हाइपर-V डायनामिक मेमोरी में, इंटीग्रेशन सर्विसेज (डायनामिक मेमोरी VSC घटक) से dmvsc.sys ड्राइवर का उपयोग किया जाता है। मेमोरी ओवरकमिटमेंट सेटिंग्स को हाइपरवाइज़र एडमिनिस्ट्रेटर द्वारा प्रबंधित किया जाता है।

आप गेस्ट VM के अंदर से कैसे पता लगा सकते हैं कि वास्तव में गेस्ट ऑपरेटिंग सिस्टम जितना देखता है उससे कम भौतिक मेमोरी उपलब्ध है?

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

गेस्ट विंडोज सर्वर 2012 R2 चलाने वाले VM को 8 GB मेमोरी आवंटित की गई है। टास्क मैनेजर दिखाता है कि 93% मेमोरी उपयोग में है (7.4 GB मेमोरी कब्जे में है)। हालांकि, यदि आप सभी रनिंग प्रोसेस द्वारा उपयोग की जाने वाली मेमोरी की मात्रा को जोड़ते हैं, तो आप इस अप्रत्याशित निष्कर्ष पर पहुंच सकते हैं कि केवल 2.5 GB मेमोरी वास्तव में उपयोग की जाती है। बाकी 5 GB कहां हैं? न तो टास्क मैनेजर, न ही रिसोर्स मॉनिटर इस प्रश्न का उत्तर देने में सक्षम हैं।

यह समझने के लिए कि मेमोरी के साथ क्या हो रहा है, आपको मार्क रसिनोविच द्वारा RamMap टूल का उपयोग करने की आवश्यकता है (पहले के मामलों में से एक में, मैंने दिखाया है कि विंडोज सर्वर पर मेटाफाइल द्वारा उच्च मेमोरी उपयोग की समस्या का निदान करने के लिए इस टूल का उपयोग कैसे करें)। Microsoft वेबसाइट (https://technet.microsoft.com/en-us/library/ff700229.aspx) से टूल डाउनलोड करें और इसे एडमिनिस्ट्रेटर विशेषाधिकारों के साथ चलाएं। उसके बाद Use Counts टैब पर आप देख सकते हैं कि अधिकांश मेमोरी (5.4 GB) Driver Locked ऑब्जेक्ट द्वारा उपयोग की जाती है।

यह वह मेमोरी है जिसे हाइपरवाइज़र ने कब्जा कर लिया है और गेस्ट OS में बलून ड्राइवर का उपयोग करके अन्य वर्चुअल मशीनों के बीच वितरित किया है। इसका मतलब है कि हाइपरवाइज़र होस्ट के पास पर्याप्त मेमोरी नहीं है या हाइपरवाइज़र एडमिनिस्ट्रेटर इस VM के लिए मेमोरी लिमिट पॉलिसी का उपयोग करता है।

हाइपर-V में वर्तमान VM मेमोरी आंकड़े परफॉरमेंस मॉनिटर में अलग-अलग प्रदर्शन काउंटर द्वारा दिखाए जा सकते हैं:

  • हाइपर-V डायनामिक मेमोरी → गेस्ट विज़िबल मेमोरी
  • हाइपर-V डायनामिक मेमोरी → फिजिकल मेमोरी

इस व्यवहार को अक्षम करने के लिए, हाइपरवाइज़र एडमिनिस्ट्रेटर को VM की हाइपर-V सेटिंग्स में डायनामिक मेमोरी सक्षम करें विकल्प को अक्षम करना होगा (या न्यूनतम आरक्षण मान बढ़ाना होगा)।

यदि VMware ESXi होस्ट उपयोग किया जाता है, तो आप इस वर्चुअल मशीन के लिए रिसोर्स सेटिंग्स में अधिक मेमोरी आरक्षित कर सकते हैं या सभी मेमोरी आरक्षित कर सकते हैं — सभी गेस्ट मेमोरी आरक्षित करें (ऑल लॉक्ड)।

  1. रूबी इंटर्नल्स उजागर: ऑब्जेक्ट मेमोरी लेआउट को समझना रूबी इंटर्नल्स उजागर: ऑब्जेक्ट मेमोरी लेआउट को समझना

    क्या आप रूबी इंटर्नल्स का एक त्वरित दौरा चाहेंगे? तो आप एक ट्रीट के लिए तैयार हैं। क्योंकि... हम एक साथ पता लगाने जा रहे हैं कि एक रूबी ऑब्जेक्ट मेमोरी में कैसे लेआउट होता है और आप कुछ अच्छी चीजें करने के लिए आंतरिक डेटा संरचनाओं में हेरफेर कैसे कर सकते हैं। सीट बेल्ट बांधें और रूबी इंटरप्रेटर की गह

  1. विंडोज पर फिजिकल मेमोरी डंप त्रुटि (BSOD) को कैसे हल करें विंडोज पर फिजिकल मेमोरी डंप त्रुटि (BSOD) को कैसे हल करें

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

  1. विंडोज़ में फिजिकल मेमोरी डंप ब्लू स्क्रीन त्रुटि कैसे ठीक करें विंडोज़ में फिजिकल मेमोरी डंप ब्लू स्क्रीन त्रुटि कैसे ठीक करें

    फिजिकल मेमोरी डंप त्रुटि ब्लू स्क्रीन ऑफ डेथ के सबसे आम रूपों में से एक है। यह त्रुटि इतनी खराब है कि विंडोज़ के पास सभी कार्यों को रोकने और आपको एक ब्लू स्क्रीन प्रस्तुत करने के अलावा कोई विकल्प नहीं है, जिसमें समस्या और इसके कारण का विवरण होता है। फिजिकल मेमोरी डंप त्रुटि कई अलग-अलग कारणों से आ सक