windbg解决服务器cpu过高问题

1.背景

公司服务器A,每天的cpu非常高,但是看代码又看不出啥问题,解决方案只能一味的增加配置

 

 为了找出根源,让运维在服务器上任务管理器上 创建转存文件,保存dump文件后采用windbg进行分析

2.使用windows的windbg工具

 

 

然后执行命令:

.loadby sos clr

  

!runaway

  

 结果如下:

 

 

看着这样的结果,16 代表threadId,后面的时间是线程持续时间,然后找到一个进行分析,找一下时间比较长的 比如id=44的 持续时间是44s的线程

输入~44s:

 

 

然后输入:!clrstack

 

 

 

这个结果可以看到里面有几个业务相关的点:

第一:使用了文件相关的逻辑,FileStream==》Helpers.FileHeper.FileInUse,代码中发现这个方法在Lunz.Trace里面使用的,需要关注这块

第二:关于缓存Cache,里面有LocalObjectCacheStrategy,以及LocalCacheLock,这块也要看一下是否存在问题

posted @ 2021-12-21 15:41  DarryRing  阅读(361)  评论(2编辑  收藏  举报