2013-04-02 3 views
1

following article에서 설명한 것처럼 일부 .NET 응용 프로그램 풀은 첫 번째 요청시 매우 느리게 (약 4 배) 느려집니다. 문제는 응용 프로그램 풀에만 영향을줍니다. 일부는 속도가 느리고 일부는 웹 앱, 설정, 파일 권한 등과 같은 조건이 아닙니다.일부 응용 프로그램 풀은 처음로드시 매우 느립니다.

제 질문은 어떻게 될 수 있습니까? 어떻게 하나의 응용 프로그램 풀이 동일한 설정을 가진 다른 응용 프로그램 풀보다 느려지는지, 둘 다 다시 시작한 후에도이를 수정/방지 할 수있는 방법이 있습니까? 응용 프로그램 풀이 느려지면 중지하고 시작하는 경우에도 다시 빠르지 않습니다.

모든 테스트를 수행하기 전에 응용 프로그램 풀을 재활용 했으므로 모든 테스트가 '첫 번째 요청'이었습니다.

같은 문제가 발견되어이 이상한 문제에 대한 해결책을 찾은 사람이 있습니까?

asp.net 초기화 속도의 일반적인 문제가 아닙니다. 동일한 서버의 동일한 코드를 일반 (빠른) 및 깨진 (느린)의 두 가지 응용 프로그램 풀과 비교합니다. 두 개의 똑같은 (동일하지 않은) 사소한 (어떤 DB 액세스도 없음) 테스트 애스 팩 애플리케이션 응용 프로그램에서 동작을 변경하는 두 개의 응용 프로그램 풀 (동일한 설정이지만 부당한 "느린")을 전환하면 하나는 매우 느리고 다른 하나는 시작되지 않습니다.

질문은 다음과 같습니다

응용 프로그램 풀 갑자기 파괴된다 왜
  • (느림)?
  • 응용 프로그램 풀이 "느리게"되는 것을 방지하려면 어떻게해야합니까?
  • 깨진 응용 프로그램 풀을 수정하는 방법은 무엇입니까? 예, 우리는 무제한의 새 앱 풀을 만들 수 있지만 어쨌든 프로덕션 환경에서는 이상하고 용납되지 않습니다.

UPD : "느린"응용 프로그램 풀 자체에 국한된 문제가 아니라 ITS NAME! "느린"응용 프로그램 풀의 이름을 바꾸면 다시 "빠름"이됩니다. 이전에 이름이 바뀐 (또는 삭제 된) "느린"응용 프로그램 풀을 만들면이 응용 프로그램 풀이 다시 느려집니다!

+0

응용 프로그램 ID를 사용하여 .NET 4 통합 응용 프로그램 풀에서 같은 것을 경험했습니다. 느린 응용 프로그램 풀에 어떤 종류의 ID를 사용 했습니까? –

답변

0

기본적으로 응용 프로그램 풀은 일정 기간 후에 재생되도록 설정됩니다. 나는 디폴트가 20 분이라고 생각한다. 재활용 후 첫 번째 요청시 다시로드해야합니다. 그게 아마도 당신이 겪고있는 일일 것입니다.

1

롤. 이것은 잔디 깎기를 시작했을 때와 비슷합니다. 초기 요청을 수행하고 데이터베이스를 초기화하는 데는 시간이 걸립니다. 셰어 포인트 서버에서 IIS 리셋을 할 때마다이 사실을 알았습니다. web.config를 가져 와서 데이터 컨텍스트 나 데이터베이스에 연결해야 사이트에서 요청을 시작하기 전에 많은 일을해야합니다. 일단 실행하고 모든 구성 요소와 런타임을 제자리에 유지하면 부드럽습니다. 일반적으로 야간 또는 시간대에 iisreset이 필요한 유지 보수 작업을 수행하는 것이 좋으므로 사용자가 처음으로 들어올 때는 더 빨리 작동합니다. 마지막으로 원하는 것은 CEO 또는 VP이며 사이트에 처음 액세스하는 것입니다.

또한 메모에 더 많은 메모리가있는 응용 프로그램 풀이 더 있습니다. SharePoint 응용 프로그램 풀을 사용하면 각 풀에 250MB의 메모리가 필요하다는 것을 알고 있습니다. 사용 및 리소스 소비를 줄이는 가장 좋은 방법은 요청에 대해 일종의 라운드 로빈 (round robbin) 또는로드 균형 조정을 수행하는 여러 웹 서버 팜/클러스터로 팜을 배치하는 것입니다. 주어진 지점에서 조회수가 증가할수록 초기 요청은 더 느려집니다.

+0

내가 빠뜨린 또 다른 사항은 NTFS 보안입니다. 통합 Windows 보안 또는 로컬 암호 사용 여부 또는 KERBEROS/인증서 사용 여부 또는 사이트의 암호화 된 SSL 여부에 따라 초기로드 시간과 오버 헤드가 추가됩니다. 거의 보안/인증을 잊어 버려! – ApolloSoftware

+0

이것은 모두 일반적인 것으로 특정 문제와 관련이 없습니다. 어쨌든 답변 주셔서 감사합니다. 동의합니다. 애플리케이션을 하나의 풀에 결합하는 것이 더 좋으며, 메모리를 절약 할 수 있습니다. 반면에 안정성이 떨어집니다. 풀이 추락하면 모든 풀링 된 애플리케이션이 CEO 또는 VP에게 "서비스를 사용할 수 없음"으로 표시됩니다.) –

2

나는 WCF 오류를 생성하는 응용 프로그램 풀이 오류 상태임을 나타내는 비슷한 문제가 있습니다. 새로운 응용 프로그램 풀을 만들고 동일한 코드를 테스트 해 보았는데 정상적으로 작동했습니다. 그런 다음 이전 응용 프로그램 풀을 삭제하고 새 응용 프로그램 풀을 이전 버전으로 다시 이름을 바꾼 다음 문제가 반환되었습니다. 그래서 거기에 뭔가가 어딘가에 애플 리케이션 수영장과 관련하여 삭제되는 경우 삭제되지 않는 응용 프로그램 풀 삭제됩니다 보인다. 아주 이상합니다. 다른 이름으로 바꾸면 다시 작동합니다. 그러나 원래 이름으로 다시 변경하면 오류가 발생합니다! 우리는 응용 프로그램 풀 이름을 계속 변경하지 않아도되기를 바랍니다.

+0

여전히 그 문제가 있습니다. 솔루션을 찾을 수 있었나요? –

관련 문제