![当 CPU/内存达到一定百分比时如何运行程序?](https://linux22.com/image/1501826/%E5%BD%93%20CPU%2F%E5%86%85%E5%AD%98%E8%BE%BE%E5%88%B0%E4%B8%80%E5%AE%9A%E7%99%BE%E5%88%86%E6%AF%94%E6%97%B6%E5%A6%82%E4%BD%95%E8%BF%90%E8%A1%8C%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
简单地说,我有一个非常非常有用的程序,我们把它称为“Bigbro”,它需要全天候运行,我编写了一个带有宏记录器的脚本来自动终止所有 BigBro 实例,并使用另一个脚本启动所有 BigBro 实例(它需要登录,我有一个脚本可以自行为我执行此操作)。
我遇到的问题是 BigBro 经常内存泄漏,有时运行一小时后,有时运行 5 小时后……我可以每小时强制重启一次,但这样我就无法使用我的电脑了,因为我会有一个基本上一直运行的脚本。我可以使用任务管理器,但它又很麻烦,我只想在 BigBro 的 CPU 使用率达到至少 30% 时将其关闭。
答案1
Windows 任务计划程序服务能够根据特定时间以外的其他条件运行计划任务。可以当事件日志中出现特定事件时运行任务。如果相关程序在开始运行时在事件日志中创建任何错误,您可以使用其中一个来触发您的脚本。
Windows 性能监视器工具还可以让您监视特定性能条件并根据这些条件触发事件。您可以创建性能监视器数据收集器,然后根据各种性能项目(包括 CPU 利用率、网络带宽、内存消耗等)创建警报。有关使用 Perfmon 的介绍可以在这里找到。说明书中提到了服务器 2012 和 Windows 7,但 Windows 10 中的 Perfmon 非常相似。
这些警报可用于在应用程序事件日志中写入一项,进而触发计划任务,或者在警报发生时直接运行特定的 WMI 任务。