Bất kỳ thứ gì kích hoạt biên dịch lại (thay đổi web.config, app_offline.htm, thay đổi tệp .aspx, v.v.) đều khiến mức sử dụng CPU trên lõi đạt mức tối đa. Nếu bạn lặp lại quy trình, nó sẽ tối đa hóa mức sử dụng CPU trên lõi tiếp theo, cho đến khi mức sử dụng CPU tổng thể ở mức 100%.
Tôi đã kết nối windbg với các phần mở rộng sos và có vẻ như đối với mỗi lõi tối đa có 1 luồng bị kẹt trong System.AppDomain.Unload (System.AppDomain) và một luồng khác bị kẹt trên Oracle.DataAccess.Client.OracleTuningAgent.DoScan ().
Chủ đề đầu tiên
- 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 ()
Chủ đề thứ hai
- 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)
Có vẻ như AppDomain.Unload đang đợi OracleTuningAgent.DoScan kết thúc, nhưng luồng đó bị chặn hoặc đang ngủ.
Oracle đã xác nhận vấn đề (lỗi # 9648040) và đó là ưu tiên hàng đầu. Trong thời gian chờ đợi, các giải pháp thay thế có thể là:
- Quay trở lại 11gR1 / ứng dụng khách cũ hơn
- Thêm 'Tự điều chỉnh =false' vào chuỗi kết nối. Tất nhiên, bạn sẽ mất đi những lợi ích của việc điều chỉnh tự động.
-Scott