कुछ भी जो एक पुन:संकलन को ट्रिगर करता है (web.config परिवर्तन, app_offline.htm, .aspx फ़ाइल परिवर्तन, आदि) कोर पर CPU उपयोग को अधिकतम करने का कारण बनता है। यदि आप प्रक्रिया को दोहराते हैं, तो यह अगले कोर पर CPU उपयोग को अधिकतम करता है, जब तक कि समग्र CPU उपयोग 100% पर न हो।
मैंने एसओएस एक्सटेंशन के साथ विंडबग को जोड़ा और ऐसा लगता है कि प्रत्येक अधिकतम आउट कोर के लिए सिस्टम में 1 धागा फंस गया है। पी>
पहला धागा
- Oracle.DataAccess.Client.OracleTuningAgent.DoScan()
- Oracle.DataAccess.Client.OracleTuningAgent.TuningFunction()
- System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
- System.Threading.ThreadHelper.ThreadStart()
दूसरा धागा
- System.AppDomain.Unload(System.AppDomain)
- System.Web.HttpRuntime.ReleaseResourcesAndUnloadAppDomain(System.Object)
- System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
- System.Threading._ThreadPoolWaitCallback.PerformWaitCallbackInternal(System.Threading. _ThreadPoolWaitCallback)
- System.Threading._ThreadPoolWaitCallback.PerformWaitCallback(System.Object)
ऐसा लगता है कि AppDomain.Unload OracleTuningAgent.DoScan पर समाप्त होने की प्रतीक्षा कर रहा है, लेकिन वह थ्रेड अवरुद्ध है या सो रहा है।
Oracle ने इस मुद्दे की पुष्टि की है (बग # 9648040) और यह सर्वोच्च प्राथमिकता है। इस बीच, संभावित समाधान हैं:
- 11gR1/पहले वाले क्लाइंट पर वापस जाएं
- कनेक्शन स्ट्रिंग में 'सेल्फ़ ट्यूनिंग =असत्य' जोड़ें। आप निश्चित रूप से स्वचालित ट्यूनिंग के लाभों को खो देंगे।
-स्कॉट