.net - Weird multi-thread high CPU usage - "stealing" all threads? -
.net - Weird multi-thread high CPU usage - "stealing" all threads? -
i'm having weird issue in multithreaded .net application.
sometimes, go state process consumes much cpu can. when grabbed these numbers, total process cpu usage @ 98%. cpu usage of individual threads follow distinct pattern:
tid cpu 4324 ~32% 2708 ~ 9% 4936 ~ 3% [about 10 more threads ~3% cpu usage]
the tids of course of study vary 1 run another. usage numbers vary on time, 2 @ top remain in position.
when happens, application appears produce no more useful work. instance, not take new calls wcf service. nor background threads rely on timer produce expected output in log files (so either don't run, or logging blocked (log4net).
i can't seem figure out what's happening. does thread cpu usage pattern suggest particular problem?
this happens in 2 of applications, share little of own code. one wcf server, other wcf client. the wcf server uses nhibernate (with mssql). gc collection count not increasing while state ongoing. the applications windows services (so server self-hosts wcf). however, far i've seen state happening while executing visual studio (2010). .net 3.5i have looked, cannot find reason this. can't find busy loops. when set breakpoints in various places in threads run @ high cpu usage, never nail (that is, execution point remain deep in phone call stack, outside code). usually, phone call stack has low-level framework .net or native method current frame. exact method in fact vary if pause, check, go on , pause again.
any ideas on how figure out?
.net multithreading wcf garbage-collection
Comments
Post a Comment