본문 바로가기

.Net

IIS 7 에서 ASP.NET MVC 처음 접속시 느려지는 현상 확인

작업관리자 > 프로세스 > w3wp.exe 가 유휴시간이 지나 프로세스가 내려간 후 첫번째 접속 시도시 느림 현상 확인

1. 요약 
  IIS 7.0 설정은 
  유휴시간동안(20분) 접속이 없으면 프로세스를 종료하며, 
  접속이 계속 있어도 표준시간(1740분)이 되면 프로세스를 재생합니다.
  프로세스 재생시 기본 프로세스만 동작하게 되고 asp.net 응용 프로그램이 올라오는 것이 아니므로 최초 접속시 느림 현상이 발생합니다.
  느림현상 수동 확인은 응용 프로그램 풀 > {응용프로그램풀명} > 왼쪽 작업탭 > 응용 프로그램 풀 작업 > 재생 클릭후 확인 가능합니다.

2. 적용 방법
  1안 아래 설정 변경
    - 응용 프로그램 풀 > 고급설정 > 프로세스 모델 > 유휴 시간 제한(분) : 유휴 시간 지나면 프로세스 내림
    - 응용 프로그램 풀 > 고급설정 > 재생 > 표준 시간 간격(분) : 매 간격마다 응용프로그램 풀 재생

    => 유휴시간 제한 = 0, 표준 시간 간격 = 유지 
      참조글 참조 : IIS 기본 앱 풀 재활용이 1740분으로 설정된 이유는 무엇입니까? 

  2안 : 웹페이지를 20분보다 적은 주기로 호출하는 스케줄러 만들기

응용 프로그램 풀 대한 상세내용은 아래와 같습니다.

3. 상세
  3.1. 작업관리자 > 프로세스 > w3wp.exe 체크
    프로세스 없음 또는 재생된후 처음 접속시 : 느림
    프로세스 존재 : 빠름

  3.2 IIS 7 w3wp.exe 프로세스가 초기화 되는 두가지 설정
  - 응용 프로그램 풀 > 고급설정 > 프로세스 모델 > 유휴 시간 제한(분) 
    기본값 : 20
  - 응용 프로그램 풀 > 고급설정 > 재생 > 표준 시간 간격(분)
    기본값 : 1740

4. 참조 
  - IIS 작업자 프로세스의 20분 자동 재생(Recycle)을 끄는 방법
    https://www.sysnet.pe.kr/2/0/1774
  - 프로그램 오류에 인한 문제 등으로 아예 응용프로그램 풀이 동작하지 않을 수도 있습니다.
    http://bwlab.kr/kb_s/5700  
  - IIS(NT OS 2012 R2) 의 유휴시간 을 "0"으로 셋팅 시 부작용 여부
    https://social.technet.microsoft.com/Forums/ko-KR/7e4cb32e-5459-4bb1-b932-87be80f72bd4/iisnt-os-2012-r2-0-?forum=winserver2012ko  
  - IIS 기본 앱 풀 재활용이 1740분으로 설정된 이유는 무엇입니까?
    https://weblogs.asp.net/owscott/why-is-the-iis-default-app-pool-recycle-set-to-1740-minutes