2011-01-24 4 views
0

좋아, 이것은 비 과학적 질문입니다. 죄송합니다. Windows Azure (및 선호하는 SQL Azure 데이터베이스)를 사용하여 코드를 게시 (또는 업그레이드) 한 후에 정말 임의의 성능 문제가 발생하는 경우azure에 코드를 게시 할 때 성능에 미치는 영향

내가 본 내용은 게시 후 24 시간까지 걸릴 수도 있습니다. 그것은 단지 일반적인 대기 시간입니다. http (s) 요청은 반환하는 데 매우 많은 시간이 걸리지 만 (30 초 - 1 분), 다음 번 호출 할 때 동일한 요청이 밀리 초 단위로 반환 될 수 있습니다.

매우 임의적으로 보입니다. 모든 코드를 바꿀 필요가있는 코드를 공개 할 때? 로드 밸런싱, DNS 캐시, IP 주소 등 ...이 모든 네트워크 계층 변경 사항을 전파하면 내 문제가 발생할 수 있습니까?

현재 대부분의 경우 준비 환경을 업그레이드 한 다음 VIP를 생산 환경으로 업그레이드합니다.

답변

1

주로 웹 역할이 있습니까? 그들은 .NET 코드를 실행하고 있습니까? (ASP.NET?, WCF? 등)

그렇다면 활동으로 인해 재활용 된 IIS 응용 프로그램에서 일반적인 .NET JIT 지연을 처리하는 것이 가능할 수 있습니다. 이 현상은 현장에서 ASP.NET 응용 프로그램을 사용하고 일정 시간 동안 누르지 않은 경우와 같습니다. IIS 작업자는 재활용되고 런타임은 새 HTTP 요청이 들어올 때까지 응용 프로그램을 JIT 컴파일하지 않습니다. 이로 인해 첫 번째 요청은 "영원히"걸릴 수 있지만 다음 몇 분 내에 들어오는 모든 요청은 " 인스턴트 "당신이 코드에서 기대하는대로.

이것은 Azure에만 국한되지는 않지만, 사용자가 사이트에서 실행하는 것과 다른 IIS 환경 (기본 응용 프로그램 풀 재활용 설정/재활용 후 예열 설정)을 처리 할 수 ​​있습니다. 제안

당신이 업을 따뜻하게 관련이 의심되는 경우와

편집, 몇 가지 해결책이 있습니다.

최상 (그렇지 않으면 필요없는 경우)은 근본 원인 (IIS가 응용 프로그램 풀을 재활용 함)을 관리하는 것입니다. 기본적으로 이는 타이머 나 요청 횟수 (Azure에서 어느 것이 확실하지 않은지)에서 발생합니다. web.config에서 <recycling></recycling> 요소가있는 경우이를 재정의 할 수 있습니다. IIS.net은 이러한 설정에 대해 가장 잘 설명합니다.

http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling

을하고 도움이되는지 참조하십시오에서 살펴 보자. 당신이 맞지 않는 시간대 (예를 들어, 심야)에 시간을 재는 재활용을하는 것이 좋습니다.

또 다른 옵션은 트래픽이 지속적으로 사이트에 도달하도록하는 것입니다. 일종의 폴링 소프트웨어가 있습니다. pingdom과 같은 "가동 시간/상태"모니터는 이것에 아주 좋습니다. 이것은 해킹 접근법이지만 이상한 시나리오에서는 이전에 사용했습니다. (권장하지 않음)

IIS가 예열 모듈을 가지고 있고 C# 4.0에 준비 할 수있는 예열 요구 사항 (예 : 필요없는 소리)으로 인해 작동하지 않는 경우 도움. 다시 말하지만, 시작이 발생할 때가 아니라 시작 중에 일어나는 일을 제어 할 수 있도록하는 방법이 많이 있습니다.

+0

매우 재미 있습니다. 예, 이것은 ASP.net 웹 역할에 있습니다. 주어진로드 밸런싱 인스턴스가 여러 개인 경우 문제의 추가 무작위성을 설명 할 수 있습니다. 한 요청은 즉시 반환 될 수 있지만 다음 요청은 "영원히"걸릴 것이고 모든 것이 정상으로 돌아갑니다. 네가 괜찮 으면 ...이 일에 대해 올바른 방향으로 가르쳐 줘. 감사! – BZink

+0

몇 가지 제안 사항, 행운을 보며 편집을 참조하십시오. –