Apa pun yang memicu kompilasi ulang (perubahan web.config, app_offline.htm, perubahan file .aspx, dll.) menyebabkan penggunaan CPU pada inti menjadi maksimal. Jika Anda mengulangi prosesnya, ini akan memaksimalkan penggunaan CPU pada inti berikutnya, hingga penggunaan CPU secara keseluruhan mencapai 100%.
Saya menghubungkan windbg dengan ekstensi sos dan sepertinya untuk setiap inti maksimal ada 1 utas yang macet di System.AppDomain.Unload(System.AppDomain) dan yang lain macet di Oracle.DataAccess.Client.OracleTuningAgent.DoScan().
Utas pertama
- 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()
Utas kedua
- 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)
Sepertinya AppDomain.Unload sedang menunggu di OracleTuningAgent.DoScan untuk menyelesaikannya, tetapi utas tersebut diblokir atau sedang tidur.
Oracle telah mengkonfirmasi masalah ini (bug # 9648040) dan ini adalah prioritas utama. Sementara itu, solusi yang mungkin adalah:
- Kembali ke 11gR1/klien sebelumnya
- Tambahkan 'Self Tuning=false' ke string koneksi. Anda tentu saja akan kehilangan manfaat dari penyetelan otomatis.
-Scott