主机系统Azure- WorkerRole无法访问角色

我正在使用Worker Role机器(Medium - > 2 Core with 3,5 GB of Ram)来完成大量工作,我可以使用100%的CPU(两个内核)和85%的RAM .

在这项工作中,每个花费大约20分钟/ 40分钟,Azure认为机器不 Health 并停止我的所有工作 . 在Portal中,我看到我的worker实例收到消息“等待状态(主机系统无法访问角色) .

任何人都可以知道一个不包括的工作:1)使用更强大的完整角色与我不会使用的核心2)尝试通过我的应用程序减少CPU使用率(100%CPU使用率是我们想要使用的)

在此先感谢瑞

回答(2)

3 years ago

试试这个:

Thread.CurrentThread.Priority = ThreadPriority.BelowNormal

也许其他一些事情(进程,线程)也需要较低的优先级,但这应该将cpu利用率保持在100%

对于(外部)进程,使用以下代码启动它们(这是vb,但您应该能够将其转换为您的语言

Dim myprocess As New System.Diagnostics.Process() 
myprocess.StartInfo.FileName = "C:\the\path\to\the\the\process.exe" 
myprocess.Start() 
myprocess.PriorityClass = ProcessPriorityClass.BelowNormal

你可以设置当前工作者角色的优先级 but this might be dependent of other processes so watch out ,最好将要求过程的优先级设置得更低,这不会减慢它的速度,除非有其他工作需要进行描述

Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.AboveNormal

3 years ago

这也影响了我在Windows Azure中运行的服务 . 我刚尝试手动将WaAppAgent的优先级设置为高 . 希望这会有所帮助 .

但真的这不应该是我的问题 . 有时我的数据库以100%CPU运行,这真的是重启的最短时间 .

我真的不想过度配置资源,所以一些心跳会很高兴 . VM实例也有心跳事件吗?也许解决方案是切换到使用VM而不是使用PaaS角色?