0

我有一个运行多个并行后台工作人员的工作人员角色。这些工作人员运行的任务持续时间从一分钟到 5 小时不等,并且会占用大量内存。

我想通过测试当前的内存消耗水平来延迟新工人的启动。像这样的东西:

while (memoryAvailable < 50%) {

    Thread.Sleep( 1000 * 60 * 10 ); // 10 minutes

}

我可以测试辅助角色中的可用内存吗?

另外,如果内存低于一定数量,我可以自动重启实例吗?

4

1 回答 1

1

由于您的辅助角色实例是 Windows Server 2012,因此您可以在角色启动 ( OnStart()) 期间使用您感兴趣的任何相关Memory计数器设置适当的性能计数器,并设置一个任务来定期观察性能计数器。当可用内存低于您的阈值(或提交的字节数超过您的阈值)时,您可以轻松地回收角色实例:

RoleEnvironment.RequestRecycle();
于 2013-09-10T17:37:44.830 回答