收藏 分享(赏)

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

上传人:HR专家 文档编号:11253729 上传时间:2020-03-04 格式:DOC 页数:3 大小:89.17KB
下载 相关 举报
w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法.doc_第1页
第1页 / 共3页
w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法.doc_第2页
第2页 / 共3页
w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法对于 IIS 管理员来说,经常会碰到 Web 服务器 CPU 占用 100% 的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析 w3wp.exe(IIS ) 占用 CPU 100% 的一些原因 和解决方案,希望能对你有所帮助w3wp.exe 的解释 : 全名,IIS Application Pool Process。 w3wp.exe 是 IIS 工具的一部。w3wp.exe是在 IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个 w3wp.exe 的进程实例运行

2、。这个进程用来分配大量的系统资源。 引起 w3wp.exe(IIS ) Cpu 占用 100% 的常见原因如下:1. Web 访问量大,从而服务器压力大而引起的这个也是最常见的情况。如果 Web 访问量大,特别是同时在线人数过多,处理的 Requests Current(当前请求数)过高,就会同时对 IIS 和服务器造成较大的压力。特别是 服务器需要不断的运算,往客户端发送生成后的页面,这些都需要占用大量的 CPU 资源,从而造成 Cpu 100%2. 动态页面(.aspx)的程序逻辑复杂程度这个问题,对 w3wp.exe 的 CPU 占用 来说也是蛮严重的,可能在访问量级比较小的情况下并没有

3、多少影响,但是在高并发的网站上面来说,特别是 Asp.NET 的 Requests Current 超过 250 的时候,将会是 w3wp.exe 占用 CPU 的一个重要的因素。我曾经碰到过这样一个情况,两个 web(A 和 B) 在两台 配置相当的 服务器中部署,且两个站点的访问量都很大,访问页面都集中在两个站点的两个单独页面,且这两个页面 的 IIS 连接数都是 50个左右,但是页面程序的复杂程度就错了很多,A 站点中的页面,只有几个 简单的 Repeater 绑定,而 B 站点中的页面,则有大量的绑定、字符串过滤替换、Repeater 嵌套绑定等等。这样的情况,在 大流量、高并发的环境

4、中,A 站点 在 IIS 连接数 达到 3 W 多的时候,CPU 占用仍然是 50 % 左右,而 B 站点在 IIS 连接数 达到 7K 左右的时候,CPU 就 90% 多了,造成了 服务器的压力很大,并且 IIS 遭到了堵塞。3. 页面程序中有死循环如果 Web 访问量不大,但是 CPU 却占用很高,那么页面中的程序肯定有死循环或者性能比较严重的 程序语句4. Http 方式下载的站点如果站点是 HTTP 形式下载站,也遇到过 w3wp.exe 占用 CPU 100% 的情况5. 服务器资源不会自动释放有时,一个站点的流量在一个小时内陡增,结果操作系统分配了比较多的 CPU 资源,但是当流量

5、下去后,w3wp.exe 占用的 CPU 并没有及时释放,仍然在保持在 90% 以上6. 对 IIS 日志文件操作比如此时分析 IIS 日志文件里面的数据,把 IIS Log 日志导入到数据库中等操作,也会造成此现象解决办法:1. 快速定位到出问题的站点利用 iisapp -a 命令,快速的定位到出问题的站点。当然如果当前服务器只跑了一个 web 站点,那么此步骤可以跳过在 cmd 中 输入 iisapp - a ,会出现下图中的信息:当然,这个要求你没个站点,都要有独立的应用程序池与之对应,应用程序池的名称,最好就是站点的名称,如下图:关于 IIS 的应用程序池的配置,这里就不说了,不懂的可

6、以 search 下之后,再打开任务管理器,如下图:观察进程为 w3wp.exe 的,查看那个 CPU 占用的高,再利用其 PID 于 iisapp 中列出的结果对比,就能轻松的找出是那个站点占用的 CPU 过高了2. 重启 IIS 和 应用程序池此步是紧急处理,一般都是治标不治本的步骤。如果你的站点搭建的有 负载均衡(负载均衡、NLB),那么请在 负载均衡(负载均衡、NLB)把当前服务器下了,然后重启。如果你没有 负载均衡(负载均衡、NLB ),而且你的站点又是在线的,那么,就悲剧 10 多秒吧,短暂的不能访问吧3. 给页面加上页面级别缓存如果 Web 是 Asp.Net 程序,那么请一定要 。但是有好多人都没有用好 OutputCache ,导致经常出现下载页面的问题,所以都放弃了使用,这里有 OutputCache 导致页面下载的解决办法 。OutputCache 非常有用,好处有三:直接从内存读页面,页面响应速度更快,用户体验更好;大大的降低了服务器的压力,特别是对于高并发的网站,特别是 CPU 的压力;减少了 DB 的强求,降低 DB(数据库)的压力。4. 检查页面逻辑如果 WEB 流量很低,但是还有 w3wp.exe(IIS ) CPU 占用 100% 左右的情况,那么就检查页面的代码逻辑吧,很有可能是死循环或大量的运算导致。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 规章制度

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报