IIS의 응용 프로그램에서 사용하는 메모리를 제한하는 방법은 무엇입니까?


17

IIS 작업자 프로세스는 서버에서 많은 메모리를 사용하고 있습니다. 각 응용 프로그램에서 사용할 수있는 메모리를 제한하고 싶습니다. 가상 메모리 제한 또는 개인 메모리 제한에 제한을 설정해야하는지 혼란스러워합니다. IIS의 각 응용 프로그램은 자체 응용 프로그램 풀에 있습니다.

개인 메모리 제한을 500MB로 설정하고 가상 메모리 제한을 3GB로 설정하면 응용 프로그램 풀은 언제 재활용됩니까? 500MB에 도달 한 후 또는 3GB에 도달 한 후 재활용됩니까?


이 '가상 메모리 제한'과 '개인 메모리 제한'옵션은 어디에 있습니까?
대령 패닉

1
@ColonelPanic IIS7.5에서는 앱 풀 Advanced Settings -> Recycling섹션 아래에 있습니다 .
ngm

답변:


16

IIS는이 두 가지 한계를 모두 존중합니다.

500MB 개인 바이트 제한을 설정하면 작업자 프로세스가 501MB 커밋을 시도하자마자 IIS가 새 작업자 프로세스를 시작하고 이전 프로세스를 종료합니다.

3GB 가상 메모리 제한을 설정하면 작업자 프로세스가 3.001GB를 예약하려고하면 IIS는 새 작업자 프로세스를 시작하고 이전 프로세스를 종료합니다.

64 비트 플랫폼을 사용하는 경우 ASP.NET 앱이 적극적으로 가상 메모리를 예약한다는 것을 알고 있어야합니다. 예를 들어 팜에 88MB의 개인 바이트 만 사용하지만 현재 5.4GB 가상 크기에 해당하는 앱이 있습니다. 가상 메모리 예약은 서버의 물리적 RAM 기능이라고 생각합니다. 64 비트 플랫폼에서 가상 메모리의 많은 부분을 예약하면 성능에 영향을 미치지 않는다는 점을 이해해야합니다.

기본적으로 IIS 서버에서 메모리 소비 문제가있는 경우 제한하려는 설정은 개인 메모리 / 바이트입니다. 이는 실제 메모리 사용에 해당합니다.


감사합니다 Dominic, 500MB 개인 메모리를 사용하도록 프로세스를 설정할 수있는 방법이 있습니까? 한도를 초과하면 디스크없이 가상 메모리를 재활용하지 않고 시작하십시오.
kishore

2
내가 아는 것은 아닙니다. ASP.NET 응용 프로그램에서 커밋 바이트 문제가 발생하면 기본적으로 3 가지 옵션이 있습니다. 1. 한도에 도달하거나 야간에 야간에 도달했을 때 프로세스를 재활용합니다 (분명히 바람직하지 않으며, 사용 기간 동안 재활용하는 경우 세션 데이터를 올바르게 관리하는 것을 잊지 마십시오). 서버 팜으로 이동하거나 다른 팜으로 이동하는 경우 상황에 따라 가장 간단한 솔루션 일 수 있습니다. 3. 메모리를보다 효율적으로 사용하도록 응용 프로그램을 수정하십시오. (최상의 옵션이지만 구현하기 어려울 수 있음)
Dominic D

또한 여러 ASP.NET 앱에서 메모리를 적극적으로 예약하는 것을 보았습니다. 누구든지이 주제에 관해 공부할 좋은 자료를 추천 해 줄 수 있습니까? 어떻게 그리고 왜 발생하는지에 대해 더 알고 싶습니다. 사용 가능한 메모리가 많을수록 앱이 더 많은 메모리를 할당한다는 것입니다.
Tom Pažourek
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.