我只是想知道当我们的网络服务可能陷入无限循环时,我是否可以处理。我知道第一个答案是不要有无限循环,我们已经测试了系统,应该不会发生循环。但是只是为了回退,有没有办法在 IIS 应用程序池上放置一些东西来说明 CPU 是否以 99% 的速度运行超过 1 分钟而不是回收应用程序池?
提前致谢
我只是想知道当我们的网络服务可能陷入无限循环时,我是否可以处理。我知道第一个答案是不要有无限循环,我们已经测试了系统,应该不会发生循环。但是只是为了回退,有没有办法在 IIS 应用程序池上放置一些东西来说明 CPU 是否以 99% 的速度运行超过 1 分钟而不是回收应用程序池?
提前致谢
没有 IIS 内置的方式来做类似的事情(回收选项允许您在每天的设定时间或在设定的分钟数后回收,基于达到虚拟或私有内存限制,或基于命中特定数量的请求 - 没有 CPU-ish)。
您可以构建自己的监视器来监视某些事件(例如 CPU 在一分钟内超过 99%)并导致循环发生(有多种编程方法可以做到这一点)。
在 IIS 7.0+ 中,这可以很容易地完成(尽管它不会回收应用程序池,而是终止进程,然后resetInterval
在到达时重新启动它)。请参阅:
http ://www.iis.net/configreference/system.applicationhost/applicationpools/add/cpu