IIS는 응용 프로그램이 IIS에서 격리된 DLLHost.exe 프로세스에 의해 통제되는 OOP(out-of-process)로 실행되도록 합니다. 프로세스 재활용은 COM+로 설치한 하부 구조의 효율을 높여 이러한 OOP 응용 프로그램의 프로세스 재활용을 수행합니다. 특히, IIS는 COM+의 RecycleProcess() 메서드에 의존하여, DLLHost.exe 프로세스에 의해 호스트되는 응용 프로그램을 재활용해야 한다는 것을 COM+에 표시합니다. 응용 프로그램을 재활용할 시기에 대한 자세한 내용은 응용 프로그램의 문제를 참조하십시오.
때로는 잘못 쓰여진 코드나 CPU에서 불필요한 로드를 발생시키는 루프에 갇히는 등의 이유로 해서 응용 프로그램의 성능이 저하되기도 합니다. 또한 이러한 응용 프로그램은 응용 프로그램이 불필요한 메모리를 운영 체제로 되돌려 보내지 않는 메모리 리크를 일으킵니다. 이러한 응용 프로그램은 서버를 다시 부팅하라고 요구하며 서버가 제대로 작동하지 못하게 합니다. 프로세스 재활용은 이러한 문제를 해결하기 위해 고안되었습니다.
프로세스 재활용 작동 방법
프로세스 재활용은 구성된 재활용 이벤트가 발생할 때 응용 프로그램이나 응용 프로그램 풀을 재활용하여 작동됩니다. OOP 응용 프로그램을 재활용하는 것에 대한 방법론은 간단합니다. IIS는 응용 프로그램의 DLLhost.exe. 호스팅 프로세스를 재활용하도록 요청하면서 COM+ RecycleProcess() 메서드를 호출합니다. 재활용 이벤트가 트리거되면 다음 이벤트가 발생합니다.
- 응용 프로그램을 재활용하라는 새 응용 프로그램의 요청을 처리하기 위해 새로운 프로세스가 만들어집니다.
- 재활용되고 있는 프로세스에는 이전 응용 프로그램의 요청 처리를 끝내야 하는 시간이 주어집니다. 시간 간격은 ShutdownTimeLimit 메타베이스 키를 사용하여 구성됩니다.
- ShutdownTimeLimit에 도달했는데 이전의 프로세스가 종료되지 않으면 IIS가 이전의 프로세스를 종료합니다.
COM+ RecycleProcess에 대한 자세한 내용을 보려면, COM+(구성 요소 서비스) Platform SDK에서 "RecycleProcess" 키워드를 참조하십시오.
응용 프로그램을 세 가지 중 하나로 실행하도록 구성할 수 있습니다. IIS 5.0에서는 이러한 옵션을 설명하기 위해 "격리 수준"이라는 용어를 도입했습니다. 세 가지 격리 수준이란 낮음, 보통, 높음을 말합니다. 응용 프로그램은 IIS 스냅인을 사용하여 홈 디렉터리 속성 시트에서 구성됩니다.
- 낮음(IIS) 응용 프로그램은 기본 IIS 프로세스이며 in-process라고도 하는 inetinfo.exe에서 실행될 수 있습니다. 완전히 테스트된 경우를 제외하고는 응용 프로그램을 IIS 프로세스에서 실행해서는 안됩니다. 이 프로세스에서 실행하는 응용 프로그램의 작동이 중지되면, IIS와 in-process를 실행하는 기타 응용 프로그램의 작동도 중지됩니다. in-process를 실행하는 응용 프로그램은 재활용할 수 없습니다.
- 보통(풀링됨) 풀링된 응용 프로그램은 OOP로 실행되며 일반 DLLHost.exe 프로세스에 의해 호스트됩니다. 프로세스 재활용은 메타베이스의 W3SVC 수준에서 풀링된 모든 응용 프로그램에 대해 구성되며, 풀링된 모든 응용 프로그램은 함께 재활용됩니다.
- 높음(격리됨) 격리된 응용 프로그램은 OOP로 실행되며, 각 응용 프로그램은 단일 DLLHost.exe 프로세스에 의해 호스트됩니다. 격리된 응용 프로그램은 다른 응용 프로그램과는 별도로 재활용됩니다. 프로세스 재활용은 격리된 응용 프로그램이 있는 메타베이스의 모든 수준에서 구성될 수 있습니다.
프로세스 재활용을 구성할 수 있는 메타베이스의 수준은 수준 및 상속에 설명되어 있습니다. 프로세스 재활용 구성에 대한 자세한 내용은 프로세스 재활용 이벤트 구성을 참조하십시오. 응용 프로그램을 in-process나 out-of-process로 실행하는 데 대한 자세한 내용은 응용 프로그램 정보를 참조하십시오.
재활용 이벤트를 트리거하도록 구성할 수 있는 이벤트에는 세 가지가 있으며, 이 세 가지 모두 동시에 활성화할 수 있습니다. 이러한 이벤트는 다음과 같습니다.
프로세스 재활용 이벤트 요약
다음은 프로세스 재활용 이벤트 발생을 트리거할 수 있게 구성할 수 있는 메타베이스 키 이름입니다.
- Time Created
미리 지정된 시간 동안 실행한 다음 응용 프로그램이 재활용됩니다. 이 속성은 PeriodicRestartTime 메타베이스 키를 사용하여 구성됩니다.
- Number of Requests
미리 지정한 수의 요청을 받은 다음 응용 프로그램이 재활용됩니다. 이 속성은 PeriodicRestartRequests 메타베이스 키를 사용하여 구성됩니다.
- Scheduled Time
미리 지정한 시간에 응용 프로그램이 재활용됩니다. 이 속성은 PeriodicRestartSchedule 메타베이스 키를 사용하여 구성됩니다.
트리거된 이벤트 이해
여러 이벤트를 사용하여 재활용을 트리거하는 경우 임계값에 도달한 첫째 이벤트는 IIS가 응용 프로그램의 DLLhost.exe 프로세스를 재활용하도록 합니다. PeriodicRestartTime 이벤트와 PeriodicRestartRequests 이벤트는 0부터 해당 메타베이스 키에 설정된 값까지 세는 내부 타이머를 사용합니다. 카운터가 메타베이스 키에 설정된 값에 도달하면 프로세스는 재활용되고 내부 카운터는 0으로 돌아갑니다. 또한 PeriodicRestartTime 내부 카운터와 PeriodicRestartRequests 내부 카운터는 아래에서 보듯이 서로 영향을 줍니다.
- PeriodicRestartTime 이벤트를 트리거하면 프로세스는 재활용되고 PeriodicRestartTime 및 PeriodicRestartRequests 내부 타이머는 0으로 다시 설정됩니다.
- PeriodicRestartRequests 이벤트를 트리거하면 프로세스는 재활용되고 PeriodicRestartTime 및 PeriodicRestartRequests 내부 타이머는 0으로 다시 설정됩니다.
- PeriodicRestartSchedule 이벤트를 트리거하면 프로세스는 재활용되고 PeriodicRestartTime 및 PeriodicRestartRequests 내부 타이머는 0으로 다시 설정됩니다. PeriodicRestartSchedule 이벤트는 클럭 시간을 기준으로 하며 다시 설정할 수 없으며 또는 다른 두 이벤트의 영향을 받습니다.
중요 내부 타이머는 메타베이스에서 읽기만 하고 메타베이스 값을 다시 설정하지는 않습니다. 내부 타이머를 기본 메타베이스 키 매개 변수와 혼동하지 마십시오.
참고 PeriodicRestartTime 및 PeriodicRestartRequests의 기본 메타베이스 키 매개 변수가 0이면 이러한 기능을 사용할 수 없게 됩니다. PeriodicRestartSchedule 이벤트는 기본으로 구성되지 않습니다. 수준 및 상속 항목에는 프로세스 재활용 이벤트와 관련된 메타베이스 키에 대한 자세한 설명이 있습니다.
프로세스 재활용 이벤트 구성에 대한 자세한 내용은 재활용 이벤트 구성을 참조하십시오. 수준 및 상속 구성에 대한 자세한 내용은 수준 및 상속을 참조하십시오.
관련 정보를 제공하는 리소스는 다음과 같습니다.
- 응용 프로그램 정보 응용 프로그램, 시작 위치에 대한 개념 정보 및 응용 프로그램을 실행할 수 있는 다른 프로세스에 대한 개념 정보입니다.
- 응용 프로그램 격리 다른 여러 프로세스에서 응용 프로그램을 실행하도록 구성하는 방법에 대한 단계별 설명입니다.
© 1997-2001 Microsoft Corporation. All rights reserved.