फ़ाइल सर्वर . में से एक Windows Server 2008 R2 को चलाने में उच्च RAM लोड की समस्या का सामना करना पड़ा, जिसके परिणामस्वरूप सर्वर और एप्लिकेशन के प्रदर्शन में समस्याएँ आईं। यह पता चला कि सिस्टम फ़ाइल कैशे . द्वारा मेमोरी को स्वैप किया गया था फ़ाइल सिस्टम युक्त मेटाडेटा . समस्या संभावित रूप से उन सभी फ़ाइल सर्वरों को प्रभावित करती है जिनमें बड़ी संख्या में फ़ाइलें उपयोगकर्ता द्वारा एक्सेस की जाती हैं। यह x64 विंडोज संस्करणों के लिए सबसे महत्वपूर्ण है, जिसमें मेमोरी में मेटाडेटा फ़ाइल का आकार लगभग पूरे रैम के आकार तक बढ़ सकता है।
Windows फ़ाइल सर्वर पर उच्च RAM लोड
समस्या इस प्रकार प्रकट होती है:कार्य प्रबंधक में हम देखते हैं कि भौतिक स्मृति 95-99 तक व्यस्त है %.
प्रक्रियाओं . में टैब, असामान्य रूप से उच्च मेमोरी खपत के साथ कोई लीक प्रक्रिया नहीं है। इसके अलावा, यदि आप सभी प्रक्रियाओं द्वारा उपयोग की जाने वाली मेमोरी के अनुमानित मूल्यों का योग करते हैं, तो आपको अपने सर्वर पर मौजूद भौतिक मेमोरी का 50% भी नहीं मिलेगा। तब स्मृति क्या खा रही है?
RAM के उपयोग पर वास्तविक डेटा छोटी उपयोगिता - RAMMap (मार्क रसिनोविच द्वारा) की सहायता से प्राप्त किया जा सकता है। उपकरण वाले संग्रह को डाउनलोड करें और व्यवस्थापक विशेषाधिकारों के साथ RAMMap.exe चलाएँ। उपयोग की संख्या . में टैब , हम देखते हैं कि मेटाफ़ाइल RAM की सबसे बड़ी मात्रा का उपयोग कर रहा है। (हमारे मामले में, यह सर्वर रैम के 25 जीबी से 11 का उपयोग कर रहा है)।
विंडोज़ में मेटाफ़ाइल क्या है?
मेटाफ़ाइल NTFS मेटाडेटा युक्त सिस्टम कैश का एक हिस्सा है और फ़ाइलों तक पहुँचने के दौरान फ़ाइल सिस्टम के प्रदर्शन को बढ़ाने के लिए उपयोग किया जाता है। एनटीएफएस मेटाडेटा में एमएफटी (मास्टर फाइल टेबल) का डेटा शामिल होता है। उपयोगकर्ताओं द्वारा एक्सेस की गई प्रत्येक फ़ाइल या फ़ोल्डर के लिए, मेटाफ़ाइल में कम से कम 1 KB (प्रत्येक फ़ाइल की विशेषता का रिकॉर्ड 1 KB है, और प्रत्येक फ़ाइल में कम से कम एक विशेषता है) का एक संबंधित ब्लॉक बनाया जाता है। इस प्रकार, बड़ी संख्या में फ़ाइलों वाले फ़ाइल सर्वर पर, मेटाफ़ाइल आकार (NTFS कैश) कई दसियों गीगाबाइट से अधिक हो सकता है।
इस कैश को अक्षम करना या अंतर्निहित विंडोज टूल्स का उपयोग करके इसे प्रबंधित करना असंभव है। समाधान के रूप में, आप सर्वर पर मेमोरी का आकार बढ़ा सकते हैं, लेकिन यह हमेशा संभव नहीं होता है।
मेमोरी को खाली करने के लिए, आप सर्वर को पुनरारंभ कर सकते हैं, लेकिन कुछ समय में मेमोरी में मेटाफ़ाइल का आकार अविश्वसनीय रूप से बढ़ने लगता है।
उदाहरण के लिए, आप Russinovich के किसी अन्य टूल का उपयोग करके MFT के आकार का अनुमान लगा सकते हैं - ntfsinfo . हमारे मामले में, 2 टीबी डिस्क पर एमएफटी का आकार 13 जीबी है।
मेटाफ़ाइल को तेज़ी से कैसे साफ़ करें
RAMMap सर्वर को पुनरारंभ किए बिना उपयोग की गई मेमोरी को MFT कचरे से जल्दी से साफ़ करने की अनुमति देता है। ऐसा करने के लिए, खाली -> खाली सिस्टम वर्किंग सेट select चुनें मेनू में।
उसके बाद, मेमोरी में मेटाफ़ाइल का आकार दर्जनों गुना कम हो गया, और CPU द्वारा RAM के उपयोग का प्रतिशत 95% से गिरकर 26% हो गया।
इस पद्धति का मुख्य नुकसान यह है कि समाशोधन मैनुअल है और इसे स्वचालित रूप से नहीं किया जा सकता है।
फ़ाइल कैश प्रबंधित करने के लिए डायनामिक कैश सेवा
फ़ाइल सिस्टम मेटाफ़ाइल द्वारा उच्च मेमोरी लोड का एक और, अधिक कार्डिनल समाधान डायनामिक की स्थापना है संचय सेवा ( https://www.microsoft.com/en-us/download/details.aspx?id=9258)। यह सेवा सिस्टम एपीआई का उपयोग करके समर्पित एमएफटी कैश के मापदंडों को प्रबंधित करने की अनुमति देती है।
महत्वपूर्ण . ऊपर वर्णित समस्या होने पर ही इस समाधान का उपयोग करें। आपके सर्वर पर उच्च मेमोरी उपयोग के अन्य कारणों के लिए इस सेवा की स्थापना एक सार्वभौमिक समाधान नहीं होगी।DynCache को स्थापित करना काफी आसान है (संग्रह में विस्तृत निर्देश हैं)।
- फ़ाइल कॉपी करें DynCache.exe करने के लिए %SystemRoot%\System32 फ़ोल्डर
- DynCache बनाएं सेवा इस आदेश का उपयोग करते हुए:
sc create DynCache binpath= %SystemRoot%\System32\DynCache.exe start= auto type= own DisplayName= "Dynamic Cache Service"
- आयात करें DynCache.reg रजिस्ट्री में (इसमें डिफ़ॉल्ट मान होते हैं)
- निम्न रजिस्टर कुंजियों के मान बदलें:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DynCache\Parameters
- MaxSystemCacheMBytes :4096 (दिसंबर) – अधिकतम कैश आकार (एमबी)
- MinSystemCacheMBytes :100 (दिसंबर) - न्यूनतम कैश आकार (एमबी)
नोट . ये और अन्य DynCache सेवा सेटिंग्स को RAM आकार, सर्वर लोड, आवश्यक प्रदर्शन आदि के अनुसार संपादित किया जाना है। एक नियम के रूप में, सर्वर पर स्थापित भौतिक RAM के आधे से अधिक कैश आकार को सेट करने की अनुशंसा नहीं की जाती है। परिवर्तन किए जाने के बाद, आपको DynCache को पुनरारंभ करने की आवश्यकता नहीं है, क्योंकि सभी परिवर्तन गतिशील रूप से लागू होते हैं।
- इस कमांड का उपयोग करके सेवा चलाएँ:
sc start DynCache
हमारे मामले में, DynCache सेवा स्थापित होने के बाद, मेटाफ़ाइल द्वारा मेमोरी का उपयोग हमारे द्वारा सेट किए गए 4 GB से अधिक होना बंद हो गया। उपयोगकर्ताओं ने फ़ाइल सर्वर पर किसी भी प्रदर्शन समस्या की सूचना नहीं दी है।