首页 > 数据库技术 > 详细

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

时间:2019-03-08 15:24:24      阅读:214      评论:0      收藏:0      [点我收藏+]

现象: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分钟以上;

 

 

技术分享图片

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

 

 

技术分享图片

34号线程的kb

技术分享图片

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

技术分享图片

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

技术分享图片

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

技术分享图片技术分享图片

技术分享图片 

!syncBlk ; 

技术分享图片

 

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

原文:https://www.cnblogs.com/daydayup-0/p/10495762.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!