IIS 작업자 프로세스가 24 시간이 아닌 29 시간마다 재활용되는 이유는 무엇입니까?


24

IIS에서 사이트를 설정하면 작업자 프로세스는 기본적으로 1740 분 (29 시간)마다 재활용됩니다. 예를 들어 24 시간 또는 48 시간이 아닌 29 시간과 같은 홀수 인 이유는 무엇입니까?

답변:


27

Tech Ed 2003에서 발표자는이 질문을 받았고, 매일 경계에서 발생하지 못하도록 (예 : 서버 / 도메인에서 예약 된 다른 일일 작업과 구별하기 위해) 불규칙적 인주기를 원했습니다.

여기 사이트 (링크가 끊어졌습니다)는 다음과 같이 추측했습니다.

... (29는) 24 이후 첫 번째 소수이므로 다른 서버 프로세스에서 규칙적인 패턴으로 발생할 가능성이 가장 적습니다. 문제에 대한 조사를 완화

다른 사이트에서 이것을 확인하는 것으로 보입니다.

( 웨이드 힐모 )는 24 시간 동안 가장 작은 소수이기 때문에 29 시간을 제안했습니다.


흥미 롭군 개인적으로 매일 같은 시간에 무언가가 반복되면 작업자 프로세스 재활용이 다른 문제를 일으킨 것인지 쉽게 추적 할 수 있다고 생각합니다. 예를 들어 대략 매일 발생하는 문제를 추적하는 것은 어렵지만 매일 오후 7시에 발생하면 시스템에서 해당 시간에 발생하는 이벤트를 검색 할 수 있으므로 더 쉽습니다. 나는 당신이 원하거나 전혀하지 않을 때마다 IIS를 재활용하도록 설정할 수 있다는 것을 알고 있습니다. 답변 해주셔서 감사합니다!
Guy

18

좋아, 이것은 나를 괴롭혔다. 그래서 나는 파고 들었고 마침내 IIS 팀에 있던 사람 에게서이 게시물 을 발견 했다.

IIS6이 기본적으로 29 시간마다 재활용되는 이유

IIS6이 기본적으로 29 시간마다 재활용되는 이유는 (29 시간을 기본값으로 선택하는 이유가 있음) 그렇지 않을 가능성이 높기 때문에 웹 응용 프로그램에서 실행되는 웹 응용 프로그램을 신뢰할 수없고 문자 그대로 자주 다시 시작해야하기 때문입니다.

따라서 IIS6는 사용자의 웹 응용 프로그램이 24 시간 이상 연속 실행되지 않고 기능이 적절히 계획되고 기본값이 선택된다는 전제 (통칭 냉소적)를 중심으로 구축되었습니다. 작업자 프로세스는 29 시간마다 재활용되고, 프로세스 시작 및 종료가 모니터링되며, 프로세스가 계속 실행되고 있는지 확인하기 위해 프로세스를 지속적으로 핑 (ping)하고, 프로세스 핸들이 추적되어 예기치 않게 종료 될 때 신호 등을 보냅니다.

재활용은 정상적인 작업의 일부라는 사실을 인식하여 IIS6는 최종 사용자와 재활용을 분리합니다. 최종 사용자의 TCP 연결은 커널 모드 마법으로 인해 재활용 중에 종료되지 않습니다. ASP.Net Session State Service와 같이 세션 상태 프로세스 외부 프로세스를 저장하는 사용자 모드 응용 프로그램과 결합하면 웹 응용 프로그램이 모든 단일 처리 후 충돌하더라도 사용자가 볼 수있는 데이터 손실없이 안정적인 가동 시간을 보장합니다. 사용자 요청.

이는 신뢰할 수없는 웹 응용 프로그램을 제공하고 최종 사용자에게 신뢰할 수있는 것처럼 보이게하고 신뢰할 수없는 웹 응용 프로그램을 수정하지 않고도 IIS6이 수행 할 수있는 수준입니다.

물론 신뢰할 수없는 응용 프로그램을 모두 신뢰할 수있는 것처럼 보이게 만들 수있는 것은 아닙니다. 그러나 IIS6는 확실히 훨씬 더 많은 노력을 기울입니다.

귀하의 경우, resiliancy는 비 지속적 사용자 상태에 부작용이 있지만 쉽게 조정할 수 있습니다.

웹 응용 프로그램에 문제가없고 진행중인 세션 상태를 유지한다고 가정하면 다음 기본값을 변경하려고합니다. 1. 29 시간주기 재활용 해제 2. 20 분 유휴 시간 제한 해제

이렇게하면 예기치 않은 세션 상태 손실이 방지됩니다.

물론 Out-of-process 세션 상태의 응용 프로그램을 사용하는 경우 모든 것을 기본값으로 유지하고 기능과 안정성의 차이를 느끼지 못할 수 있습니다.


1
나는 이것을 바보처럼 생각하지만 IIS가 웹 응용 프로그램이 24 시간이 걸리지 않는다고 가정하면 29가 어떻게 좋은 선택입니까? 24 미만의 숫자를 선택해서는 안됩니까? 이 설명을 해석 할 때 내가 잘못한 부분은 무엇입니까?
Alpha

아마도 기본값에 대한 "최상의"답변이 없으며 웹 사이트를 관리하는 사람은 앱과 시스템에 따라 신중한 결정을 내려야합니다.
DOK

@Alpha-동의합니다-말이되지 않습니다-기본값은 22 시간 또는 23 시간 또는 최소한 24 시간 이상이어야합니다.
Guy

[인용 필요]
piers7

매일 아침 웹 사이트의 일부에서 재활용으로 만 수정할 수있는 이상한 컴파일 오류가 발생합니다. 내 짐작은 유휴 시간 초과가 낮은 부하로 인해 밤새 트리거되며 어떤 이유로 든 다시 시작되면 컴파일 오류가 다시 발생한다는 것입니다. 리드 주셔서 감사합니다, 나는이 문제를 해결하기 위해이 경로를 따라갈 것입니다 ...
sonjz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.