IIS 작업자 프로세스는 서버에서 많은 메모리를 사용하고 있습니다. 각 응용 프로그램에서 사용할 수있는 메모리를 제한하고 싶습니다. 가상 메모리 제한 또는 개인 메모리 제한에 제한을 설정해야하는지 혼란스러워합니다. IIS의 각 응용 프로그램은 자체 응용 프로그램 풀에 있습니다.
개인 메모리 제한을 500MB로 설정하고 가상 메모리 제한을 3GB로 설정하면 응용 프로그램 풀은 언제 재활용됩니까? 500MB에 도달 한 후 또는 3GB에 도달 한 후 재활용됩니까?
답변
IIS는이 두 가지 한계를 모두 존중합니다.
500MB 개인 바이트 제한을 설정하면 작업자 프로세스가 501MB 커밋을 시도하자마자 IIS가 새 작업자 프로세스를 시작하고 이전 프로세스를 종료합니다.
3GB 가상 메모리 제한을 설정하면 작업자 프로세스가 3.001GB를 예약하려고하면 IIS는 새 작업자 프로세스를 시작하고 이전 프로세스를 종료합니다.
64 비트 플랫폼을 사용하는 경우 ASP.NET 앱이 적극적으로 가상 메모리를 예약한다는 것을 알고 있어야합니다. 예를 들어 팜에 88MB의 개인 바이트 만 사용하지만 현재 5.4GB 가상 크기에 해당하는 앱이 있습니다. 가상 메모리 예약은 서버의 물리적 RAM 기능이라고 생각합니다. 64 비트 플랫폼에서 가상 메모리의 많은 부분을 예약하면 성능에 영향을 미치지 않는다는 점을 이해해야합니다.
기본적으로 IIS 서버에서 메모리 소비 문제가있는 경우 제한하려는 설정은 개인 메모리 / 바이트입니다. 이는 실제 메모리 사용에 해당합니다.