Azure Web App 回應時間較長

Azure Web App 回應時間較長

我開發了一個 RESTful api,並將其部署在 Azure Web App 上。在使用 JMeter 執行負載測試時,我發現回應時間很長,約 18 秒。這個回應時間讓我感到震驚,因為我公開的端點僅接收約 1-2KB 的文字資料並將其排入 Azure 服務總線佇列。

我進行了研究並發現以下內容:

  1. Azure Web App 和佇列需要位於同一區域。是的,他們是
  2. 虛擬機器的大小很重要。我的是S3大號
  3. 軟體設計需要良好/優化。控制器只進行入隊,沒有其他操作

為了進行負載測試,我在與 Azure Web App 相同的區域中配置了一個 VM 實例,以最大程度地減少延遲。入隊語句需要以毫秒為單位的時間,所以我想知道在服務載入時是什麼花了額外的秒數?

我的程式碼建立了 QueueClient 的單一實例,我將其重用於所有請求。程式碼就是 ApiController 中的以下兩行

ServiceBusManager.GetQueueWriter().Enqueue(data); //data is no more than ~1KB 
return Request.CreateResponse(HttpStatusCode.OK, "Data enqueued");

答案1

  1. 確保您的 Azure WM 執行個體在 CPU、RAM、磁碟和網路方面沒有過載。您可以使用以下任一方法來完成Azure 診斷擴充或者JMeter PerfMon 插件
  2. 確保您正在關注JMeter 最佳實踐
  3. 嘗試增加負載逐步地,這樣您就能夠將不斷增加的虛擬使用者數量與不斷增加的回應時間關聯起來,並能夠說明效能何時開始下降。
  4. 使用探查器工具遙測來執行您的測試(即連接你的工具包或者點追蹤) - 這樣您就可以知道您的應用程式在哪裡花了那麼多時間。

相關內容