Memory management Azure worker角色:如何从角色中查询内存使用情况并进行睡眠或重新启动

Memory management Azure worker角色:如何从角色中查询内存使用情况并进行睡眠或重新启动,memory-management,azure,azure-worker-roles,Memory Management,Azure,Azure Worker Roles,我有一个worker角色,它运行许多并行的后台worker。这些工作人员执行的任务持续时间从一分钟到5小时,占用了大量内存 我想通过测试当前的内存消耗水平来延迟新工作者的开始。大概是这样的: while (memoryAvailable < 50%) { Thread.Sleep( 1000 * 60 * 10 ); // 10 minutes } while(内存可用

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

我想通过测试当前的内存消耗水平来延迟新工作者的开始。大概是这样的:

while (memoryAvailable < 50%) {

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

}
while(内存可用<50%){
线程。睡眠(1000*60*10);//10分钟
}
我可以测试辅助角色中的可用内存吗


另外,如果内存下降到一定量以下,我是否可以自动重新启动实例?

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

roleenEnvironment.RequestRecycle();