2011年11月1日
摘要: 摘要:当一个.net应用在生产环境CPU突然居高不下,如何快速准确的定位问题所在,并且对实时业务影响最小化?如何不抓Dump也不用live debug就可以知道你的应用在做什么?如何确认你的应用是由于哪个线程的执行造成的CPU升高,该线程正在执行什么代码?分析:CPU升高的原因有很多,1、有时候应用的负载大了,CPU自然会受业务请求的增加和增高;2、有时候因为GC回收使用了过高的CPU资源;3、有时候是某个线程执行的代码在某种情况下陷入了死循环;4、有时候是因为锁争用太激烈,某资源上的锁释放后,等待的线程去抢锁引起的;5、有时候是因为线程太多,上下文切换太频繁引起的。6、每秒抛出太多的Exce 阅读全文
posted @ 2011-11-01 17:29 红叶林 阅读(5287) 评论(8) 推荐(4) 编辑