2009-09-23 16 views
6

मुझे कुछ हफ्तों के बाद से एक बड़ी समस्या का सामना करना पड़ रहा है। मेरे पास आईआईएस 7 (डब्ल्यू 2008 एसपी 1) के तहत होस्ट किया गया एएसपीनेट एप्लीकेशन है, और प्रत्येक दो घंटे सीपीयू के करीब 50% उपभोग करना शुरू कर देता है जब शायद कोई उपयोगकर्ता कनेक्ट नहीं होता है। यह समझ में आता है क्योंकि हम कुछ एप्लिकेशन रिकिकलिंग करने के लिए Quartz.net का उपयोग कर रहे हैं, लेकिन हम अभी तक समस्या को पुन: उत्पन्न नहीं कर सके। http://mycenter.info/tmp/DotTraceSnapshot.zipएएसपी.नेट: बिना लोड के उच्च CPU उपयोग

आमतौर पर प्रक्रिया सीपीयू बर्बाद कर w3wp.exe है, लेकिन पिछले कुछ दिनों sqlserver (2008) और memcached (1.2 में:

यहाँ एक ट्रेस जेटब्रेन्स dotTrace 3.1 के साथ किया जाता है, जबकि सीपीयू उच्च किया गया है। 1, और सोमवार को 1.2.4 बीटा अपडेट किया गया) सीपीयू को भी मार रहा था। यह अजीब बात है कि कुछ बार memcached 100% उपभोग शुरू होता है और इसके आंकड़े बताते हैं कि यह चुप है, हालांकि अनुरोध होने पर यह ठीक काम करता है।

Here's एक क्रैश डंप w3wp के (या स्टैक ट्रेस डंप) का उपयोग कर WinDbg: (इस गाइड के आधार पर: http://blogs.technet.com/marcelofartura/archive/2006/09/15/troubleshooting-iis-100-cpu-issues-step-by-step-intermediary.aspx) किसी भी टिप के लिए पहले से

0:000> ~ 
. 0 Id: 1be4.1d3c Suspend: 1 Teb: 7ffdf000 Unfrozen 
    1 Id: 1be4.b1c Suspend: 1 Teb: 7ffde000 Unfrozen 
    2 Id: 1be4.12a0 Suspend: 1 Teb: 7ffdd000 Unfrozen 
    3 Id: 1be4.19d0 Suspend: 1 Teb: 7ffdc000 Unfrozen 
    4 Id: 1be4.1714 Suspend: 1 Teb: 7ffd7000 Unfrozen 
    5 Id: 1be4.1a18 Suspend: 1 Teb: 7ffd6000 Unfrozen 
    6 Id: 1be4.12ac Suspend: 1 Teb: 7ffd5000 Unfrozen 
    7 Id: 1be4.dec Suspend: 1 Teb: 7ffd4000 Unfrozen 
    8 Id: 1be4.1e48 Suspend: 1 Teb: 7ffd8000 Unfrozen 
    9 Id: 1be4.1ca8 Suspend: 1 Teb: 7ffd3000 Unfrozen 
    10 Id: 1be4.1508 Suspend: 1 Teb: 7ffaf000 Unfrozen 
    11 Id: 1be4.1bc0 Suspend: 1 Teb: 7ffae000 Unfrozen 
    12 Id: 1be4.1f48 Suspend: 1 Teb: 7ffad000 Unfrozen 
    13 Id: 1be4.1994 Suspend: 1 Teb: 7ffac000 Unfrozen 
    14 Id: 1be4.1a48 Suspend: 1 Teb: 7ffab000 Unfrozen 
    15 Id: 1be4.12c8 Suspend: 1 Teb: 7ffa8000 Unfrozen 
    16 Id: 1be4.e44 Suspend: 1 Teb: 7ffa7000 Unfrozen 
    17 Id: 1be4.19e0 Suspend: 1 Teb: 7ffa6000 Unfrozen 
    18 Id: 1be4.19b0 Suspend: 1 Teb: 7ffa2000 Unfrozen 
    19 Id: 1be4.1b30 Suspend: 1 Teb: 7ffd9000 Unfrozen 
    20 Id: 1be4.1bfc Suspend: 1 Teb: 7ffa3000 Unfrozen 
    21 Id: 1be4.1be8 Suspend: 1 Teb: 7ffa1000 Unfrozen 
    22 Id: 1be4.1a54 Suspend: 1 Teb: 7ffa5000 Unfrozen 
    23 Id: 1be4.b74 Suspend: 1 Teb: 7ff3d000 Unfrozen 
    24 Id: 1be4.19b4 Suspend: 1 Teb: 7ff3c000 Unfrozen 
    25 Id: 1be4.1460 Suspend: 1 Teb: 7ffdb000 Unfrozen 
    26 Id: 1be4.1eac Suspend: 1 Teb: 7ffaa000 Unfrozen 
    27 Id: 1be4.1b90 Suspend: 1 Teb: 7ffa4000 Unfrozen 


0:023> #23s 
Search address set to 77dc9a94 
*** WARNING: Unable to verify checksum for SMDiagnostics.ni.dll 
*** WARNING: Unable to verify checksum for System.Data.ni.dll 
*** ERROR: Module load completed but symbols could not be loaded for Microsoft.Web.Services3.DLL 
*** WARNING: Unable to verify checksum for System.Windows.Forms.ni.dll 
*** WARNING: Unable to verify checksum for System.Web.ni.dll 
*** WARNING: Unable to verify checksum for Ademy.UI.Web.DLL 
*** ERROR: Module load completed but symbols could not be loaded for AjaxControlToolkit.DLL 
*** ERROR: Module load completed but symbols could not be loaded for 7zSharp.DLL 
*** WARNING: Unable to verify checksum for mscorlib.ni.dll 
*** ERROR: Module load completed but symbols could not be loaded for Iesi.Collections.DLL 
*** WARNING: Unable to verify checksum for System.Design.ni.dll 
*** WARNING: Unable to verify checksum for System.Core.ni.dll 
*** WARNING: Unable to verify checksum for Ademy.Event.DLL 
*** WARNING: Unable to verify checksum for System.ServiceModel.ni.dll 
*** ERROR: Module load completed but symbols could not be loaded for System.ServiceModel.ni.dll 
*** WARNING: Unable to verify checksum for App_Theme_Ocean.wgubmrqt.dll 
*** WARNING: Unable to verify checksum for NHibernate.Burrow.AppBlock.DLL 
*** ERROR: Module load completed but symbols could not be loaded for NHibernate.Burrow.AppBlock.DLL 
*** WARNING: Unable to verify checksum for NHibernate.Caches.SysCache2.DLL 
*** ERROR: Module load completed but symbols could not be loaded for NHibernate.Caches.SysCache2.DLL 
*** WARNING: Unable to verify checksum for Ademy.UI.Web.Controls.DLL 
*** WARNING: Unable to verify checksum for Microsoft.JScript.ni.dll 
*** WARNING: Unable to verify checksum for System.Web.Mobile.ni.dll 
*** WARNING: Unable to verify checksum for System.Runtime.Serialization.ni.dll 
     ^Memory access error in '#23s' 

0:023> kb 
ChildEBP RetAddr Args to Child    
11c6ede4 77dc8ed4 766bc622 0000038c 00000000 ntdll!KiFastSystemCallRet 
11c6ede8 766bc622 0000038c 00000000 11c6ee20 ntdll!NtSetEvent+0xc 
11c6edf8 011011ef 0000038c 7f52be6e 0fda4888 kernel32!SetEvent+0x10 
WARNING: Frame IP not in any known module. Following frames may be wrong. 
11c6ee20 71b26ffe 060c5f9c 010039b0 010628a0 0x11011ef 
*** WARNING: Unable to verify checksum for System.ni.dll 
11c6ee4c 712c4b14 02528958 060c5f9c 11c6ee94 mscorlib_ni+0x216ffe 
11c6ee5c 712c4abe 060c5fb0 02528958 060c600c System_ni+0x144b14 
11c6ee94 71679260 060c5d24 7167926d 060c5d24 System_ni+0x144abe 
11c6eec8 717d8373 060c5d24 11c6f3e8 712c4ce4 System_ni+0x4f9260 
11c6ef14 712c4ce4 00000000 02528930 11c6ef74 System_ni+0x658373 
11c6ef54 7129dbcb 098b6ac4 11c6efec 72f7eff8 System_ni+0x144ce4 
11c6efa4 71b26d66 02df349c 11c6efc0 71b45681 System_ni+0x11dbcb 
11c6efb0 71b45681 00000000 0dcfd2d8 11c6efd0 mscorlib_ni+0x216d66 
11c6efc0 72f11b4c 766b45f1 00000000 11c6f050 mscorlib_ni+0x235681 
11c6efd0 72f221f9 11c6f0a0 00000000 11c6f070 mscorwks!CallDescrWorker+0x33 
11c6f050 72f36571 11c6f0a0 00000000 11c6f070 mscorwks!CallDescrWorkerWithHandler+0xa3 
11c6f194 72f365a4 71a91ff0 11c6f2c8 11c6f1e8 mscorwks!MethodDesc::CallDescr+0x19c 
11c6f1b0 72f365c2 71a91ff0 11c6f2c8 11c6f1e8 mscorwks!MethodDesc::CallTargetWorker+0x1f 
11c6f1c8 7302a471 11c6f1e8 68e9b644 0dcfd2d8 mscorwks!MethodDescCallSite::CallWithValueTypes+0x1a 
11c6f394 7302a5c6 11c6f424 68e9b194 02df34e4 mscorwks!ExecuteCodeWithGuaranteedCleanupHelper+0x9f 
11c6f444 71b45577 11c6f3e8 02df17d0 01c177f8 mscorwks!ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup+0x10f 

धन्यवाद !!

अद्यतन:

Here's फांसी पर लटका दिया धागे की कामयाब ढेर: मैं सोच यह memcached प्रदाता की तरह दिखता है, लेकिन अभी तक यकीन नहीं मुझे क्या करना चाहिए।

0:023> !clrstack 
OS Thread Id: 0xb74 (23) 
ESP  EIP  
11c6ee38 77dc9a94 [NDirectMethodFrameStandaloneCleanup: 11c6ee38] Microsoft.Win32.Win32Native.SetEvent(Microsoft.Win32.SafeHandles.SafeWaitHandle) 
11c6ee48 71b26ffe System.Threading.EventWaitHandle.Set() 
11c6ee54 712c4b14 System.Net.TimerThread.Prod() 
11c6ee64 712c4abe System.Net.TimerThread+TimerQueue.CreateTimer(Callback, System.Object) 
11c6eea0 71679260 System.Net.ConnectionPool.CleanupCallbackWrapper(Timer, Int32, System.Object) 
11c6eed4 717d8373 System.Net.TimerThread+TimerNode.Fire() 
11c6ef1c 712c4ce4 System.Net.TimerThread+TimerQueue.Fire(Int32 ByRef) 
11c6ef5c 7129dbcb System.Net.TimerThread.ThreadProc() 
11c6efac 71b26d66 System.Threading.ThreadHelper.ThreadStart_Context(System.Object) 
11c6efb8 71b45681 System.Threading.ExecutionContext.runTryCode(System.Object) 
11c6f3e8 72f11b4c [HelperMethodFrame_PROTECTOBJ: 11c6f3e8] System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, System.Object) 
11c6f450 71b45577 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
11c6f46c 71b301c5 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
11c6f484 71b26ce4 System.Threading.ThreadHelper.ThreadStart() 
11c6f6b0 72f11b4c [GCFrame: 11c6f6b0] 
11c6f9a0 72f11b4c [ContextTransitionFrame: 11c6f9a0] 

समाधान:

यह Win32 के लिए memcached 1.2.1 में एक बग, की वजह से था जब 2008 मैं v1.2.6 के लिए अद्यतन Windows पर चल रहा है और सब कुछ काम किया। मुझे लगता है कि मैं w3wp प्रक्रिया देख रहा था क्योंकि पुस्तकालय मैं memcached से कनेक्ट करने के लिए उपयोग कर रहा हूँ एक रीसायकल प्रक्रिया है जो लटका था, भले ही memcached अभी भी प्रतिक्रिया दे रहा था।

समाधान 2 FOUND:

पहला समाधान काम नहीं करता है, तो कृपया THIS POST पढ़ें। मुझे लगता है कि memcached समाधान सिर्फ वास्तविक समस्या को छुपाएं, जो SmtpClient में एक बग था।

उत्तर

2

windbg में, इस मुद्दे:

~ * ई clrstack

यह कामयाब धागा ढेर के सभी हट जाएगा और तुम क्या है कि इस प्रक्रिया में हो रहा है की एक विचार देना चाहिए।

भी एक रनवे का प्रयास करें, जो आपको दिखाएगा कि प्रत्येक थ्रेड कितना समय चल रहा है। शीर्ष धागे के ढेर पर ध्यान केंद्रित करें जो सबसे लंबे समय तक चल रहे हैं।

+0

धन्यवाद! "~ * ई! क्लस्टैक" आउटपुट "कोई निर्यात क्लस्टैक नहीं मिला" लगभग 20 गुना, और रनवे दिखाता है कि थ्रेड (# 23/आईडी: 1be4.b74) 10 मिनट के लिए चल रहा था। मुझे वह आदेश नहीं पता था, लेकिन मैं समझ सकता था कि लेख में वर्णित चरणों का पालन करने वाला बुरा था। कोई अन्य विचार? मैं ~ * ई! क्लस्टैक काम कैसे कर सकता हूं? –

+0

धन्यवाद! मैंने प्रश्न में प्रबंधित स्टैक जोड़ा है, हालांकि यह मेरा कोड नहीं है जो सीपीयू का उपभोग कर रहा है .. :( –

+0

मुझे समाधान मिला है (ऊपर देखें), आपकी मदद के लिए धन्यवाद !! –

0

क्या यह संभवतः कैश समस्या के कारण होता है? उदाहरण के लिए, क्या आपके पास समय समाप्त होने पर डीबी से स्वचालित रूप से फिर से लोड करने के लिए एक कैश किए गए डेटासेट सेट है?

हमारे पास यह स्थिति एक बार थी। हमारे पास एक बड़ा डेटासेट था जिसे हम हमेशा उपलब्ध होना चाहते थे। डेटा अक्सर उसमें बदलाव नहीं करता था, इसलिए हमने इसे 1 घंटे की समाप्ति के साथ कैश में सेट किया, और फिर हमारे ग्लोबल.एक्सएक्स में, हमने हटाने में वर्णित कुल ई चेतावनी के बिना here वर्णित किया।घंटे बीतने के बाद हमने डेटासेट को कैश में फिर से लोड किया और इससे हर घंटे उच्च सीपीयू उपयोग और उच्च डीबी उपयोग होता है।

संपादित करें -

जरूरत नहीं जोड़ा कहने के लिए, हम इस जल्दी से देखा और हमारी गलती से सीखा है।

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