Azure Web 앱은 매우 느리다
프로덕션 앱의 워밍업 시간이 느리다는 것을 조사했는데 예상치 못한 결과가 나왔습니다.
다양한 Azure VM을 대상으로 테스트한 결과 애플리케이션 서버의 퍼포먼스와 밀접한 관련이 있는 것으로 나타났습니다(SQL을 포함한 외부 요구는 아닙니다). 그러나 흥미로운 점은 Azure Web Apps 및 로컬 머신과의 비교입니다(모든 시간은 평균 3회 실행 시).
VM A0: >1m
VM A2: 13s
VM D2V2: 6.8s
VM D5V2: 7.8s
Wep App P2: 25s
Web App S2: 26.5s
My local machine: 6.6s
로컬 머신은 3.3을 탑재한i5입니다GHz.
로컬 머신은 인터넷을 통해 동일한 SQL Azure 데이터베이스에 연결되어 있어도 가장 빠릅니다.또한 요청에는 Entity Frameworks의 모델체크가 포함됩니다.
모든 테스트는 를 사용합니다.현시점에서의 최신 릴리스인NET 4.6.1.
명백한 결론:
- 4년 된 데스크탑 박스는 병렬화할 수 없는 작업에 사용할 수 있는 Azure VM 크기보다 빠릅니다.
- Azure Web Apps는 한 달에 500달러를 쓰고 싶어도 감자로 작동합니다.
이거 수상하네요.또 무슨 일이 벌어지고 있는지 짐작 가는 거라도?또는 무엇을 테스트할 것인가?
프로파일링 후 편집:다음 중 어느 것도 제 질문에 대한 해명은 없지만, 여전히 흥미로운 정보입니다(프로파일러가 연결되어 있는 동안 총 요청 시간이 20초인 다른 A2 VM에서 테스트됨).
- 58%가 잠자고 있다.
- 파일 IO 차단은 사실상 제로입니다(이전에 앱이 시작되었기 때문에 필요한 dll 부분은 모두 메모리 캐시에 있습니다).
- 1% 미만이 SQL Azure 요청입니다.
- 따라서 나머지 90%의 실행시간은 입니다.NET 실행 또는 프로파일러 오버헤드
- 프로파일러 자체는 상당한 오버헤드가 있습니다.프로파일러가 없으면 요구가 약 15초 안에 실행되기 때문입니다(JetBrains dotTrace를 사용해 보았습니다만, 매우 마음에 듭니다).
- 시간의 50%는 Entity Framework를 사용한 첫 번째 요청 중이고, 80%는 JIT입니다.
- 15%가 SignalR의 첫 번째 사용으로, 거의 지트가 없습니다(일부 반사 의미 없음).
병렬화는 거의 이루어지지 않고 있습니다.
처음에 Azure App Service - Web App (Resource Group 1에서 호스팅됨)과 Azure SQL 데이터베이스 (Resource Group 2에서 호스팅됨)를 도입했을 때 앱이 매우 느렸습니다.제가 저지른 실수는 두 RG1 반드 RG2가 서로 다른 위치에 있었다는 것입니다.나중에 두 RG의 위치를 동일하게 변경(실제로 재작성)하자 WebApp이 원활하게 실행되기 시작했습니다.
고마워, 프라윈
저도 같은 문제가 있어서 사이트 콘텐츠(사진 및 비디오)를 Azure Blob Storage로 이동 또는 복사하여 수정했습니다.Azure CDN을 WebApp, VM, 클라우드 서비스 및 커스텀 오리진으로 구성할 수도 있습니다.thsi Azure CDN을 시도하면 사이트 로딩 시간이 단축됩니다.
언급URL : https://stackoverflow.com/questions/36966505/azure-web-apps-are-really-slow
'programing' 카테고리의 다른 글
UITapGestureRecognizer가 UITableView didSelectRowAt를 중단합니다.인덱스 패스 (0) | 2023.04.21 |
---|---|
CustomBinding MarkupExtension의 Resharper 해결 경로를 만드는 방법 (0) | 2023.04.21 |
'치명적' 수신:Git repo 원격 추가를 시도할 때 Git 저장소가 아님" (0) | 2023.04.21 |
백그라운드에서 앱을 열 때 ViewDidEar가 호출되지 않음 (0) | 2023.04.21 |
Visual Studio에서 기본 컨트롤 템플릿을 추출하는 방법 (0) | 2023.04.16 |