当 CPU 通过 IIS 高级 CPU 设置达到峰值时终止 W3WP

Kill W3WP when CPU spikes through IIS advanced CPU settings

我们在生产中有一个问题网站,该网站一直导致间歇性 CPU 峰值。 目前很难找到。在找到根本原因之前,我们想使用 IIS CPU 高级设置来回收网站 iis 池。

为了对此进行测试,我在开发环境中创建了一个带有一个端点的简单 Web api。该端点除了模拟完成工作的 CPU 峰值外什么都不做。

现在我已经将 CPU 设置配置为

限制:70 => IIS8所以是%,值必须在0~100之间

限制动作:KillW3wp

限制区间:1

我已经重新启动了 iis 池和网站,然后我调用了我在上面创建的端点。 我经常看到 CPU 超过 90%。

问题;

  1. 上面的虚假网站名为“KillCPU”,当我调用KillCPU端点时,是否应该创建IIS工作进程来处理请求?但是我查看了任务管理器,它显示 KillCPU.exe(按计划消耗 CPU)

  2. 当CPU使用率超过70%时,为什么KillCPU.exe没有被kill?不仅任务管理中仍然出现该进程,而且当我查看事件查看器时,我也看不到任何事件日志。

有人可以帮忙吗?

此致

经过我的测试发现进程会被kill掉,但是任务管理器会有延迟

killCPU.exe和w3wp.exe不是同一个进程,需要区分。 IIS杀w3wp.exe,你创建的应用程序killCPU.exe不会被杀

我设置limit为最低值1,应用CPU占用率为12%。在资源监视器中,w3wp.exe还是运行,但是应用程序已经返回了503错误,IIS中的应用程序池已经停止。如果从IIS中的工作进程查看进程信息,会显示w3wp.exe仍然存在,但状态为停止。

你可以把limit设置为1再测试。如果还是杀不掉w3wp.exe,可能是IIS有问题。请重新安装。