W3wp.exe占CPU利用率100%的故障排除过程

W3wp.exe CPU 利用率 100 %的故障排除过程
 
3 11 接到下属的报障,说 XX 项目的接口服务器 CPU 得用率一直为 100% 。他们检查服务器系统安全与网络情况都正常。只是接口服务器上的 w3wp.exe 占用 CPU 利用率 99 %,一直不下来。于是我叫他先重启一下 IIS 服务看看,我随后就远程上去看看。我同事告诉我,重启 IIS 服务后故障仍然存在。此时我已经远程连接到该接口服务器上。以下就便是我结合其它同事进行故障排除的过程。
 
第一步:在任务管理器中进程中查看占用 CPU 最高进程,是三个 w3wp.exe 进程,这说明有三个 IIS 的应用程序池在运行。
 
第二步:应用程序池的检查
打开 internet 信息服务( IIS )管理器,检查正在运行的网站及网站所使用程序池。我发现有两个正在运行的网站以及他们主站所对应的程序池。如果按常理:一个网站对应一个应用程序池,那么就有一个应用程序池进程可能是病毒。而在应用程序池中有四个应用程序池是处于运行状态的。于是我先尝试禁用两个非主页对应应用程序,禁用后 CPU 利用率先下降一点后马上又恢复到 99 %,这说明主要原因不是来自这两个应用程序池,同时也说明这个两应用程序池是业务运行需要使用的应用程序池。于是我马上启动这两个应用程序池。
 
第三步:站点检查
上面检查说明问题不在应用程序池上,就应该出在站点上。于是我一一禁用主站点,发现禁用其中一个主站点时,那 3 CPU 利用最高的 w3wp.exe 进程的 CPU 利用率迅速下降为 0 %。这说明 CPU 利用率的主要来源于其中一个站点。为了搞清楚到底是该网站的那些访问造成 CPU 利用系统 100 %的,我开了 5 秒钟的 IIS 访问日志。打开 IIS 访问日志存在的目录,发现 5 秒钟的访问日志就有 30 M ,这说明 IIS 访问量很大。打开 IIS 访问日志后发现 95 %的访问日志是不同 IP 对接口服务器的同一个页面的访问,而访问的该页面为客户下载时需要访问的正常页面。于是我找了几个后台网站开发的同事来研究,他们都没有发现该页面的异常,但大家都同意我的看法:如此大量的访问量是不正常的。于是我便去找后台开发的开发经理,开发经理对 IIS 日志认真分析后,根据客户端下载的帐号及下载的内部版本号确认为客户端软件开发上 BLOG 。于是便将客户端软件开发经理找来一起分析这故障,最终找到故障产生的原因:由于昨天开通的客户端升级包更新的下载流量过大影响到其它业务而将客户端升级包下载的所用的升级服务器 IIS 停用了。而已经从接口服务器下载到升级插件的和升级包还没有下载完的客户端每 5 秒向接口服务器来查询一次新的可以使用的升级包下载服务器的地址。问题的产生根源找到了,解决方法就是在接口服务器中临时添加多台其它省的升级服务器来分担该省的升级包下载业务。
 
从该排除的过程,我们得到以下几个启示:
1.       W3wp.exe 占用 CPU 利用率高的排障过程。
2.       平时对工作一些细节上的留意。(只有后台的开发经理看内部版本号确认为客户端升级的问题)
3.       对于一个好的产品,也常常需要考虑到非常规操作对业务带来的影响。该故障产生就是来源于对升级过程的非正常操作,而开发经理按正常流程来开发产品,并将失败后的间隔时间设为 5 秒造成的。

你可能感兴趣的:(职场,休闲,CPU利用率100%,IIS故障,W3wp.exe)