Azure辅助角色:如何从角色内部查询内存使用情况以及睡眠或重新启动

时间:2013-09-10 16:24:47

标签: memory-management azure azure-worker-roles

我有一个工作角色,可以运行许多并行后台工作程序。这些工作人员执行的任务持续时间从1分钟到5小时,并且使用了相当多的内存。

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

while (memoryAvailable < 50%) {

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

}

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

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

1 个答案:

答案 0 :(得分:1)

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

RoleEnvironment.RequestRecycle();