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



我有Azure Worker Role和Web Role with ExtraSmall Instance.

我正在传递服务总线BrokeredMessage以从Azure Web角色更新实体。

我刚刚测试了更新实体,前三次在数据库中反映需要5秒。在那之后,每次更新都需要30多秒。我不知道为什么在Azure Worker Role中性能不一致?如果有人知道,请分享你的想法。

我正在同步发送和接收消息。

注意:Worker角色,每次更新我都连接数据库

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 
  ....
 }

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

这基本上是同步接收消息,这就是为什么慢。我将其转换为异步接收消息,性能非常出色。见此处

Azure Worker Role异步接收消息:我应该休眠多长时间?(毫秒)

最新更新