如何降低W3WP.EXE占用的内存和CPU?结合网上的诸多建议,主要的解决办法是:

a.在IIS中对每个网站进行单独的应用程序池配置;

b.合理的配置你的应用程序池;

c.找出具体网站站点的程序问题。

问题描述

环境:win2003server+IIs+ASP+MSSQL

现象:每隔一段时间(不定,有时几分钟,有时半小时)出现一次网站打开非常缓慢,甚至有时会出现超时打不开站点,此时查看服务器端的进程,CPU占用率达到100%,其中w3wp占用超过80%,于是所有服务器端的操作也变得缓慢。

简单解决方法:每次现象出现时,立即登录服务器直接结束w3wp进程或重启IIS服务。

解决方案参考

针对该类问题,具体可参考如下所述方法来逐步寻找根本的解决途径:

1、在IIS中对每个网站进行单独的应用程序池配置,即使之互相之间不影响。(但需要注意一点:进程池越多越占用内存,由于访问网站之后往往不会立即释放内存资源。)

2、设置应用程序池的回收时间。默认为1720小时,可以根据情况修改。同时,设置同时运行的w3wp进程数目为1。再设置当内存或者cpu占用超过多少,就自动回收内存 。

3、设置固定时间回收进程。比如在凌晨1:00至9:00之前访问人数都比较少,影响很少小,可以设定每天在这个时间段内进行内存回收,以减少服务器因 为内存不足带来的影响。设定固定时间回收进程在IIS6中没有限制次数,所以可根据实际情况来设定时间。比如:晚上12:00,8:00,12:30,6:30等时间进行有效的进程池资源回收。

一般来说,做完以上操作就可以解决了。但仍然会可能出现因为个别网站的程序问题,不能及时释放资源。所以我们可以找出该网站,然后调试分析其程序问题所在。

那么,怎么样才能确定是哪一个网站呢?参考方法如下:

1、在任务管理器中增加显示pid字段。方法为:打开任务管理器-查看-选择列-选中“PID(进程标识符)”前的复选框。这样就可以看到占用内存或者cpu最高的进程pid。

2、在命令提示符下运行iisapp -a。注意,第一次运行,可能会提示没有js支持,点击确定进行注册,然后再次运行该命令就可以了。这样就可以看到pid对应的应用程序池。

3、到iis中察看该应用程序池对应的网站,进行更详细的分析,具体问题具体对待。

最后的补充

总结一些需要注意的问题:(摘)

1、 要限制一个站点的CPU使用,必须将该站点设置为独立应用程序池,共用应用程序池是无法限制单个站点的。IIS独立应用程序池,就需要独立的进程,非常消耗内存。独立池越多,就有越多的W3WP进程。对 于每个站点均要独立应用程序池的服务器,在一般的普通P43.0 2G内存 的普通服务器上,建议不要超过50个站点,最好30以内,不然服务器压力非常大。在配置上,我一般把资源消耗较大的网站独立一个池,一般普通BBS或者生 成HTML的系统大概5个站一个池。普通网站以及一些企业站点均共用一个池。

2、根据wlmmc的经验,在服务器硬件允许的情况下,一般不要限制站点内存使用,这样能够保证网站运行,不会出现用户掉线情况。需要限制某站的最大虚拟内存不要小于64M,不然可能出现一些未知的错误。

3、这些都不是根本解决办法,它的根本问题是网站程序有问题,要解决根本问题还要从程序查起。根据本文开头提到的方法查到具体的应用程序池,找到使用此应用程序池的网站,解决网站程序存在的问题,如死循环之类。

4、除了w3wp.exe, 在调用数据库进行大量查询操作的时候,也会大量占用CPU资源,这是难免的(数据库方面的语句及结构优化不在本文讨论范围之内)。个人认为,只要不是CPU长时间占用100%, 一般在75%左右都是正常的。

iis占用服务器内存,W3wp.exe 进程占用内存高消耗CPU近100%导致网站反应速度缓慢的解决方案...相关推荐

  1. mysql-nt.exe w3wp.exe cpu 100%_认识w3wp.exe进程,从根本上解决占用资源较大问题

    认识w3wp.exe进程,从根本上解决占用资源较大问题 发布时间:2019-12-14 16:19 来源:互联网 当前栏目:web技术类 在windows server 2003中对于每一个web应用 ...

  2. antimalware service executable占用内存过高_Win10系统svchost.exe进程占用内存和网速过高的解决方法...

    我们在使用Windows10系统的过程中,不少用户一旦发现电脑异常,例如异常卡顿,就会查看一下任务管理器,是否有进程过高占用了CPU.内存.网络等,而在任务管理器中发现了一个名称为"svch ...

  3. wsappx关不掉_win10系统下wsappx.exe进程占用内存大能关闭吗

    有不少win10系统用户在查看任务管理器的时候,发现有一个wsappx.exe进程占用内存大,但是又不知道wsappx.exe是什么进程,可以关闭吗?针对这个问题,小编这就给大家讲解一下win10系统 ...

  4. svchost.exe进程占用过高内存

    2019独角兽企业重金招聘Python工程师标准>>> 有时候打开电脑,反应特别慢,特别卡,查看任务管理器发现svchost.exe进程占用过高的百分比的CPU,很大的原因都是因为W ...

  5. 解决xlwings多个pid占用多个excel.exe进程,导致打开生成的Excel一片空白

    近来在搞根据yaml格式的文件,由yaml中输入的内容转换为Excel文件,使用xlwings模块,但是发现最后虽然使用app.kill(),但是还是有多个excel.exe进程占用,最初没有发现原因 ...

  6. 在windows和linux下如何查看80端口占用情况?是被哪个进程占用?如何终止等

    一.在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入&quo ...

  7. 服务器 显示w3wp.exe,关于windows2008+IIS7服务器中W3wp.exe问题

    1.概念 W3wp.exe:是IIS与应用程序池之间相关联的一个进程,有多少个应用程序池就意味着有多少个W3wp.exe进程实例运行.(据我理解的是,我的iis7配置了有3个虚拟目录,也就意味着我有3 ...

  8. 解决服务器上 w3wp.exe 和 sqlservr.exe 的内存占用率居高不下的方案

    SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数据和觉得你会用到的数据统统扔到内存中,直到内存不足的时候,才把命中率低的数据给清掉.所以一般我们在看sta ...

  9. 转载:解决服务器上 w3wp.exe 和 sqlserver.exe 的内存占用率居高不下的方案

    转载链接:https://www.cnblogs.com/feiyuhuo/p/5382777.html SQL Server是如何使用内存 最大的开销一般是用于数据缓存,如果内存足够,它会把用过的数 ...

最新文章

  1. MIMIC 以太坊医疗项目开发(3)nodejs安装
  2. RMI中部署时要注意的地方
  3. 【pycharm使用指南】pycharm 取消连按两下shift出现的全局搜索 | pycharm误触出搜索弹窗
  4. C语言实现linear search线性搜索算法(附完整源码)
  5. kafka配置_Kafka生产环境的几个重要配置参数
  6. Java延时队列DelayedQueue
  7. python爬虫 书籍 外文_Python爬虫——WuXiaWorld英文版小说
  8. RedHat Linux 5.2 网关及安全应用
  9. 51单片机最小系统原理图、PCB及组成原理详解
  10. vi使用手册(zt)
  11. c语言中void *的使用
  12. Liquibase集成达梦数据库、Activiti集成达梦数据库
  13. 中国科学院计算机网络信息中心考研,中科院计算机网络信息中心考研问答
  14. 电信光纤猫(HG8245)破解教程 开启无线网、路由器功能(第二章)
  15. 7-56 365次方
  16. 走进常熟东南相互电子,看AI如何深入产业让工厂更智能
  17. 松下plc和计算机通讯超时,[求助-西门子PLC200]S7-200与笔记本通信超时
  18. tkinter 设置不可编辑_「input不可编辑」input 不可编辑的方法 - seo实验室
  19. Python SMTP 发送带附件电子邮件
  20. (循环练习)海军礼炮问题

热门文章

  1. 编译Android源码前的一个步骤
  2. 电源完整性仿真让电路板更完美
  3. 17.matlab中各种文件的I/O操作2——fopen操作
  4. 基于小波shint/DCT编码压缩解压缩的FPGA实现
  5. C++重载、覆盖和遮蔽
  6. 大三下学期第四周总结
  7. 聊聊flink的logback配置
  8. 【go网络编程】-RPC编程
  9. Linux驱动技术(三) _DMA编程
  10. Delphi从Internet下载文件