Azure Web App의 높은 응답 시간

Azure Web App의 높은 응답 시간

Azure Web App에 배포한 RESTful API를 개발했습니다. JMeter를 사용하여 로드 테스트를 수행하는 동안 응답 시간이 ~18초 정도로 엄청나다는 것을 확인했습니다. 제가 노출한 엔드포인트는 ~1-2KB의 텍스트 데이터만 수신하고 이를 Azure Service Bus 대기열에 추가하기 때문에 이 응답 시간은 저를 놀라게 했습니다.

나는 다음을 조사하고 발견했습니다.

  1. Azure 웹앱과 큐는 동일한 지역에 있어야 합니다.네 그렇습니다
  2. VM의 크기가 중요합니다.내 것은 S3 Large입니다.
  3. 소프트웨어 디자인은 양호하고 최적화되어야 합니다.컨트롤러만 대기열에 추가하고 다른 작업은 수행하지 않음

부하 테스트를 위해 대기 시간을 최소화하기 위해 Azure Web App과 동일한 지역에 VM 인스턴스를 프로비저닝했습니다. enqueue 문은 밀리초 단위로 시간이 걸리므로 서비스가 로드되는 동안 추가로 몇 초가 걸리는지 궁금합니다.

내 코드는 모든 요청에 ​​재사용하는 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. 프로파일러 도구 원격 측정을 사용하여 테스트를 실행합니다(예: 연결YourKit또는도트트레이스) - 이렇게 하면 애플리케이션이 어디에서 그렇게 많은 시간을 소비하는지 알 수 있습니다.

관련 정보