主编演示winxp系统下w3wp.exe进程CpU占用100%的步骤?
当前位置:主页 > 系统教程 > 主编演示winxp系统下w3wp.exe进程CpU占用100%的步骤?

主编演示winxp系统下w3wp.exe进程CpU占用100%的步骤?

发布日期:2019-08-07    作者:黑鲨系统官网    来源:http://www.gw3c.com
主编演示winxp系统下w3wp.exe进程CpU占用100%的步骤?

  咱们在管理网络过程中,很大概碰到web服务器CpU占用100%的问题,其实这主要是w3wp.exe进程占用CpU内存达到100%导致的。下面,小编就以windowsxp系统为例,给我们详解该问题的常见原因和具体处理方案。

  w3wp.exe的解释:

  全名:iisApplicationpoolprocess,w3wp.exe是iis工具的一部,w3wp.exe是在iis(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。这个进程用来分配大量的系统资源。

  常见原因如下:

  1.web访问量大,从而服务器压力大而引起的

  这个也是最常见的情况。如果web访问量大,特别是同时在线人数过多,解决的Requests Current(当前请求数)过高,就会同时对iis和服务器形成较大的压力。特别是服务器需要不断的运算,往客户端发送生成后的页面,这些都需要占用大量的CpU资源,从而形成Cpu 100%。

  2.动态页面(.aspx)的程序逻辑复杂程度

  这个问题,对w3wp.exe的CpU占用来说也是蛮严重的,大概在访问量级比较小的情况下并无多少影响,但是在高并发的网站上面来说,特别是Asp.nET的Requests Current超过250的时候,将会是w3wp.exe占用CpU的一个重要的因素。

  我曾经碰到过这样一个情况,两个web(A和B)在两台配置相当的服务器中部署,且两个站点的访问量都很大,访问页面都集中在两个站点的两个单独页面,且这两个页面的iis连接数都是50个左右,但是页面程序的复杂程度就错了许多,A站点中的页面,只有几个简单的Repeater绑定,而B站点中的页面,则有大量的绑定、字符串过滤替换、Repeater嵌套绑定等等。这样的情况,在大流量、高并发的环境中,A站点在iis连接数达到3w多的时候,CpU占用仍然是50%左右,而B站点在iis连接数达到7K左右的时候,CpU就90%多了,形成了服务器的压力很大,并且iis遭到了堵塞。

  3.页面程序中有死循环

  如果web访问量不大,但是CpU却占用很高,那么页面中的程序肯定有死循环或者性能比较严重的程序语句。

  4.Http方式下载的站点

  如果站点是HTTp形式下载站,也碰到过w3wp.exe占用CpU 100%的情况。

  5.服务器资源不会自动释放

  有时,一个站点的流量在一个小时内陡增,结果操作系统分配了比较多的CpU资源,但是当流量下去后,w3wp.exe占用的CpU并无及时释放,仍然在保持在90%以上。

  6.对iis日志文件操作

  比如此时分析iis日志文件里面的数据,把iisLog日志导入到数据库中等操作,也会形成此现象。

  处理办法:

  一、快速定位到出问题的站点

  1、利用iisapp-a命令,快速的定位到出问题的站点。当然如果当前服务器只跑了一个web站点,那么此步骤可以跳过。

  在cmd中写入iisapp-a,会出现下图中的信息:

  2、当然,这个要求你每个站点,都要有独立的应用程序池与之对应,应用程序池的名称,最好就是站点的名称,如下图:

  3、关于iis的应用程序池的配置,这里就不说了,不懂的可以search下。以后,再打开任务管理器,如下图:

  4、观察进程为w3wp.exe的,查看那个CpU占用的高,再利用其pid于iisapp中列出的结果对比,就能轻松的找出是那个站点占用的CpU过高了。

  二、重启iis和应用程序池

  此步是紧急解决,一般都是治标不治本的步骤。如果你的站点搭建的有负载均衡(负载均衡、nLB),那么请在负载均衡(负载均衡、nLB)把当前服务器下了,然后重启。如果你无负载均衡(负载均衡、nLB),而且你的站点又是在线的,那么,就悲剧10多秒吧,短暂的不能访问吧。

  三、给页面加上页面级别缓存

  如果web是Asp.net程序,那么请一定要<%@ outputcache="" duration="10" varybyparam="none">。但是有好多人都无用好outputCache,导致经常出现下载页面的问题,所以都放弃了使用,这里有outputCache导致页面下载的处理办法。

  outputCache非常有用,好处有三:直接从内存读页面,页面响应速度更快,网友体验更好;大大的降低了服务器的压力,特别是对于高并发的网站,特别是CpU的压力;减少了dB的强求,降低dB(数据库)的压力。

  四、检查页面逻辑

  如果wEB流量很低,但是还有w3wp.exe(iis) CpU占用100%左右的情况,那么就检查页面的代码逻辑吧,很有大概是死循环或大量的运算导致。

  winxp系统下w3wp.exe进程CpU占用100%的处理办法就为我们详解到这里了。碰到类似问题的朋友们,不要太过紧张,不妨按照小编的步骤尝试看看!

相关教程