1

ExtraSmallインスタンスでAzureワーカーロールとWebロールがあります。

Service Bus BrokeredMessageを渡して、AzureWebロールからエンティティを更新しています。

エンティティを更新してテストしました。最初の3回はデータベースに反映するのに5秒かかりました。その後、更新ごとに30秒以上かかりました。Azureワーカーの役割でパフォーマンスが一貫していない理由がわかりませんか?誰かが知っているならあなたの考えを共有してください。

メッセージを同期的に送受信しています。

注:ワーカーの役割、更新ごとにデータベースを接続しています

コードサンプル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 
  ....
 }
4

2 に答える 2

0

これは基本的に同期受信メッセージであり、それが遅い理由です。非同期受信メッセージに変換しました. パフォーマンスは優れています. こちらの投稿をご覧ください

Azure Worker Role Asynchronous 受信メッセージ: どのくらいの時間、スリープ状態にする必要がありますか? (ミリ秒)

于 2013-02-18T11:15:55.083 に答える
0

理由の 1 つは、物理コンピューターを 7 つの重いインスタンスと共有している可能性があります。それらが頻繁に機能すると、インスタンスが遅くなります。ただ、5秒から30秒は多い気がします。独自のインスタンスを使用するようにアップグレードし、再度テストして、パフォーマンスがより均等になるかどうかを確認できますか?

于 2013-01-16T11:28:51.297 に答える