【问题标题】:Alert when CPU usage stays over a limit for a period of time当 CPU 使用率在一段时间内超过限制时发出警报
【发布时间】:2010-08-04 20:51:25
【问题描述】:

我有一个 Windows 2003 Server,我需要编写一个服务,当 CPU 使用率超过 90% 超过 5 分钟时,该服务会向我发送电子邮件。我怎么能这样做?

【问题讨论】:

    标签: c#


    【解决方案1】:

    首先你会像这样读取处理器负载:

    How to get the CPU Usage in C#?

    其次,您必须使用一个计时器,它会在某个时间间隔内检查处理器时间。当我们谈 5 分钟时,来自 .Net 的标准计时器足够精确。间隔可能是几秒钟。在 Tick 上,您测量 CPU,如果它低于 90%,则重置一些 start-DateTime,如果超过 90%,则检查 start-DateTime 是否超过 5 分钟。

    最后你需要发送这样的邮件:

    Sending E-mail using C#

    这种方式使用可以在本地安装的 SMTP 服务器,或者您可以为您的一封电子邮件等正确地使用 SMTP。您也可以发送邮件而无需更多开销。在 Stackoverflow 上搜索 :)

    【讨论】:

      【解决方案2】:

      您的 Windows 服务需要定期调用 WMI in a manner similar to this 并确定是否通知您。

      【讨论】:

        【解决方案3】:

        以适当的时间间隔读取适当的性能计数器。如果收集的数据符合您的标准,则执行您想要的操作。

        许多类似的事情已经可以使用性能监视器警报等工具完成(包括启动应用程序)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-17
          • 2020-09-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多