我的应用程序有间歇性的问题。 它总是在相对较高的负载下(10-50瑞士币/秒)。 大多数情况下,它运行得非常好,CPU <10%。 有时(大约每周一次),在3分钟的时间内,它会突然上升到100%的CPU,然后停留在那里,导致服务器无响应,直到我杀死w3wp.exe。 我正在继续尝试debugging这个问题。 同时,我需要一个临时解决scheme。
是否有一个服务或工具,我可以用来监视w3wp.exe,并自动杀死进程,如果超过80%的利用率一段时间?
IIS可以自己处理这个问题; 您可以configuration应用程序池,使其CPU使用率在特定时间段内保持在特定阈值以上时被回收(即重新启动)。
我不知道你的环境中是否有其他机器,但是我build议在Nagios或者Zabbix或者类似的应用程序中join一些监控。 他们可以监控cpu /磁盘空间/内存使用情况/ etc等等…如果你的cpu使用率保持超过80%或90%,无论你认为太长的时间,那么你就可以让这个监控系统启动一个工作(zabbix是能够做到这一点,调用外部项目)来杀死该池。 有了这个解决scheme,有一个学习曲线,但是,你需要学习应用程序,并编写一个脚本来执行应用程序池重新启动…像.net应用程序或使用IIS应用程序来确定的VB脚本应用程序池负责,然后命令行杀死该进程。