求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;

现象:asp.net (.net framwork 4.7) 32位进程 CPU 100%,站点无请求流量后2小时CPU还是100%;

问题1: 为啥这多线程申请8个字节数组触发了GC操作?
问题2:为啥34号线程gc操作要那么久,其它等待GC操作的线程等待死锁? (任务管理器中查看进程才使用不到1G内存,系统空余内存20G)

1、以下是dump文件的情况第 89 -115号线程 时长超55分钟以上;

 

 

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第1张图片

2、!Threads -special    34号线程在执行GC操作 挂起其它线程

 

 

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第2张图片

34号线程的kb

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第3张图片

89-115用户请求处理的工作线程调用堆栈如下,都是停留在获取一个随机数的业务方法,new一个8字节数组,然后触发了gc等待;

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第4张图片

SpnidUtil.getNewSpanid() 代码端,获取一个int64的随机数(入参 spanid=0,parentSpanid=-1)

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第5张图片

3、堆的gc 代统计( !HeapSata ) 以及线程死锁检测 ,堆空间总共才使用150M,但是每个Heap中的Gen0 Unroot占比都到 >90%

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第6张图片求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第7张图片

 

!syncBlk ; 

求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;_第8张图片

 

你可能感兴趣的:(求助 windbg 分析asp.net 32位进程 CPU 100%,站点无请求流量后CPU还是100%;)