问题背景

最近使用一款系统,但是经常出现卡顿或者用户账号登录不了系统。后来将问题定位在了服务器中的“w3wp.exe”这个进程。在我们的用户对系统进行查询、修改等操作后,该进程占用大量的CPU以及内存资源,导致服务器运行缓慢,用户也是怨声载道。曾经尝试结束掉这个进程,但是没多久这个进程又“不知廉耻”的占用大量的CPU和内存。我是个懒惰的人,实在难以想象每次都需要到服务器中结束这个进程,所以想个解决办法一劳永逸!

W3wp.exe简介

下面是百度百科上的介绍:

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

常见问题

由于我们的服务器空间是刚划分出来的,发布了一个WEB站点,也就三两个用户在使用系统。所以初步断定是由于网站程序引起的。但是依然将常见的问题一一列举出来,以备不测。

  • 网站程序的死循环或大量运算引起进程占用大量系统资源
  • 服务器资源没有自动释放
  • 缓存文件资源引起的程序越来越慢
  • WEB站点访问量大

解决方案

1. 检查WEB站点。结束掉“W3wp.exe”进程,治标不治本,并不能从根本上解决问题。所以我们先要确定网站的应用程序池,查找到对应的网站检查网站程序。事实上如果你发布的WEB站点只有一个,那么就可以省去查找占用系统资源最高的PID进程对应的WEB站点了。但是通常情况下并不是这样的,所以把下面的解决方案贴上来。当然,在运行命令提示符“iisapp -a”的时候,如果系统没有任何提示,在“C:\windows\system32”中检查是否缺少这个脚本。

  • 在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
  • 设置应用程序池的CPU监视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。
  • 根据w3wp取得是哪一个应用程序池。

在任务管理器中点击“查看--选择列”增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid 在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到pid对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。) 到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。

2. 设置CPU监视。在设置CPU监视时,看到网上的许多资料都是IIS6的。所以请先注意下自己IIS的版本。例如我的版本是IIS7。右击WEB站点对应的应用程序池,选择“高级设置”。图示中若设置“已启用处理其关联=true”,那么服务器会在每隔一分钟监视一次CPU。若果超过95%的利用率,那么就会关闭掉“W3wp.exe”进程。完美解决我的问题,但是从网上对IIS7的各种分析来说,服务器监测关闭掉进程后经常不会重新启动新进程,必须手动重启。如果占用内存过多可以在对下面的“回收”进行设置。

3. 清理缓存文件。服务器长时间运行后没有定时清理缓存文件也有可能造成程序运行越来越慢。可以通过打开“c:\windows\temp\”目录,清空里面的缓存文件。或者直接通过cmd命令符”输入“ del c:\windows\temp*.* /s /q”。

W3wp.exe占用CPU及内存资源的更多相关文章

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

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

  2. w3wp.exe占用cpu特别高

    w3wp.exe占用cpu特别高,百度了一下在任务管理器标记出PID可以看到进程号. 试了一下,发现一个xxx网站占用cpu特别高,然后就结束了下进程,再重启网站cpu一下子降下来. 很奇怪,还需要具 ...

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

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

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

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

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

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

  6. 监控单个进程占用cpu与内存的使用情况

    #!/bin/bashinterval=1if [ "$1" != "" ]then interval=$1fiecho "检查时间间隔(单位秒):& ...

  7. docker高级应用之cpu与内存资源限制(转)

    时间:2015-06-09 14:01:52      阅读:1581      评论:0      收藏:0      [点我收藏+] 标签:docker资源限制   docker cpu限制    ...

  8. Kubernetes K8S之CPU和内存资源限制详解

    Kubernetes K8S之CPU和内存资源限制详解 Pod资源限制 备注:CPU单位换算:100m CPU,100 milliCPU 和 0.1 CPU 都相同:精度不能超过 1m.1000m C ...

  9. Linux下查看哪些进程占用的CPU、内存资源

    1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps a ...

随机推荐

  1. alert换行警示

    alert("再次向您问好!在这里,我们向您演示" + '\n' + "如何向警告框添加折行.")

  2. Android sdk安装目录中没有platform-tools目录问题详解

    sdk下载地址 http://tools.android-studio.org/index.php/sdk 安装步骤很简单,百度即可. 下面详细说一下,在安装中遇到android sdk下没有plat ...

  3. Gentoo rc-update service ‘net.eth0′ does not exist

    最近迷上了Gentoo,并相信以后也会把更多的精力放在Gentoo上,不过Gentoo的安装的过程的确让很多人却步. 本文只提到添加net.eth0到默认的运行级别时一个很小的报错解决. # nano ...

  4. Angularjs里面跨作用域的实战!

    好久没有来写博客了,最近一直在用Google的AngularJS,后面我自己简称AngularJS就叫AJ吧! 学习AngularJS一路也是深坑颇多啊--!就不多说了,不过还是建议大家有时间去学下下 ...

  5. 原生js实现ajax跨域(兼容IE8,IE9)

    html设置meta标签兼容360兼容模式和IE怪异模式 <meta http-equiv="X-UA-Compatible" content="IE=9;IE=8 ...

  6. Tomcat不同版本所对应的Servlet/JSP规范

    上午在别人机器上做演示,写好 Servlet居然访问不了.后来回想叻下,觉得应该是Tomcat版本不一致的问题,我用的是Tomcat 7.0建的Project,他们大多数都是用的6.0的版本.回来又仔 ...

  7. 微信小程序Http高级封装 es6 promise

    公司突然要开放微信小程序,持续蒙蔽的我还不知道小程序是个什么玩意. 于是上网查了一下,就开始着手开发..... 首先开发客户端的东西,都有个共同点,那就是  数据请求! 看了下小程序的请求方式大概和a ...

  8. Java编程的逻辑 (37) - 泛型 (下) - 细节和局限性

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  9. SpringMVC介绍及参数绑定

    本节内容: SpringMVC介绍 入门程序 SpringMVC架构 SpringMVC整合MyBatis 参数绑定 SpringMVC和Struts2的区别 一.SpringMVC介绍 1. 什么是 ...

  10. Storm介绍及核心组件和编程模型

    离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaba ...