zoukankan      html  css  js  c++  java
  • 如何使用Windbg 查Cpu飙升问题

    1、首先下载Windbg

    2、打开Windbg    设置  File-〉Symbol Search Path 地址如下 

         C: Symbols; SRV*C:MyLocalSymbols*http://msdl.microsoft.com/download/symbols";SRV*c:mysymbol* http://msdl.microsoft.com/download/symbols

    3、打开Windbg 将进程转存的进程文件 拉进Windbg

    4、在Windbg界面 输入加载命令 .load C:WindowsMicrosoft.NETFramework64v4.0.30319sos.dll  加载sos.dll

    5、运行 !runaway 命令    runaway 命令 有三种模式 

    !runaway命令显示每个线程消费的时间

    Bit 0 (0x1) 让调试器显示每个线程消耗的用户模式时间(user time),默认不加就是0x1
    Bit 1 (0x2) 显示每个线程消耗的内核时间(kernel time)。
    Bit 2 (0x4) 显示每个线程从创建开始经历了多少时间。
    就是三者的组合:1 2 3 4 5 6 7
    运行!runaway 1

    28线程占用的内核时间最长,其次是 35 37,

    ~28s 切换到线程28 

     

    6、查看线程的调用堆栈  !clrstack   察看的是ManagedCode的堆栈 

    7 !dumpstack查看native和managed的堆栈

     

    8、有的时候线程池会使造成问题的根本原因 使用 !threadpool  查看,针对 我本地的这个问题  可以看到就是因为线程池问题引起的 

  • 相关阅读:
    [nodejs] 静态资源服务器
    [nodejs]fs 读数据流和写数据流
    [nodejs]fs文件模块-练习
    [nodejs] fs文件模块
    利用SqlServer触发器自动更新表updatetime字段值
    python发送邮件至多人
    mybatis-plus获取Timestamp类型,无法获取变量null
    1.iOS第一个简单APP
    Mysql浅析
    Nginx编译安装Lua模块
  • 原文地址:https://www.cnblogs.com/liwenchaoCode/p/9232731.html
Copyright © 2011-2022 走看看