IIS 7.5中应用程序池的CPU限制


Answers:


4

这看起来像是模拟(或访问源代码...> sigh <)的情况之一,这将是唯一有把握地查看行为状态的方法。

CPU配额回收事件日志条目的文档对回收进行了如下讨论:

默认情况下,应用程序池回收是重叠的,这意味着要关闭的工作进程一直保持运行状态,直到启动新的工作进程为止。新的工作进程启动后,新的请求将传递给它。旧的工作进程在完成对现有请求的处理后或在配置的超时后(以先到者为准)关闭。这种回收方式可确保为客户提供不间断的服务。但是,如果应用程序池中的应用程序一次不能运行多个自身实例,则可以禁用重叠旋转。

在我看来,按照定义,由于CPU消耗过多而终止工作进程将意味着将不允许完成待处理的请求(因为它们已经耗尽了CPU配额)。

谈到您的主要关注点:我没有看到任何让我相信不会自动启动新工作程序的东西。堆栈溢出链接中的语句确实使我感到疑问,IIS使用的算法是否实际上可以将回收与用于测量CPU配额耗尽的计时器的分辨率联系起来。我知道确定的最佳方法是编写一个浪费CPU的服务器端组件,将其部署到测试环境中,并查看其回收行为。一个简单的组件处于紧闭的循环中几秒钟,然后返回一个已知的字符串,再加上一个运行测试工具的客户端(带有并行的“ wget”进程池),可能就足够了。


Ya看起来我可能只需要对其进行测试。我已经在python中编写了一个卸载测试脚本来测试这种方便的事情...必须使用套接字和http库的被黑客入侵的版本,这样我才能绑定到不同的源IP :-)
Kyle Brandt

一个请求可能就足够了……计算pi的Web应用程序
Kyle Brandt 2010年

@Kyle:不过,我不会提出无限要求。一旦您收到一些“正在处理中”的请求,我就会做一些事情,使服务器的CPU饱和,但最终会返回结果。这样,您的测试设备就可以报告所发出的所有请求的成功/失败。否则,您不知道回收行为是否确实导致了客户的服务中断。
埃文·安德森

哦,我明白您的意思了……这并不是本次测试的主要目标……但是拥有的好信息。我只想看看它何时被杀死,它是否回来。5分钟内,CPU限制可能会达到90%,而使用率可能会达到5-10%。基本上,它坏了:-)
凯尔·布​​兰特

我自己的测试显示,刷新应用程序池1分钟,CPU限制为1(非常小),当达到限制时,将记录系统事件5025,并且应用程序池停止,从而杀死w3wp进程。时间限制结束后,将重新启动应用程序池。
glasnt 2012年

4

鉴于其他回复中的评论,我已经完成了自己的测试,并将在此处进行复制。

在我的测试中,在启用KillW3WP操作的情况下将应用程序池(集成v4.0)限制为较小的CPU限制(0.01%)和较小的间隔(1分钟),超过此限制将通过停止应用程序池来杀死w3wp 。

达到时间间隔限制后,应用程序池将自动重新启动

将操作更改为“ 无操作”不会更改w3wp进程。

在两种情况下,都会记录系统事件5025。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.