当前位置: 首页 > 知识 >正文

wmiprvse.exe 占用大量cpu(wmiprvse占用cpu太严重)

在WINDOWS2003 iis6下,w3wp的内存占用往往不能及时释放,导致服务器响应速度慢。

实际案例

服务器配置

至强2.8G

内存512M

2个SCSI硬盘(软映像)

系统windows 2003

现在,一个由ASP.NET开发的网站已经挂了,但是有少量的访问者。问题是服务器每次运行2-3天,访问网站特别慢,重启服务器后就正常了。

看进程的内存使用情况,发现w3wp.exe和sqlservr.exe进程占用的内存相当大,达到170 m(各)以上,物理可用内存也差不多用完了(服务器重启时占用的内存只有40 m多)。

以前网站挂在虚拟机上,数据库单独挂,从来没有过。

后来原版本移植到新服务器上就出现了这个问题。

另一个问题是,当您在SQL企业管理器中查看SQL进程时,您会发现许多由。net在休眠,但是占用内存,无法释放。

采取措施:

IIS服务管理器-应用程序池-添加您的应用程序并设置最大内存。当程序达到最大内存时,它会自动重启。

内存升级到2G,流量比较高。一般运行差不多24小时就要重启了,内存还没用完。W3WP进程占了189兆,SQL占了200多兆,那就得重启了,不然整个站点就瘫痪了。

解决方案1:

W3wp.exe是你的ASP.NET申请的主人。如果使用大量的会话、缓存等资源,会话超市持续时间长,内存占用会比较大。应用程序池是一项旨在提高性能的功能。

但也消耗了大量内存。此外,在Windows Server 2003中关闭大多数服务(不需要时可以关闭)也可以节省一些内存。

1.怀疑应用在程序中的缓存,

2.2.CACHE中有大量数据。

3.经常刷新缓存

4.没有办法设计缓存。

解决方案2:

跟踪SQL的调用记录,记录每次写大量数据到缓存或SESSION的时间,看是否过于频繁。

1.2003年冬天,ASP.NET的进程是w3wp.exe。

2.512M内存足够个人使用,但在服务器上不够用,尤其是WIN 2003 ASP.NET SQL Server。尤其是sql server,它非常占用内存,如果不加以控制,

他会占用所有的物理内存(只有几十米下至100米)。Win2003本身将占用大约1.5亿英镑。什么都没有了。

3.优化asp.net程序,就向楼上的说的那样,少用或不用session cache application之类的东西,再有就是是不是有翻页的地方,翻页处理不好也是会占很多内存的。

4.限制sql的内存。企业管理器——SQL的属性(一般是local)——“内存”标签。在这里看内存的设置,把最大值改成100M。

解决方法三:

研究了一下,可以做以下配置:

1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。

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

一般来说,这样就可以解决了。但仍然会出现个别网站因为程序问题,不能正确释放。

那么,怎么样才能找到是哪一个网站的?

1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid

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

3、到iis中察看该应用程序池对应的网站,就ok了。

解决方法四:

建义2003系统安装至少1G内存。

w3wp.exe是2003下的一个iis进程,至于sql占用内存,那有可能是因为你的sql没有设置占用内存上限

在IIS6下,经常出现w3wp.exe的内存及CPU占用不能及时释放,从而导致服务器响应速度很慢。

解决内存占用过多,可以做以下配置:

1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。

2、设置应用程序池的回收时间,默认为1720小时,可以根据情况修改。再设置当内存占用超过多少(如500M),就自动回收内存。

解决CPU占用过多:

1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。

2、设置应用程序池的CPUjian视,不超过25%(服务器为4CPU),每分钟刷新,超过限制时关闭。

根据w3wp取得是那个一个应用程序池:

1、在任务管理器中增加显示pid字段。就可以看到占用内存或者cpu最高的进程pid

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

(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,

然后选“Microsoft (r) Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)

3、到iis中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。

相关文章:
  • 国泰中证消费电子主题ETF净值下跌1.06% 请保持关注
  • 6月8日基金净值:国投瑞银瑞利混合(LOF)A最新净值2.308,涨0.48%
  • 国泰中证沪港深动漫游戏ETF净值下跌5.03% 请保持关注_基金频道_证券之星
  • 6月14日基金净值:银华多元回报一年持有期混合最新净值0.7711,涨0.38%
  • 7月5日基金净值:华泰柏瑞质量成长A最新净值1.0168,跌1.6%
  • 5月18日基金净值:国寿安保稳鑫一年持有混合A最新净值0.9937,涨0.23%
  • 7月12日基金净值:易方达信息行业精选股票最新净值0.898,跌3.06%
  • 5月12日基金净值:景顺景颐嘉利6个月持有期债券A最新净值1.1529,跌0.38%
  • 嘉实上证科创板芯片ETF净值下跌3.59% 请保持关注
  • "狂砸"百亿资金,近千家私募角逐!第二届金长江实盘大赛,本周五上海"开奖",多位资方大佬重磅出席