【发布时间】:2010-08-04 20:51:25
【问题描述】:
我有一个 Windows 2003 Server,我需要编写一个服务,当 CPU 使用率超过 90% 超过 5 分钟时,该服务会向我发送电子邮件。我怎么能这样做?
【问题讨论】:
标签: c#
我有一个 Windows 2003 Server,我需要编写一个服务,当 CPU 使用率超过 90% 超过 5 分钟时,该服务会向我发送电子邮件。我怎么能这样做?
【问题讨论】:
标签: c#
首先你会像这样读取处理器负载:
How to get the CPU Usage in C#?
其次,您必须使用一个计时器,它会在某个时间间隔内检查处理器时间。当我们谈 5 分钟时,来自 .Net 的标准计时器足够精确。间隔可能是几秒钟。在 Tick 上,您测量 CPU,如果它低于 90%,则重置一些 start-DateTime,如果超过 90%,则检查 start-DateTime 是否超过 5 分钟。
最后你需要发送这样的邮件:
这种方式使用可以在本地安装的 SMTP 服务器,或者您可以为您的一封电子邮件等正确地使用 SMTP。您也可以发送邮件而无需更多开销。在 Stackoverflow 上搜索 :)
【讨论】:
您的 Windows 服务需要定期调用 WMI in a manner similar to this 并确定是否通知您。
【讨论】:
以适当的时间间隔读取适当的性能计数器。如果收集的数据符合您的标准,则执行您想要的操作。
许多类似的事情已经可以使用性能监视器警报等工具完成(包括启动应用程序)。
【讨论】: