2013-07-08 2 views
3

이상한 문제가 있습니다. 우리의 ASP.NET 애플리케이션은 16Gb RAM을 갖춘 64 비트 Windows 2008/IIS7 시스템에서 실행됩니다. w3wp.exe 프로세스가 4Gb에 도달하면 (우리는 서버의 작업 관리자를 통해 간단히 추적합니다) - 메모리 부족 여전히 충분한 메모리가 남아 있지만 예외가 발생합니다.아직 메모리가 남아 있어도 w3wp.exe의 메모리가 부족합니다.

ASP.NET 프로세스가 64 비트 시스템 (및 64 비트 응용 프로그램 풀 사용)에서 4GB의 메모리로 제한된다는 알려진 문제가 있습니까?

한계를들 수있는 방법이 있습니까?

+0

응용 프로그램 풀이 일반적으로 위험한 1GB RAM을 초과하는 경우 제가 읽은 일반적인 지침은 1GB 미만으로 유지하는 것입니다. 사용 가능한 메모리가 응용 프로그램 풀에 스로틀되는지 확인하십시오. 로드 밸런싱을 조사하거나 .NET 응용 프로그램의 어떤 프로세스가 도망 가고 있는지 파악해야합니다. 사용하지 않는 리소스를 수집하고 필요에 따라 리소스를 할당 해제하십시오. 이 서버에서 실행중인 다른 응용 프로그램 풀이 있습니까? 공유 지점? – ApolloSoftware

+0

@AmitApollo 답장을 보내 주셔서 감사합니다. 네, 메모리 오용의 함의를 알고 있으며 가능한 원인을 찾기 위해 노력하고 있습니다. 그 동안 4Gb 이상의 RAM을 처리하려면이 ASP.NET 프로세스가 필요합니다. 어떤 아이디어? 이 서버에서 실행중인 다른 앱 풀이 있지만이 앱만큼 강렬한 것은 없습니다. 그리고 셰어 포인트도 없습니다. 그리고 기억은 봉우리에서만이 최고에 머무르지 않습니다. 그러나 내려갑니다.하지만이 한계를 초과 할 수 있어야합니다. –

+0

특별히'32-bit architecture'를 목표로하는 커스텀 설정 하에서 만들었습니까? 아니면'Any CPU' 설정입니까? –

답변

1

어딘가에 가비지 수집을 끝내는 어딘가에있는 자원 같은 것 같지만 필요에 따라 충분히 빨리 가비지 못합니다. SQLConnection 객체를 다시 사용합니까? 또는 MailClient 객체? 또는 관리되지 않는 이미지 개체?

메모리 부족 예상보다 낮은 경우 ASP.NET 응용 프로그램에서 두 가지 유형의 메모리를 사용합니다. 하나는 예약 된 메모리이고 다른 하나는 실제로 사용되는 메모리입니다. 나는 작업 관리자가 실제 메모리 사용을 추적하지만 예약 된 메모리에는 아마도 한계가 있다고 생각한다. 예약 된 메모리의 양을 확인하려면 IIS7로 이동하여 서버 (최상위, 응용 프로그램 풀 및 사이트 폴더 위)를 클릭 한 다음 프로세스 옵션을 클릭하고 응용 프로그램 프로세스를 클릭하십시오. 그것은 CPU 사용, 요청 수 및 메모리 사용량 (예약 및 실제)을 보여 주어야합니다.

관련 문제