如果服务器使用IIS,并且部署了很多站点。最常见的一个现象是w3wp.exe进程占用CPU很高,或使用较多虚拟内存的情况。通常解决思路是增加内存,由于成本低廉,效果还是相当不错的。如果还不能解决问题。可以考虑以下三个方案:
一、通过使用 IIS 管理器来启用 CPU 监视
在命令行下输入inetmgr,进入IIS管理单元,选本地计算机--应用程序池——设置即可。
可以参看微软官方设置:
http://technet.microsoft.com/zh-cn/library/cc779108%28WS.10%29.aspx
http://technet.microsoft.com/library/bb878105
此方案的缺点也是显而易见的,首先网站应用池较多时设置极为不便,其次是即便设置了,大多数情况下并不能正常work。微软给出的解释是网络情况太过千变万化了,囧一个。
问题出现了总得有个解决方案啊,于是,Microsoft推出了一个增强版的资源管理器,简称WSRM,全称是Windows System Resource Manager(windows系统资源管理器)
二、使用WSRM管理CPU使用率
下载地址:http://www.microsoft.com/china/windowsserver2003/technologies/management/wsrm/default.mspx
IIS7下使用:http://learn.iis.net/page.aspx/449/using-wsrm-to-manage-iis-7-apppool-cpu-utilization/
三、自主解决方案
可以写个windows serveice,来定期侦探CPU使用,此方法需要考虑多核情况,基本思路是:在一段平均时间内如1分钟,持续不低于70%,那基本是不会自动降下去,此时需要手动重启。调用" IISreset"命令即可。
小结:方法二可靠性高。方法三灵活性高。