- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 .NET 3.5 网站,偶尔会挂起并达到 100% CPU。通过 WinDbg 运行转储显示我的大约一半线程位于
System.Reflection.CerHashtable`2[[System.__Canon, mscorlib],[System.__Canon, mscorlib]].get_Item(System.__Canon)
另一半坐在
System.Reflection.Emit.DynamicMethod.CreateDelegate(System.Type)
它们都在 LINQ-to-SQL 查询中间。有人知道这里会发生什么吗?数据库似乎保持响应,至少在问题发生时来自 SSMS。
如果有人需要更多信息才能继续,请告诉我。
编辑:
有 22 个线程。 (当我说一半时我是在概括)这是 !threads 的输出
ThreadCount: 23UnstartedThread: 0BackgroundThread: 22PendingThread: 0DeadThread: 1Hosted Runtime: no PreEmptive Lock ID OSID ThreadOBJ State GC GC Alloc Context Domain Count APT Exception 7 1 19a0 00000000022c7710 8220 Enabled 0000000000000000:0000000000000000 00000000022a2940 0 Ukn 27 2 1fa0 0000000005591f90 b220 Enabled 00000001a0425058:00000001a04266c0 00000000022a2940 0 MTA (Finalizer) 29 3 4824 0000000006550450 380b220 Enabled 000000012213cf18:000000012213dec0 00000000067500a0 1 MTA (Threadpool Worker) 30 4 40c8 00000000061378c0 380b220 Enabled 00000001c1f84c38:00000001c1f860f0 00000000067500a0 1 MTA (Threadpool Worker) 31 5 2a54 0000000006138770 180b220 Disabled 0000000101e3c858:0000000101e3db00 00000000067500a0 2 MTA (Threadpool Worker) 32 6 1984 000000000613c940 180b220 Enabled 0000000000000000:0000000000000000 00000000067500a0 0 MTA (Threadpool Worker) System.ObjectDisposedException (000000017fffe458) 33 7 18d8 000000000613eb80 380b220 Enabled 00000001820c3a30:00000001820c3c90 00000000067500a0 1 MTA (Threadpool Worker) 34 8 31f4 0000000006141d10 380b220 Enabled 0000000122147048:0000000122147ec0 00000000067500a0 1 MTA (Threadpool Worker) 35 9 5fe4 00000000061427c0 180b220 Enabled 00000001e1ffbdc8:00000001e1ffc190 00000000067500a0 2 MTA (Threadpool Worker) 36 a 3768 0000000006143270 180b220 Enabled 00000001e200add0:00000001e200c190 00000000067500a0 1 MTA (Threadpool Worker) 37 b 1820 000000000670fa10 80a220 Enabled 0000000000000000:0000000000000000 00000000022a2940 0 MTA (Threadpool Completion Port) 38 c 1220 000000000673e160 1220 Enabled 0000000000000000:0000000000000000 00000000022a2940 0 Ukn 39 d 507c 0000000008c1f9b0 180b220 Enabled 0000000101e392d0:0000000101e39b00 00000000067500a0 2 MTA (Threadpool Worker) 14 e 651c 000000000a507000 880a220 Enabled 0000000000000000:0000000000000000 00000000022a2940 0 MTA (Threadpool Completion Port) 40 f 14a0 000000000ab0a850 380b220 Enabled 00000001a15886c0:00000001a158a638 00000000067500a0 1 MTA (Threadpool Worker)XXXX 10 0 000000000bd7c7b0 9820 Enabled 0000000000000000:0000000000000000 00000000022a2940 0 MTA 42 11 48d8 000000000c00c120 380b220 Enabled 0000000000000000:0000000000000000 00000000067500a0 0 MTA (Threadpool Worker) 3 12 6180 000000000c00c6f0 220 Enabled 0000000000000000:0000000000000000 00000000022a2940 0 Ukn 43 13 3798 000000000c00d290 180b220 Enabled 00000001420f9730:00000001420f9828 00000000067500a0 2 MTA (Threadpool Worker) 45 14 1be8 000000001184f150 180b220 Enabled 00000001c1f880e0:00000001c1f880f0 00000000067500a0 2 MTA (Threadpool Worker) 48 15 13ec 000000001184f720 200b220 Enabled 0000000000000000:0000000000000000 00000000067500a0 1 MTA 49 17 3bac 00000000198f1b20 180b220 Enabled 0000000182059020:0000000182059c90 00000000067500a0 2 MTA (Threadpool Worker) 50 16 4670 00000000197b6b00 380b220 Enabled 0000000162040fd0:0000000162042658 00000000067500a0 1 MTA (Threadpool Worker)
这是 !EEStack 的冗长结果(发布在 pastebin 上,因为它不适合这篇文章)
我正在使用 SQL 2005 标准
编辑:
这里的结果是 !syncblk,它将“CerHashtable”显示为所有者,尽管 CerHashtable 上的所有线程似乎都在等待锁?
Index SyncBlock MonitorHeld Recursion Owning Thread Info SyncBlock Owner 148 000000000e4ec1f8 12 0 0000000000000000 none 000000017fe48560 System.Reflection.CerHashtable`2[[System.Reflection.RuntimeMethodInfo, mscorlib],[System.Reflection.RuntimeMethodInfo, mscorlib]] Waiting threads:*** WARNING: Unable to verify checksum for NewRelic.Profiler.dll*** ERROR: Symbol file could not be found. Defaulted to export symbols for NewRelic.Profiler.dll - 29 30 33 34 40 50-----------------------------Total 252CCW 3RCW 5ComClassFactory 0Free 81
最佳答案
Linq-To-Sql was discontinued by Microsoft.
他们推荐使用 Entity Framework。
这不会是一次大修,因为您的 linq 代码我们仍然有效。您只需要重新创建数据模型。
对于 .Net 3.5,您可以使用 EF v1。
尝试从 http://www.microsoft.com/download/en/details.aspx?id=22 下载 Microsoft .NET Framework 3.5 Service Pack 1
它应该包括第一版 Entity Framework (EFv1),如 http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework 所述.
关于c# - 100% CPU,卡在 CreateDelegate 和 CerHashtable`2.get_Item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32641445/
我有一个 .NET 3.5 网站,偶尔会挂起并达到 100% CPU。通过 WinDbg 运行转储显示我的大约一半线程位于 System.Reflection.CerHashtable`2[[Syst
我是一名优秀的程序员,十分优秀!