我们在操作win7系统电脑的时候,常常会遇到win7系统w3wp.exe进程占用CpU内存过大的问题。那么出现win7系统w3wp.exe进程占用CpU内存过大的问题该怎么解决呢?很多对电脑不太熟悉的小伙伴不知道win7系统w3wp.exe进程占用CpU内存过大到底该如何解决?其实只需要利用iisapp-a命令,快速的定位到出问题的站点。当然如果当前服务器只跑了一个web站点,那么此步骤可以跳过;在cmd中输入iisapp-a,会出现下图中的信息:。。就可以了。下面小编就给小伙伴们分享一下win7系统w3wp.exe进程占用CpU内存过大具体的解决方法:
一、快速定位到出问题的站点
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%左右的情况,那么就检查页面的代码逻辑吧,很有可能是死循环或大量的运算导致。