"मेटाफ़ाइल" मेमोरी का उपयोग कम करें?


8

जब मैं प्रोग्राम के बीच स्विच करता हूं तो मेरा काम कंप्यूटर (विंडोज 7 64-बिट) मेमोरी स्वैप करने में बहुत समय व्यतीत करता है। यह आश्चर्य की बात है क्योंकि मेरे पास 4 जीबी रैम है, और मेरे द्वारा उपयोग किए जाने वाले प्रोग्राम विशेष रूप से रैम भूखे नहीं हैं (आउटलुक, एमएसीएस, पी 4विन, फ़ायरफ़ॉक्स, विभिन्न बिल्ड टूल)। मैंने RAMMap डाउनलोड किया , और यह "मेटाफ़ाइल" द्वारा उपयोग की जाने वाली मेमोरी के एक गीगाबाइट पर दिखाता है।

से Sysinternals ब्लॉग :

मेटाफ़ाइल सिस्टम कैश का हिस्सा है और इसमें NTFS मेटाडेटा शामिल है। NTFS मेटाडेटा में MFT के साथ-साथ अन्य विभिन्न NTFS मेटाडेटा फ़ाइलें शामिल हैं। ... MFT में प्रत्येक फ़ाइल विशेषता रिकॉर्ड 1k लेता है और प्रत्येक फ़ाइल में कम से कम एक विशेषता रिकॉर्ड होता है। इसे अन्य NTFS मेटाडेटा फ़ाइलों में जोड़ें और आप देख सकते हैं कि मेटाफ़ाइल श्रेणी बहुत सारी फ़ाइलों के साथ सर्वर पर काफी बड़ी हो सकती है।

तो मैं समझता हूं कि "मेटाफ़ाइल" डेटा क्या है ... मैं बड़े बिल्ड पर काम करता हूं जिसमें सैकड़ों हजारों फाइलें शामिल हैं (कोई भी यह बड़ा नहीं है, लेकिन वे कई गीगाबाइट तक जोड़ते हैं)। मेरा सवाल यह है कि मैं "मेटाफ़ाइल" द्वारा उपयोग की जाने वाली स्मृति की मात्रा को कैसे कम कर सकता हूं? मैं सक्रिय रूप से उन सभी फ़ाइलों का उपयोग नहीं कर रहा हूँ, इसलिए Windows को RAM में जानकारी रखने की आवश्यकता क्यों है? हर बार जब मैं एक नई बिल्ड सिंक करता हूं, तो मेरी मशीन को फिर से शुरू करना वास्तव में कष्टप्रद होता है।


4
बिल्ड IO गहन हैं, और इस प्रकार विंडोज प्रदर्शन में सुधार करने के लिए एक बड़ी फाइल सिस्टम कैश रख रहा है। दुर्भाग्य से, बिल्ड टूल बहुत अधिक मेमोरी का भी उपयोग करते हैं और आमतौर पर बड़े स्पाइक्स में, जो शायद दलदल का कारण बन रहा है। जैसा कि यह सिस्टम कैश के खिलाफ प्रतिस्पर्धा कर रहा है। अधिक स्मृति जोड़ने के लिए सबसे अच्छा समाधान हो सकता है।
tgiphil

@tgiphil, यह समझा जा सकता है कि बिल्ड की जाँच करते समय या बनाते समय बहुत सारी मेमोरी का उपयोग किया जाता है। हालाँकि, यह अभी भी उपयोग किया जा रहा है और अभी भी बहुत बाद में जोर देता है जब मैं सिर्फ एक छोटे से क्षेत्र में काम कर रहा हूं। दुर्भाग्य से यह मुझे कोई और स्मृति नहीं देगा।
जे कॉनरोड

मुझे लगता है कि विंडोज 7 पहले से ही कैशिंग के साथ आपके प्रदर्शन का अनुकूलन कर रहा है। इसलिए उपलब्ध स्मृति को बढ़ाने और स्वैप को कम करने के लिए, किसी भी अनावश्यक एप्लिकेशन को बंद करें। उदाहरण के लिए, आप आउटलुक और फ़ायरफ़ॉक्स को बंद करके मेमोरी का एक अच्छा हिस्सा प्राप्त कर सकते हैं। यदि Visual Studio का उपयोग कर रहे हैं और केवल संकलित करने की आवश्यकता है, तो इसके बजाय कमांड लाइन बनाने का प्रयास करें। आशा है कि ये आपकी मदद करेगा। Btw। स्मृति के साथ इतना कम ($ 100 के तहत 6 जीबी), यह एक उत्कृष्ट उत्पादकता निवेश है।
tgiphil

जवाबों:


4

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

आपका 64-बिट सिस्टम वीडियो मेमोरी को पहले 4GB मेमोरी में आवंटित करता है। यदि आपके वीडियो कार्ड में बहुत सारी मेमोरी है, तो वह मेमोरी खो जाती है, जैसा कि इसमें वर्णित है:
प्रयोग करने योग्य मेमोरी विंडोज 7-आधारित कंप्यूटरों पर स्थापित मेमोरी से कम हो सकती है

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

आप इस लेख में बताए गए तरीके के ठीक विपरीत कोशिश भी कर सकते हैं:
विंडोज 7 में फाइलसिस्टम मेमोरी कैश साइज बढ़ाएं

आप विंडोज 7 सुपरफच को अक्षम करने का भी प्रयास कर सकते हैं ।

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


+1 "सुपरफच को अक्षम करें" के लिए है।

कोई डाउन ग्रेड नहीं है, लेकिन सुपरफच सबसे अधिक संभावना है कि वह अपने प्रदर्शन को बढ़ा रहा है - इसे कम नहीं कर रहा है - क्योंकि निर्माण निष्पादन आमतौर पर अक्सर निष्पादित होते हैं और कैश होने से लाभ होगा। उपलब्ध मेमोरी को प्रभावित करने वाले वीडियो कार्ड के लिए, यह केवल 4 जीबी के साथ विंडोज 7 64 बिट पर लागू नहीं है। इस मामले में वीडियो कार्ड को 4Gb से ऊपर मैप किया जाएगा।
tgiphil

@tgiphil: उपर्युक्त Microsoft लेख से: "एक वीडियो कार्ड जिसमें 256 एमबी ऑन-बोर्ड मेमोरी है, उस मेमोरी को पहले 4 जीबी एड्रेस स्पेस में मैप किया जाना चाहिए"।

मेरे संगठन में, हमारे पास कई छोटी फाइलें और RAM में एक विशाल NTFS मेटाफ़ाइल है। मैं जो बता सकता हूं, वह विंडोज मेटाफ़ाइल को हर चीज़ की तरह कैश नहीं करता है और न ही कभी इसे रैम से रिलीज़ करता है। कंप्यूटर 100% मेमोरी उपयोग तक जाएगा और फिर आपके सभी एप्लिकेशन मेमोरी की कमी के कारण क्रैश करने लगते हैं। बेशक यह विंडोज 7 नहीं है, यह विंडोज सर्वर 2008 आर 2 है।
फिल

इसके अलावा "वृद्धि FileSystem मेमोरी कैश" लिंक उन चीजों को सलाह देता है जो वास्तव में काम नहीं करते हैं। देखिए tweakhound.com/blog/?p=1164
Phil

0

Windows Server 2008 R2 बिल्कुल उसी मेटाफ़ाइल "कैश" समस्या का अनुभव करता है, जो कि बहुत अधिक मेटाफ़ाइल जानकारी को सक्रिय मेमोरी में रखा जाता है, इसलिए कैश फ़ंक्शंस के पास मेमोरी के दबाव होने पर इस मेमोरी को रिलीज़ करने की अनुमति नहीं है।

मैंने serverfault.com पेज Windows Server 2008 R2 मेटाफ़ाइल रैम उपयोग पर एक पॉवरशेल स्क्रिप्ट लिखी है जो अधिकतम मेटाफ़ाइल सक्रिय मेमोरी को कुछ उचित के लिए सेट करता है। बाकी को स्टैंडबाय मेमोरी में स्थानांतरित कर दिया गया है, और सामान्य कैश फ़ंक्शंस तब चीजों को प्राथमिकता देने में सक्षम हैं। विंडोज 7 x64 और सर्वर 2008 R2 x64 दोनों में 1TB के मेटाफ़ाइल डेटा के लिए डिफ़ॉल्ट अधिकतम सक्रिय मेमोरी सीमाएं हैं। हां टीबी, जीबी नहीं।

कार्य अब उस स्क्रिप्ट को हमारे सर्वर पर हमारे सभी साइटों पर चलाता है जो साइट के बैकअप को व्यवस्थित करते हैं, जो हर दिन अपने बैकअप चक्र के दौरान लाखों फाइलों से निपटते हैं। ये बैकअप सर्वर अपने स्वयं के SQL सर्वर के साथ मेमोरी हैवी जावा प्रोग्राम (VMware vSphere), 2 SQL सर्वर और WSUS भी चलाते हैं। बैकअप सॉफ़्टवेयर के साथ पहले मेटाडेटा (नाम, आकार, तिथि संशोधित, अनुमतियाँ, विशेषताएँ, आदि) को पढ़ने के लिए फ़ाइलों की सूची निर्धारित करने के लिए कि यह बैकअप में पास होगा यह बहुत जल्दी मेटाफ़ाइल कैश को भरता है। यहां तक ​​कि सब कुछ करते हुए वे केवल 4GB रैम के साथ अच्छी तरह से क्रूज करते हैं।

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