सवाल आप कैसे जान सकते हैं w3wp.exe क्या कर रहा है? (या प्रदर्शन समस्या का निदान कैसे करें)


मुझे हमारे द्वारा बनाई गई साइट में एक प्रदर्शन समस्या है, और मुझे बिल्कुल यकीन नहीं है कि इसका निदान कैसे शुरू किया जाए।

संक्षिप्त विवरण है: हमारे पास एक बहुत छोटी साइट है (http://hearablog.com) बहुत कम यातायात के साथ, एक क्रैपी समर्पित सर्वर में, सीपीयू हमेशा बहुत अधिक होता है, कभी-कभी यह मिनटों के लिए 100% पर रहता है, और w3wp.exe इसमें से अधिकतर ले रहा है। एक सामान्य परिदृश्य w3wp.exe 60% लेता है, और SQL सर्वर लगभग 30% लेता है। हमारा डीबी भी बहुत छोटा है।

लंबा विवरण और अधिक जानकारी:

  • साइट Cari.Net द्वारा बहुत क्रैपी सर्वर में होस्ट की जाती है। शुरुआत से हमें यह महसूस हो रहा था कि सर्वर बिल्कुल सही व्यवहार नहीं करता था, जैसे कि कुछ चीजें बहुत अधिक समय लेती हैं, इसलिए यह जाने से कॉन्फ़िगरेशन समस्या हो सकती है। यह हो सकता है यह भी हो कि हम एक वर्चुअल सर्वर प्राप्त कर रहे हैं, जबकि हमें एक समर्पित व्यक्ति माना जाता है, हालांकि हमारे पास कोई सबूत नहीं है जो इस बात को इंगित करेगा, इस तथ्य को छोड़कर कि सर्वर काफी धीमा हो जाता है।

  • SQL 2008 एक्सप्रेस के साथ सर्वर विंडोज 2008 मानक 64-बिट है

  • हार्डवेयर एक सेलेरॉन 2.80 गीगाहर्ट्ज, 1 जीबी रैम है

  • डेटा एक्सेस के लिए एंटिटी फ्रेमवर्क का उपयोग करते हुए वेबसाइट एएसपी.NET एमवीसी में विकसित की गई है।

  • अब, यह बहुत गड़बड़ हार्डवेयर है, लेकिन मेरे पास इन लोगों के साथ समकक्ष (या बदतर) एचडब्ल्यू के साथ अन्य सर्वर हैं, और प्रदर्शन इस से काफी बेहतर है। उस ने कहा, अन्य सर्वरों में W2003 और SQL2005 है, और मैं ASP.Net "WebForms" 2.0 का उपयोग कर रहा हूं, कोई एमवीसी नहीं, कोई LINQ नहीं, कोई ईएफ नहीं; इसलिए मुझे यकीन नहीं है कि 2008 / अन्य सामानों का मतलब है कि एक बड़ा प्रदर्शन जुर्माना अपेक्षित है।

  • मैं नियमित रूप से एमपी 3 फाइलों (5-20 एमबी) की सेवा कर रहा हूं, जो थोड़ा असामान्य भार है, शायद यह किसी प्रकार की समस्याएं पैदा कर रहा है?
    क्या यह बहुत सी CPU का उपयोग करने के लिए w3wp का कारण बनता है?

  • डिस्क उपयोग बहुत कम लगता है। मेमोरी आमतौर पर लगभग 9 0% होती है, लेकिन डिस्क का उपयोग यह इंगित करता है कि यह ज्यादा पेजिंग नहीं कर रहा है।

  • मुझे मिला टन एसक्यूएल टाइमआउट के बारे में हर दिन ई-मेल का, 30 सेकंड से अधिक प्रश्न पूछने के लिए, हालांकि हमारे सभी प्रश्न बहुत सरल हैं (या होना चाहिए, लेकिन ईएफ इसे खराब कर सकता है)।

यदि संसाधन कुछ भी उपयोगी है, तो संसाधन मॉनीटर 100% CPU के इन "स्पिंट्स" में से एक में दिखता है।

alt text

और कुछ प्रदर्शन काउंटरों का स्नैपशॉट: alt text

अब, मुझे बहुत भ्रमित करता है कि w3wp का CPU उपयोग इतना ऊंचा है। यह वास्तव में बहुत कुछ नहीं करना चाहिए ... तो मेरे प्रश्न हैं ...

  • क्या यह पता लगाने का कोई तरीका है कि "क्या" यह कर रहा है? शायद यह प्रोफाइल भी?
  • मुझे कोई प्रदर्शन काउंटर देखना चाहिए?
  • क्या यह हार्डवेयर / सॉफ्टवेयर कॉन्फ़िगरेशन दिए जाने की उम्मीद है?
  • क्या यह किसी प्रकार की कॉन्फ़िगरेशन विफलता के कारण हो सकता है, आप कहां दिखना शुरू कर देंगे?

आपका बहुत बहुत धन्यवाद।
डैनियल Magliola


41
2017-10-27 12:13


मूल




जवाब:


आप आईआईएस मैनेजर के अंदर वर्कर प्रोसेस यूआई का भी उपयोग कर सकते हैं और वर्तमान में निष्पादित अनुरोधों का निरीक्षण कर सकते हैं और देख सकते हैं कि वे कहां फंस रहे हैं। ओपन आईआईएस प्रबंधक-> ट्री में सर्वर पर क्लिक करें-> डबल क्लिक वर्कर प्रक्रिया आइकन-> वास्तविक समय में वर्तमान में निष्पादन अनुरोधों को देखने के लिए सीपीयू का उपभोग करने वाले वर्कर प्रक्रिया पर डबल क्लिक करें ताकि आप देख सकें कि कौन सा मॉड्यूल समय ले रहा है।

यह अनुरोध करने के लिए कि वे लंबे समय तक कहां ले रहे हैं, प्रति अनुरोध के कुछ समय ट्रैक करने के लिए असफल अनुरोध ट्रेसिंग का उपयोग करने पर भी विचार करें।


40
2017-10-27 22:01



यह वादाजनक है, यह वास्तव में वास्तव में लगता है कि मैं क्या देखना चाहता हूं, लेकिन वास्तव में उन स्क्रीनें खाली दिखाई देती हैं। यह स्पष्ट रूप से केवल उन अनुरोधों को दिखा रहा है जो शीर्ष पर बड़े संकेत के अनुसार एक सेकंड से अधिक समय ले रहे हैं, और हमारे अनुरोधों में से कोई भी स्पष्ट रूप से नहीं है, क्योंकि सूची खाली है। इसे और अधिक अनुरोध दिखाने के तरीके पर कोई विचार? 1 एस फ़िल्टर कैसे कम करें? धन्यवाद! - Daniel Magliola
आप फ़िल्टर में 0 टाइप कर सकते हैं और गो पर क्लिक कर सकते हैं, जो इसे 0 सेकंड पर सेट कर देगा। साथ ही, आप एक उन्नत कमांड प्रॉम्प्ट से चला सकते हैं "% windir% \ system32 \ inetsrv \ appcmd.exe सूची अनुरोध" - Carlos Aguilar Mares
कार्लोस बहुत बहुत धन्यवाद! यही वह अनुरोध है जो मैंने एक अनुरोध (हमारे पास एक क्रॉन) खोजने के लिए किया है जो हर 5 मिनट में मेरा सर्वर मार रहा था (इसे चलाने में 3.5 मिनट लग गए, इसलिए यह लगभग 100% CPU पर था)। धन्यवाद!!! - Daniel Magliola
इस यूआई ने मुझे बताया कि यूआरएल किस तक पहुंचा था; दुर्भाग्य से यह एक एएसएमएक्स webservice के लिए एक पोस्ट है, और वह डेटा उपलब्ध नहीं है। (Headbang) - Ross Presser


ठीक है, शुरू करने के लिए - सर्वर वास्तव में बकवास है। लेकिन यह पर्याप्त होना चाहिए।

  • वर्चुअलाइजेशन के लिए, अपने ड्राइवरों की जांच करें। मुझे कोई वायर्यूटलाइजेशन प्लेटफ़ॉर्म नहीं पता है जो सीपीयू को छुपाता है (और मुझे लगता है कि कोई व्यक्ति एक सेलेरॉन पर हाइपर-वी या एएसएक्स रखता है) लेकिन डिस्क आदि के ड्राइवर एक संकेत हैं।

  • सीपीयू इतना ऊंचा नहीं होना चाहिए। अफसोस की बात है, इस रैम के साथ, आप बहुत ज्यादा टोस्ट हैं - यदि आप एक प्रोफाइलर जोड़ना शुरू करते हैं तो आप अपनी स्मृति को बहुत अधिक उड़ा देंगे।

मैं:

  • इस पल में निष्पादित सामग्री के लिए लॉग की जांच करें।
  • ओएस को 2008 आर 2 में अपग्रेड करें - वहां बहुत अधिक जानकारी उपलब्ध है।

परीक्षण के लिए:

  • अपने देव पर्यावरण में साइट की एक प्रति बनाएं और कुछ प्रदर्शन परीक्षण चलाएं।
  • वहाँ प्रोफाइलिंग करो।
  • कौन से अनुरोध विफल हो जाते हैं यह जानने के लिए विफल अनुरोध ट्रैकिंग का उपयोग करें।

http://learn.iis.net/page.aspx/266/troubleshooting-failed-requests-using-tracing-in-iis-7/

कुछ वहाँ शुरू है। यह समस्याएं अधिक होने पर आपको संकेत दे सकती है - एचएम - "वर्गीकृत"।

मैं दीर्घकालिक प्रदर्शन लॉग भी रखूंगा। अपने आईओ के लिए देखें (सेकंड / पढ़ा, सेकेंड / लिखना बहुत ही प्रासंगिक हैं)। बाकी सभी आईओ बुद्धिमान अस्पष्ट हैं - लेकिन एक बार जब आपका आईओ इससे अधिक समय लेना शुरू कर देता है, तो डिस्क पीछे आती है।

मैं इस बिंदु पर कॉन्फ़िगरेशन समस्या को रद्द कर दूंगा - कम से कम प्राथमिक संकेतक के रूप में। कुछ आपके डब्ल्यू 3 पी रिसोर्स का उपयोग करता है, अब आपको यह पता लगाना होगा कि यह क्या है।

आम तौर पर, यह एक ऐसा सर्वर नहीं है जिसे मैं शारीरिक रखना पसंद करूंगा - यह बहुत छोटा है, यह आईएसएचओ को वहां मशीन के लिए कोई समझ नहीं आता है। वर्चुअल बेहतर होगा;)


5
2017-10-27 12:47



उत्तर देने के लिए आपका धन्यवाद। कुछ प्रश्न: इस पल में आप किस सामग्री को निष्पादित करने के लिए जांच करेंगे? (क्षमा करें अगर यह एक नौसिखिया सवाल है) - ओएस अपग्रेड करें: हम कोशिश कर सकते हैं, लेकिन मुझे डर है कि यह सामान तोड़ सकता है, शायद, यह कितना सुरक्षित है? - देव पर्यावरण: समस्या यह है कि मेरे देव पर्यावरण में यह ठीक काम करता है। सीपीयू नगण्य है, अनुरोध विफल नहीं है, आदि - Daniel Magliola
आई / ओ लॉग के लिए: मैंने अभी आपके द्वारा उल्लिखित काउंटर जोड़े हैं, और सीपीयू उच्च होने पर वे सभी 0 पर हैं। मैंने अभी कुछ प्रदर्शन काउंटरों का एक स्क्रीनशॉट जोड़ा है जिसे मैं देख रहा हूं। मुझे पता है कि एक स्नैपशॉट पूरी कहानी नहीं बताता है, लेकिन वे मान काफी स्थिर होते हैं। क्या आपको लगता है कि वर्तमान कनेक्शन की संख्या (जिसके लिए मेरे पास कोई स्पष्टीकरण नहीं है) एक समस्या हो सकती है? यह पता लगाने के लिए कि कौन से कनेक्शन अनुरोध कर रहे हैं / कर रहे हैं, इस पर कोई विचार है? ऐसा कोई अन्य काउंटर जो आपको लगता है कि ऐसा कुछ निदान करने के लिए उपयोगी हो सकता है? - Daniel Magliola
खैर, आर 2 काफी सुरक्षित है। मैंने सब कुछ अपग्रेड किया और कभी भी कोई समस्या नहीं आई। किसी भी तरह .... यह एक सीपीयू मुद्दा है और यह नौकायन भयानक हो सकता है, espeically दिया है कि आप एक प्रोफाइलर स्थापित करने के लिए पर्याप्त RAM नहीं है। मैं वास्तव में एक पूर्ण पुनर्स्थापित करने का प्रयास करेंगे। हां, बेकार है, लेकिन इसका मतलब है कि आप आर 2 ताजा स्थापित कर सकते हैं और देख सकते हैं कि समस्या बनी रहती है या नहीं। बुरी बात यह है कि आप एक रिजर्व सिस्टम नहीं देते हैं, इसलिए आप यह पहचान नहीं सकते कि समस्या "स्थानीय" या अधिक सामान्य है या नहीं। वैकल्पिक रूप से: आईआईएस को रोकें, उपयोग में सभी अस्थायी फ़ोल्डरों को भी मिटा दें - TomTom
संकलन के लिए और देखें कि जब आप पुनरारंभ करते हैं तो क्या होता है। आर 2 के साथ आप देख सकते हैं कि आईआईएस द्वारा कौन सी फाइलें खुली हैं। क्या यह स्थानीय एक वेब एप्लिकेशन है, या यह भी है यदि सभी वेबसाइटें रुक गई हैं? कोशिश करने के लिए अगली बात - सभी साइटों को बंद करें और पता लगाएं कि कौन सी चीजें तोड़ती है। - TomTom
अंत में, वर्चुअल सर्वर के साथ समस्या यह है कि, जहां तक ​​मैंने पाया है, हम एक ही हार्डवेयर के लिए अधिक भुगतान करते हैं, साथ ही, बैंडविड्थ बिल हत्यारा है (ध्यान रखें कि हम ऑडियो फाइलों की सेवा करते हैं)। अगर हमें हमारे पास यातायात के साथ ईमानदारी से, एक बड़ी सर्वर में जाना होगा, तो कुछ समस्या होनी चाहिए, हमें 100% सीपीयू का उपयोग नहीं करना चाहिए .. - Daniel Magliola


आप एक प्रोग्राम का उपयोग करने का प्रयास कर सकते हैं प्रक्रिया एक्सप्लोरर w3wp प्रक्रिया के तहत चल रहे व्यक्तिगत धागे की निगरानी करने के लिए। यह आपको यह देखने की अनुमति दे सकता है कि कौन सा धागा सभी नुकसान पहुंचा रहा है।


4
2017-10-27 21:04





मेरी w3wp प्रक्रिया को डंप करने के लिए माइक्रोसॉफ्ट के डीबग डायग्नोस्टिक टूल का उपयोग करके मुझे वाकई बहुत अच्छा भाग्य मिला और फिर लॉक होने वाली चीज़ों के लिए धागे और स्टैक निशान देखें। यह आपको अनुरोधित पृष्ठ भी बताएगा जो थ्रेड को उत्पन्न करता है श्रेष्ठ सुंदर

http://www.microsoft.com/en-us/download/details.aspx?id=26798


3
2017-09-06 03:33





मैं लाइन के नीचे टॉमटॉम से सहमत हूं, विशेष रूप से इस बिंदु पर वर्चुअल से बेहतर लाभ प्राप्त करने के बारे में। समस्या को कम करने के लिए स्थानीय रूप से डिबगिंग / प्रोफाइलिंग करना सही काम है।

मैं अपने कर्णक को शानदार टोपी और केप पर डाल रहा हूं और पहले लिफाफे के लिए पूछूंगा। राम विद्रोह जब आप ओएस, एएसपी.नेट, और एक लालची एसक्यूएल सर्वर एक्सप्रेस 1 जीबी में डालते हैं तो आपको क्या मिलता है।

मेरा मानना ​​है कि आपकी समस्या यह है कि एसक्यूएल सर्वर एक्सप्रेस एक बफर पूल के लिए सभी उपलब्ध रैम में खींच रहा है और इसे रिलीज़ करने में धीमा है। देख http://support.microsoft.com/kb/321363 अधिक जानकारी के लिए। इसके अलावा, आईआईएस में 256 एमबी का डिफॉल्ट कैश है जिसे आपको ट्विक करने की आवश्यकता हो सकती है (https://stackoverflow.com/questions/2853135/controlling-asp-net-output-cache-memory-usage)। डीबग डायग्नोस्टिक्स समस्या निवारण के लिए यह एक अच्छा टूल है (ठीक है, शायद एक स्लेजहैमर)।

http://technet.microsoft.com/en-us/library/bb742546.aspx देखने के लिए एक सुंदर सभ्य लेख है। http://social.technet.microsoft.com/forums/en-US/sharepointadmin/thread/706c653a-16b0-4696-85ee-9ae3552a582e ऐप पूल रीसाइक्लिंग के लिए अंक एक और संभावित मुद्दा के रूप में पागल हो गया।


1
2017-10-27 13:37





W3wp.exe प्रक्रिया के व्यक्तिगत विशेषताओं को देखने के लिए परफमन की "प्रक्रिया" काउंटर का उपयोग करें। कार्यकर्ता प्रक्रिया के लिए CPU समय कितना कर्नेल समय है? उच्च कर्नेल समय पेजिंग का संकेतक हो सकता है, लेकिन आप कहते हैं कि आप आश्वस्त नहीं हैं। अन्य संभावनाएं डफ ड्राइवर हैं। कार्यकर्ता की प्रक्रिया में 23 धागे सक्रिय हैं, जो अच्छा है, लेकिन वे क्या कर रहे हैं? थोड़ा और खोदने के लिए SysInternals 'ProcessExplorer आज़माएं; आप यह भी देख सकते हैं कि टीसीपी / आईपी कनेक्शन क्या चल रहे हैं। मैंने एसक्यूएल एक्सप्रेस का उपयोग नहीं किया है, लेकिन क्या इसमें मेमोरी ट्यूनिंग पैरामीटर हैं, जैसे कि बड़े भाई। एसक्यूएल स्मृति की आईआईएस भूखा है, अत्यधिक पेजिंग का कारण बनता है?


1
2017-10-27 20:58



चलो देखते हैं कि मैं यह सही कर रहा हूं ... मैंने% प्रोसेसर समय जोड़ा, और% उपयोगकर्ता टाइम काउंटर, दोनों w3wp प्रक्रिया के लिए, और वे दोनों एक दूसरे से पूरी तरह से मेल खाते हैं। क्या इसका मतलब है कि कोई कर्नेल समय नहीं है, या क्या मैं इसे गलत तरीके से देख रहा हूं? (क्षमा करें, मैं इस पर एक नौसिखिया हूँ) - Daniel Magliola


यह पूरी तरह से संबंधित नहीं हो सकता है, लेकिन सत्यापित करें कि क्या आप अपने प्रश्नों में NOLOCK का उपयोग कर रहे हैं। यह एसक्यूएल टाइमआउट के मामले में मदद कर सकता है।


0
2017-11-30 18:16