根據負載關閉Windows服務

根據負載關閉Windows服務

我想知道是否有任何免費/開源解決方案可以根據負載啟動和停止 Windows 服務?我有一些 pubsub 訂閱者服務,它們執行並不重要的後台工作。理想情況下,我希望能夠實現自動化,以便這些服務可以在記憶體/CPU/磁碟 I/O 低於某個閾值時啟動,並在滿足該閾值時正常停止。你知道有什麼解決辦法嗎?謝謝太平紳士

答案1

Windows 中有一個內建軟體可以執行此操作,稱為Windows系統資源管理器(WSRM)它將執行您想要的操作,即基於資源的優先服務。

顯然不是開源的,而是作業系統自帶的。

答案2

我不知道有外部工具,但您可以監視服務內的相關效能計數器,如果您認為相關的效能計數器超過閾值,則不執行任何操作(休眠一段時間)。這與停止服務不太一樣(它仍然駐留在記憶體中),但應該達到預期的目的。

這種方法的好處之一是您不必擔心設定和配置外部工具,或監視外部工具是否仍在運作。

答案3

您可以設定一個可以在固定閾值上運行的警報(例如 CPU>=75)要在 Windows 上設定警報,請參閱連結 http://support.microsoft.com/kb/324752

因此,您可以為 CPU 使用率 >=75% 的情況設定警報,並作為您可以使用的命令列

      net stop svcName 

這將停止名為 svcName 的服務。

您可以將另一個警報定義為相反的 CPU 使用率 < 70%,並作為您可以使用的命令列

      net start svcName 

當你它低於閾值。

我在開啟和關閉之間保留了 5% 的餘量,不過您可以建立一個批次檔來延遲頻繁啟動和停止服務。

希望這可以幫助

相關內容