X64 OS (32GB RAM)의 웹 정원이있는 32 비트 응용 프로그램에 대한 IIS6 사용 가능한 메모리

StackOverflow https://stackoverflow.com/questions/366349

문제

32GB 물리적 RAM이있는 64 비트 Windows 2003 서버에서 IIS6을 실행하고 있습니다. .NET 3.5 ASP.NET 애플리케이션 내의 이전 32 비트 종속성으로 인해 현재 32 비트 WOW64 모드에서 IIS 작업자 프로세스를 실행해야합니다.

내 질문은 웹 정원 설정을 사용하고 4 개의 작업자 프로세스를 구성하는 경우 각 작업자가 각각 4GB의 메모리에 액세스 할 수 있으므로 약 16GB의 메모리에 액세스 할 수 있습니다. 아니면 Out ASP.NET 앱에 대한 4GB 제한을 고수합니까?

도움이 되었습니까?

해결책

예, 4GB 제한은 프로세스 당입니다. 64 비트 커널에서 실행되는 각 32 비트 프로세스에는 4GB 개인 주소 공간 한계가 있습니다 (이는 32 비트 시스템에서와 같이 커널과 공유되지 않음). 4x4GB = 16GB 메모리에 액세스 할 수 있지만이 16GB는 단일 프로세스에서 한 번에 사용할 수 없습니다. 각각은 자체 4GB 개인 메모리 만 직접 액세스 할 수 있습니다. 다른 프로세스에서 메모리에 액세스하기 위해 일부 간략한 통신 매체를 사용해야합니다.

다른 팁

"각 작업자 프로세스 액세스 4GB 각각의 메모리"에 대한 답변은 위에서 답변되었습니다. 기본적으로 /3GB 스위치를 사용하지 않는 한 2GB의 RAM이 사용자 모드에 있습니다. 요구 사항에 따라 사용할 수 있거나 사용할 수 없을 수도 있습니다. 앱/서버 설정 굶주린 커널 모드 리소스를 가동 할 수 있습니다.

귀하의 질문의 2 부 "따라서"약 16GB의 메모리에 대한 액세스 권한을 부여합니다 "는"Access "의 의미에 따라 다릅니다. 웹 정원은 앱 풀에 대한 작업자 프로세스 수에 도달 할 때까지 들어오는 요청에 대해 또 다른 W3WP.Exe를 회전시켜 작동합니다. 각 웹 가든 인스턴스는 자체 프로세스에 있기 때문에 마치 다른 앱 풀인 것처럼 동일한 주소 공간을 공유하지 않습니다. 따라서 애플리케이션이 더 많은 메모리를 소비하는 반면, 동일한 응용 프로그램의 여러 인스턴스를 실행하고 있기 때문에 각각 32bit 제한으로 제한되기 때문입니다.http://bytes.com/groups/asp/54826-asp-sessions-web-gardens http://msdn.microsoft.com/en-us/library/ms791558.aspx

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top