2011-05-09 2 views
2

ASP.Net 웹 역할에 대한 인스턴스 수를 어떻게 채우는 것이 현재 처리중인 요청에 영향을 미치는지 알아 내려고하는 행운이 없습니다. Azure에서 asp.net 웹 역할에 대한 인스턴스 카운트를 변경할 때의 영향

을 Heres 시나리오 :

  • ASP.Net 사이트가 나는에 instancecount을 줄일 콘솔을 통해 6 개 인스턴스
  • 로 배포
      4

    는 인스턴스를 제거 할 수있을만큼 스마트 푸른인가 현재 요청을 진행 중이거나 아니면 중간 요청을 죽이는 경우 풀에서?

    나는이 겉보기에 간단한 질문에 답할 수 없었던 푸른 기술 문서, goolge 및 MS 기술 지원에 대한 수많은 이메일을 보았습니다. 나는 셧다운 등으로 인해 발생하는 이벤트에 대해 알고 있지만 실제로 응답을 기다리는 실제 사람과 함께 웹 사이트 시나리오에 도움이되지는 않습니다.

  • 답변

    2

    David의 답변에 덧붙이면 : OnStop 이벤트는로드 밸런서를 벗어 났을 때 발생합니다. 웹 응용 프로그램의 경우 일반적으로 인스턴스가 종료 될 때까지 LB에서 연결을 끊은 후에 모든 요청을 블리드 아웃하는 데 충분한 시간입니다. 그러나 장기 실행 또는 상태 기반 연결 (예 : 작업자 역할)의 경우 일부 경우 갑자기 연결이 끊어집니다. OnStop 메서드는 LB에서 사용자를 제거하지만 열려있는 연결은 종료하지 않습니다. 그것은 단순히 새로운 연결을 못하게합니다. 웹 응용 프로그램의 경우 일반적으로 요청을 완료 할 수있는 충분한 시간입니다 (그리고 원한다면 OnStop에서도 필요한 경우 종료를 지연시킬 수 있습니다).

    +0

    감사합니다. 현재 요청이 모두 완료 될 때까지 시스템 종료를 지연시키는 방법은 무엇입니까? –

    +0

    OnStop() 이벤트에서 돌아 오지 않음으로써 종료를 지연시킬 수 있습니다. 1.5 SDK 기준으로 약 5 분 지연 될 수 있으며 강제 종료됩니다. – dunnry

    3

    죽일 인스턴스를 선택할 수 없습니다. 주로 Windows Azure의 인스턴스 할당 방식으로 인하여 인스턴스가 다른 오류 도메인 (데이터 센터의 다른 영역 (랙 등)이 다른 것을 의미 함)으로 분할됩니다. 삭제할 인스턴스를 선택하는 경우 나머지 인스턴스가 동일한 결함 도메인에있는 상태가되어 SLA가 무효화 될 수 있습니다.

    다음과 같은 내용이 있습니다. 역할 인스턴스가 종료 될 때 (OnStop() 이벤트) 이벤트가 발생합니다. 이 이벤트를 캡처하면 VM 종료를 준비하기 위해 인스턴스 정리를 수행 할 수 있습니다. 이 시점에서 부하 분산 장치에서 꺼내 졌는지는 기억할 수 없지만 간단한 PowerShell 명령 (Set-RoleInstanceStatus -Busy)을 사용하면 언제든지 스스로를 강제 종료 할 수 있습니다. 이렇게하면 asp.net 인스턴스가 요청을 중지하고보다 쉽게 ​​정상적으로 종료 할 수 있습니다.

    편집 : 죄송합니다 - 귀하의 질문에 모두 답변하지 못했습니다. OnStop()을 캡처하면 해당 인스턴스에서 아무 것도 처리되지 않도록하는 메커니즘을 구현해야 할 수도 있습니다. 부하 분산 장치를 벗어나서 요청이 상당히 빠르게 처리된다고 가정하면 (2 ~ 5 초) 나머지 요청을 지우려면 오래 기다릴 필요가 없습니다. 아마도 얼마나 많은 활성 요청이 처리되고 있는지를 확인하기위한 성능 카운터가있을 것입니다.

    관련 문제