首页 文章

Azure Worker角色性能不一致 - 问题

提问于
浏览
1

我有ExtraManMare实例的Azure辅助角色和Web角色 .

我正在通过Service Bus BrokeredMessage从Azure Web角色更新实体 .

我刚刚用更新实体进行了测试,花了5秒钟在数据库中反映了前三次 . 之后,每次更新花费超过30秒 . 我不知道为什么Azure Worker Role中的性能不一致?如果有人知道请分享您的想法 .

我同步发送和接收消息 .

注意:工作者角色,我为每个更新连接数据库

代码示例WorkerRole类

public override void Run()
{
 while (true)
  {
   receivedmsg = CUDClient.Receive();
   UpdateProjectEntity(receivedmsg);
   Thread.Sleep(1000);
  }
}
private void UpdateProjectEntity (BrokeredMessage msg)
{       
  ProjectModel model = msg.GetBody<ProjectModel>();
  //connect federation database
  CrmEntities _db = Azure.ConnectCustomerEntity(model.ShardId);
  //update entities 
  ....
 }

2 回答

  • 0

    一个原因可能是您与7个重型实例共享物理计算机 . 当他们工作很多时,你的实例会变慢 . 但是,5秒到30秒似乎很多 . 你可以升级到使用自己的实例,再次测试,然后看看性能是否更均匀?

  • 0

    这基本上是同步接收消息,这就是为什么慢 . 我转换为Aynchronous Receive消息,性能非常好 . 请看这里的帖子

    Azure Worker Role Asynchronous Receive message: how long I should put the sleep for? (milliseconds)

相关问题