2010-02-10 3 views
5

मैं ईवेंट के लिए दूरस्थ 2008 सर्वर क्वेरी करने के लिए EventLogReader का उपयोग कर रहा हूं। रिमोट मशीन पर घटनाओं की पूछताछ का प्रदर्शन भयानक (6/सेकंड) है। अगर मैं एकमात्र मशीन से डब्लूएमआई के माध्यम से एक ही मशीन से पूछता हूं तो केवल एक ही प्रबंधन (ऑब्जेक्ट खोज) प्रदर्शन अच्छा है (1000/सेकंड)। मुझे इवेंटलॉग रीडर (उदा। रिटर्न इमीडिएटली, रिवाइंडेबल) पर इसे गति देने के लिए कोई भी समान विकल्प नहीं दिख रहा है। मैंने दूरस्थ सर्वर पर फ़ायरवॉल को बंद करने का प्रयास किया ताकि यह देखने के लिए कि संभवतः संचार समस्याएं थीं, लेकिन इससे कोई फर्क नहीं पड़ता।EventLogReader रिमोट प्रदर्शन

स्थानीय होस्ट से लॉग पढ़ने के लिए EventLogReader का उपयोग करते समय प्रदर्शन की अपेक्षा की जाती है - यह केवल उस नेटवर्क पर है जो धीमा हो जाता है (लेकिन WMI समस्या का अनुभव नहीं करता है)।

नेटवर्क पर EventLogReader के प्रदर्शन को तेज करने का कोई तरीका?

धन्यवाद, मिच

+0

क्या कोई विशिष्ट कारण है कि आप डब्लूएमआई का उपयोग नहीं कर सकते? – Oded

+0

मुझे घटनाओं को आरोही क्रम में प्राप्त करने की आवश्यकता है (EventLogReader इसे अनुमति देता है)। डब्ल्यूएमआई केवल इसे अवरोही में वापस देता है। –

+0

स्मृति को लोड करने के लिए WMI का उपयोग कैसे करें, फिर उन्हें सॉर्ट करें? –

उत्तर

4

एक छोटे से परीक्षण (http://msdn.microsoft.com/en-us/library/bb671200.aspx से नमूना कोड संशोधित) था और मेरे प्रयोग से मैंने पाया कि प्रदर्शन हिट EventRecord.FormatDescription बुला से आता है()।

जब मुझे केवल EventRecord.ToXml() पर कॉल किया गया था, तो मैं लगभग 170 घटनाओं/सेकंड में 25 सेकंड में 4300 घटनाओं पर लैन पर सर्वर से दूरस्थ रूप से खींचने में सक्षम था। जब मैंने EventRecord.FormatDescription() पर कॉल जोड़ा, तो प्रदर्शन सभी 4300+ ईवेंट और लगभग 52 ईवेंट/सेकंड पढ़ने के लिए लगभग 1.5 मिनट तक गिर गया।

मैं क्षमा चाहता हूं कि यह वह जवाब न हो जो आप चाहते हैं लेकिन मेरी सलाह होगी यदि आपको EventRecord.FormatDescription() को कॉल करने की आवश्यकता नहीं है तो यह प्रदर्शन को थोड़ा बढ़ाएगा।

+0

@Nate: उसमें देखने के लिए धन्यवाद। मैं फॉर्मेट डिस्क्रिप्शन को कॉल कर रहा हूं जिसे मुझे संदेश प्राप्त करने के लिए कॉल करने की आवश्यकता है। मुझे आश्चर्य है कि क्या इंटरपोलेटेड संदेश प्राप्त करने का दूसरा तरीका है? मुझे इसके साथ गड़बड़ करनी होगी। –

+0

मुझे पता चला है कि EventRecord.ToXML() केवल एप्लिकेशन लॉग संदेशों को आउटपुट करता है, सुरक्षा लॉग इवेंट लॉग गुणों से निर्मित प्रतीत होता है, लेकिन FormatDescription() यह दर्दनाक धीमा कर रहा है। मैं सुरक्षा लॉग विवरण के लिए पूर्ण XPath लिखने पर विचार कर रहा हूं और यदि मेरे पास XPath डेटा नहीं है तो प्रारूप डिस्क्रिप्शन पर वापस आना। – StrangeWill

+0

^यह अनदेखा करें, यह एक बेवकूफ विचार था, मुझे कोई सुराग नहीं है कि फ़ॉर्मेट डिस्क्रिप्शन को मूल रूप से धीमा होने के लिए मूल रूप से क्षतिपूर्ति कैसे करें। – StrangeWill