सवाल बड़ी संख्या में फाइलों के साथ एनटीएफएस ड्राइव पर सुस्त प्रदर्शन


मैं इस सेटअप को देख रहा हूं:

  • विंडोज सर्वर 2012
  • 1 टीबी एनटीएफएस ड्राइव, 4 केबी क्लस्टर, ~ 9 0% पूर्ण
  • 10,000 फ़ोल्डरों = ~ 1,000 फाइलों / फ़ोल्डर में संग्रहीत ~ 10 एम फ़ाइलें
  • फ़ाइलें ज्यादातर काफी छोटी <50 KB
  • वर्चुअल ड्राइव डिस्क सरणी पर होस्ट किया गया

जब कोई एप्लिकेशन यादृच्छिक फ़ोल्डर्स में संग्रहीत फ़ाइलों तक पहुंचता है तो प्रत्येक फ़ाइल को पढ़ने में 60-100 एमएस लगते हैं। एक परीक्षण उपकरण के साथ ऐसा लगता है कि फ़ाइल खोलते समय देरी होती है। डेटा पढ़ना तब समय का एक अंश लेता है।

संक्षेप में इसका मतलब है कि 50 फाइलें पढ़ने में आसानी से 3-4 सेकंड लग सकते हैं जो अपेक्षा से कहीं अधिक है। बैच में लेखन किया जाता है इसलिए प्रदर्शन यहां कोई मुद्दा नहीं है।

मैंने इन नंबरों पर पहुंचने के लिए एसओ और एसएफ पर सलाह दी है।

पढ़ने के समय के बारे में क्या करना है?

  • प्रति फ़ाइल 60-100 एमएस पर विचार करें ठीक है (यह नहीं है, है ना?)
  • कोई विचार कैसे सेटअप में सुधार किया जा सकता है?
  • क्या निम्न-स्तरीय निगरानी उपकरण हैं जो बता सकते हैं कि वास्तव में समय पर क्या खर्च किया जाता है?

अद्यतन करें

  1. जैसा कि टिप्पणियों में उल्लेख किया गया है, सिस्टम सिमेंटेक एंडपॉइंट संरक्षण चलाता है। हालांकि, इसे अक्षम करने से पढ़ने के समय में परिवर्तन नहीं होता है।

  2. PerfMon प्रति पढ़ने 10-20 एमएस उपाय करता है। इसका मतलब यह होगा कि कोई भी फ़ाइल पढ़ने में ~ 6 I / O पढ़ने के संचालन होते हैं, है ना? क्या यह एमएफटी लुकअप और एसीएल चेक होगा?

  3. एमएफटी का आकार ~ 8.5 जीबी है जो मुख्य स्मृति से अधिक है।


10
2018-04-07 10:07


मूल


कुछ खत्म करने के लिए, क्या आप एक स्क्रीनशॉट साझा करना चाहते हैं RAMMap? - Tomas Dabasinskas
क्या आपका मतलब फाइल सारांश तालिका है? अब जब आप इसका जिक्र करते हैं तो मुझे स्मृति में 900 एमबी के साथ एक SYMEFA.DB फ़ाइल दिखाई देती है जो मुझे याद दिलाती है कि सिस्टम पर सिमेंटेक एंडपॉइंट सुरक्षा स्थापित है। शायद वह अपराधी है? मैं और जानने की कोशिश करूंगा। - Paul B.
असल में, मुझे मेटाफाइल उपयोग में अधिक दिलचस्पी थी - Tomas Dabasinskas
ठीक मिल गया। मेटाफाइल 250 एमबी कुल, 40 सक्रिय, 210 स्टैंडबाय दिखाता है। सामान्य लगता है या नहीं? - Paul B.
हाँ, ऐसा लगता है - Tomas Dabasinskas


जवाब:


सर्वर में पर्याप्त स्मृति नहीं थी। स्मृति में एनटीएफएस मेटाफाइल डेटा को कैशिंग करने के बजाय प्रत्येक फ़ाइल एक्सेस के लिए एकाधिक डिस्क पढ़ने की आवश्यकता होती है। सामान्य रूप से, यह देखने के बाद समस्या स्पष्ट होती है। मुझे अपने परिप्रेक्ष्य को ढंकने के लिए साझा करें:

  • सर्वर ने टास्क मैनेजर और राममैप दोनों में 2 जीबी मेमोरी उपलब्ध कराई। तो या तो विंडोज ने फैसला किया कि उपलब्ध स्मृति मेटाफाइल डेटा का सार्थक हिस्सा रखने के लिए पर्याप्त नहीं थी। या कुछ आंतरिक प्रतिबंध मेटाफाइल डेटा के लिए स्मृति के अंतिम बिट का उपयोग करने की अनुमति नहीं देता है।

  • रैम टास्क मैनेजर को अपग्रेड करने के बाद इस्तेमाल होने वाली अधिक मेमोरी दिखाई नहीं देगी। हालांकि, राममैप ने कई जीबी मेटाफाइल डेटा स्टैंडबाय डेटा के रूप में आयोजित किया। जाहिर है, स्टैंडबाय डेटा का काफी प्रभाव हो सकता है।

विश्लेषण के लिए इस्तेमाल उपकरण:

  • fsutil fsinfo ntfsinfo driveletter: एनटीएफएस एमएफटी आकार दिखाने के लिए (या ntfsinfo)
  • RamMap स्मृति आवंटन दिखाने के लिए
  • प्रक्रिया मॉनीटर यह दिखाने के लिए कि प्रत्येक फ़ाइल को पढ़ने के लिए लगभग 4 पढ़ने के संचालन से पहले ड्राइव किया जाता है: \ $ Mft और ड्राइव: \ $ निर्देशिका। हालांकि मुझे $ निर्देशिका की सटीक परिभाषा नहीं मिली लगता है कि एमएफटी से संबंधित है भी।

4
2018-04-25 06:53



तो भौतिक स्मृति में वृद्धि ने प्रतिक्रिया के समय में सुधार किया है? आपने किसी रजिस्ट्री सेटिंग को कॉन्फ़िगर नहीं किया है? - D-Klotz
हाँ। मैंने पहले रजिस्ट्री सेटिंग्स के साथ खेला था। लेकिन अंत में स्मृति जोड़ने के बाद कोई बदलाव की आवश्यकता नहीं थी। - Paul B.
स्टैंडबाय मेमोरी मेमोरी क्षेत्र हैं जो प्रोग्राम के उपयोग के लिए तैयार हैं। लेकिन चूंकि उनका अभी तक उपयोग नहीं किया जाता है, इसलिए ओएस उन्हें कैश के रूप में उपयोग करेगा। एक बार किसी प्रोग्राम को उस स्मृति की आवश्यकता हो जाने पर इसे तुरंत जारी किया जाएगा - phuclv