재활용
재활용은 일반적으로 IIS가 응용 프로그램의 컨테이너로 새 프로세스를 시작한 다음 이전 프로세스를 종료하기 전에 ShutdownTimeLimit까지 자신의 의지에서 벗어나도록합니다.
*-일반적 : DisallowOverlappingRotation / "중복 재활용 비활성화"설정 참조
그것은 인 파괴 원래 프로세스의 모든 상태 정보가 폐기에 있음. Out-of-process 세션 상태 (예 : State Server 또는 데이터베이스 또는 상태가 작은 경우 쿠키)를 사용하면이 문제를 해결할 수 있습니다.
그러나 기본적으로 겹칩니다 . 즉, 새 프로세스가 시작되고 요청 큐에 연결되어 이전 프로세스에 "[ShutdownTimeLimit] 초가 걸립니다. 준수하십시오."라는 메시지가 표시되기 전에 중단 시간이 최소화됩니다.
설정
귀하의 질문에 : 해당 페이지의 모든 설정은 어떤 방식으로 재활용을 제어합니다. "종료"는 "사전 예방 적 재활용"으로 설명 될 수 있습니다. 여기서 프로세스 자체는 갈 시간을 결정하고 순서대로 종료됩니다.
반응성 재활용은 WAS가 문제를 감지하고 프로세스를 처리하는 곳입니다 (적절한 교체 W3WP를 설정 한 후).
자, 다음은 한 형태 또는 다른 형태의 재활용을 유발할 수있는 것들입니다.
- 건강하지 않다고 결정하는 ISAPI
- 모든 모듈 충돌
- 유휴 시간 초과
- CPU 제한
- 앱 풀 속성 조정
- 네 엄마는 다음과 같이 할 수있다 한 지점에서 소리를 질렀습니다 : "정지 따기 그것을, 또는 더 나은 못할거야!"
- "ping"실패 * 실제로는 ping 자체가 아니며 명명 된 파이프를 사용하므로 더 "인명 감지"
- 위 스크린 샷의 모든 설정
해야 할 일 :
일반적으로:
유휴 시간 초과를 비활성화합니다 . 20 분 동안 활동이 없으면 붐! 다음에 들어오는 요청에 대한 새로운 프로세스. 이를 0으로 설정하십시오.
정기적 인 시간 간격 사용 안함 -29 시간 기본값은 다양한 당사자에 의해 "미친", "성가신"및 "영리한"으로 설명되었습니다. 실제로, 그 중 두 가지만 사실입니다.
선택적으로 재생을 중지 할 수없는 경우 DisallowRotationOnConfigChange (위의 구성 변경에 대한 Reycling 사용 안함)를 켜십시오. 이렇게하면 종료해야하는 작업자 프로세스에 즉시 알리지 않고 앱 풀 설정을 변경할 수 있습니다. 설정을 적용하려면 앱 풀을 수동으로 재활용해야합니다. 설정을 사전 설정 한 다음 변경 창을 사용하여 재활용 프로세스를 통해 적용 할 수 있습니다.
일반적인 원칙으로 핑을 활성화 된 상태로 둡니다 . 이것이 안전망입니다. 사람들이 사용 중지 한 다음 사이트가 때때로 중단되어 패닉 상태가되는 것을 보았습니다. 설정이 너무 느리게 반응하는 앱에 비해 너무 공격적인 경우에는 조금 뒤로 물러서십시오 당신이 그것을 끄는 것이 아니라 얻는 것을보십시오. 자체 모니터링 프로세스를 통해 중단 된 W3WP에 대해 자동 충돌 모드 덤프를 설정하지 않은 경우
그것은 잘 동작하는 과정을 영원히 살리기에 충분합니다. 죽으면 교체됩니다. 중단 된 경우 핑은이를 수신하고 2 분 내에 새로운 것을 시작해야합니다 (기본적으로 최악의 경우 계산은 최대 핑 빈도 + 핑 시간 초과 + 요청이 다시 시작되기 전에 시작 시간 제한 이어야 함 ).
CPU 제한은 일반적으로 재미 있지 않습니다. 기본적으로 꺼져 있고 어쨌든 아무것도하지 않도록 설정되어 있기 때문입니다. 프로세스를 강제 종료하도록 구성된 경우 이는 재활용 트리거 일 것입니다. 그대로 두십시오. IIS 8.x의 경우 CPU 스로틀 링도 옵션이됩니다.
(IIS) AppPool은 (.Net) AppDomain이 아니지만 하나 또는 일부를 포함 할 수 있습니다.
그러나 .Net 토지와 AppDomain 재활용에 들어가면 상태가 손실 될 수 있습니다. ( https://blogs.msdn.microsoft.com/tess/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles/ 참조 )
짧은 버전, 당신은 (따기 다시!) 콘텐츠 폴더에 web.config 파일을 터치하면, 또는 다른 것들 해당 폴더의 폴더 또는 ASPX 파일 또는 ... ...를 작성하여 그리고 그 그렇게 약 기본 코드 시작 비용을 제외한 App Pool 재활용만큼 파괴적입니다 (순전히 관리 코드 (.Net) 개념이므로 관리 코드 항목 만 발생합니다).
바이러스 백신은 web.config 파일을 스캔하여 변경 알림을 유발하여이를 트리거 할 수 있습니다.