2012-05-31 7 views
5

क्या यह सभी प्रक्रियाओं और सिस्टम के स्मृति आंकड़े भी प्राप्त करने के लिए ईटीडब्ल्यू का उपयोग करना संभव है? स्मृति आंकड़ों के साथ मेरा मतलब है: उदा। प्रति प्रतिबद्ध बाइट्स, निजी बाइट्स, पृष्ठांकित पूल, कार्यरत सेट, ...क्या ईटीडब्लू (विंडोज़ के लिए इवेंट ट्रेसिंग) मेमोरी आंकड़ों को इकट्ठा करने के लिए इस्तेमाल किया जा सकता है?

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

एक शायद प्रदर्शन काउंटरों का उपयोग जानकारी उस तरह प्राप्त करने के लिए सकता है, लेकिन कैसे एक के बाद एक चार्ट में रेखांकन सांख्यिकी उपरिशायी कर सकते हैं (कैसे सहसंबंधी/timestamps सिंक)?

उत्तर

6

Windows 8.1 और उच्चतर पर आपका सबसे अच्छा शर्त माइक्रोसॉफ्ट विंडोज कर्नेल-मेमोरी प्रदाता है, जो प्रति प्रक्रिया स्मृति जानकारी रिकॉर्ड हर 0.5 रों है। विवरण के लिए https://github.com/google/UIforETW/issues/80 देखें। UIforETW डिफ़ॉल्ट रूप से इसे उपलब्ध होने पर सक्षम बनाता है।

आप एमईएमआईएनएफओ प्रदाता को भी आजमा सकते हैं। यह स्मृति दबाव का एक प्रणाली व्यापक अवलोकन देता है। यह सक्रिय सूची (वर्तमान में उपयोग स्मृति में) दिखाता है, स्टैंडबाय सूची ('उपयोगी' पृष्ठ वर्तमान में उपयोग में नहीं हैं, जैसे कि डिस्क कैश), और शून्य और निशुल्क सूचियां (वास्तव में मुफ्त मेमोरी)। यह कम से कम आपको बताता है कि कोई सिस्टम स्मृति से बाहर हो रहा है या नहीं।

तुम भी MEMINFO_WS और CONTMEMGEN की कोशिश कर सकते हैं, लेकिन इन undocumented हैं तो मैं वास्तव में नहीं जानता कि वे क्या करते हैं। वे xperf -providers k में दिखाई देते हैं लेकिन जब मैं उनके साथ रिकॉर्ड करता हूं तो मुझे कोई नया ग्राफ दिखाई नहीं दे रहा है। स्पष्ट रूप से माइक्रोसॉफ्ट इन प्रदाताओं को भेजता है लेकिन उन्हें देखने का कोई तरीका नहीं है। Sigh ...

यदि आप विंडोज 7 पर अधिक मेमोरी विवरण चाहते हैं - जैसे प्रति-प्रक्रिया कार्य सेट - आपकी सबसे अच्छी शर्त एक प्रक्रिया चलाना है जो समय-समय पर इस डेटा से पूछताछ करता है और इसे कस्टम ईटीडब्ल्यू घटनाओं में छोड़ देता है। यह UIforETW में एक प्रीपेक्टेड फॉर्म में उपलब्ध है जो एक बार एक बार प्रक्रियाओं के निर्दिष्ट सेट के कामकाजी सेट से पूछताछ कर सकता है। UIforETW कैसे प्राप्त करें के लिए घोषणा पोस्ट देखें: https://randomascii.wordpress.com/2015/04/14/uiforetw-windows-performance-made-easier/

UIforETW का विंडोज 7 कार्यरत सेट डेटा कार्य नाम के अंतर्गत सामान्य घटनाओं में दिखाई देता है == वर्किंगसेट। विंडोज 8.1 पर ओएस कामकाजी सेट डेटा (अधिक विस्तृत, अधिक कुशलता से रिकॉर्ड किया गया) मेमोरी-> वर्चुअल मेमोरी स्नैपशॉट्स के तहत दिखाया गया है।

2

आप ReferenceSet कर्नेल समूह के साथ मेमोरी उपयोग का पता लगा सकते हैं। यह निम्न traceflags में शामिल हैं:

PROC_THREAD+LOADER+HARD_FAULTS+MEMORY+FOOTPRINT+VIRT_ALLOC+MEMINFO+VAMAP+SESSION+REFSET+MEMINFO_WS 

स्मृति = मेमोरी अनुरेखण

पदचिह्न + REFSET = सहायता पदचिह्न विश्लेषण

meminfo = मेमोरी सूची जानकारी (सक्रिय, अतिरिक्त और oters आप ResMon से देखें)

VIRT_ALLOC = वर्चुअल आवंटन रिजर्व और रिलीज

VAMAP = मैप की गई फाइल जानकारी

MEMINFO_WS = जानकारी

कार्यरत सेट आप देख सकते हैं xperf स्मृति डेटा का एक बहुत पर कब्जा कर सकते हैं जब आप सही झंडे के खिलाफ मुकदमा।

+1

हाँ, यह बहुत अधिक डेटा कैप्चर कर सकता है, लेकिन हम उसे उस डेटा को * डिस्प्ले * कैसे प्राप्त करते हैं, या अन्यथा इसे निकालें? विशेष रूप से मुझे MEMINFO_WS डेटा प्रदर्शित करने का कोई तरीका नहीं मिल रहा है। डब्ल्यूपीए के मेमोरी सेक्शन में मेमोरी उपयोग (सक्रिय/संशोधित/आदि सूची), हार्ड फाल्ट्स, वर्चुअल अलाक कॉमिट लाइफटाइम्स, पूल ग्राफ और रेसिडेंट सेट देख सकते हैं। निवासी सेट सबसे उपयोगी दिखता है, लेकिन ऐसा लगता है कि यह REFSET जानकारी प्रदर्शित कर रहा है, तो MEMINFO_WS डेटा क्या प्रदर्शित करता है? –

+1

निवासी सेट केवल ट्रेस के अंत में एक स्नैपशॉट पकड़ने लगता है, इसलिए यह ट्रेस के दौरान रुझानों को ध्यान में रखते हुए खराब है। मुझे लगता है कि मुझे/हमें वास्तव में MEMINFO_WS डेटा की आवश्यकता है। –

संबंधित मुद्दे

 संबंधित मुद्दे