2011-09-26 1 views
0

다른 API와 통신하고 Page_Load를 많이 처리하는 ASP.NET 응용 프로그램이 있습니다.ASP.NET 메모리 문제

브라우저에 F5를 누르고 사이트에 접속하면 서버가 120MB에서 1.5GB로 촬영됩니다.

메모리 누수 또는 닫히지 않은 개체를 찾을 수 없습니다. 제가 도울 수있는 어떤 방법이나 여분의 것들이 있습니까?

감사합니다.

+1

브라우저를 조금 떠난 후에는 어떻게됩니까? - 기억이 다시 정착합니까? 또한 CPU 사용률은 어느 정도입니까? –

+0

F5 버튼에서 손을 떼면 어떻게됩니까? 또한 응용 프로그램의 성능을 테스트하는 다른 방법이 있습니다. Visual Studio Ultimate에는 많은 요청을 발행하는 데 사용할 수있는 테스트 스위트가 있으며 실제로 수행하는 요청 수를 제어 할 수 있습니다. –

+0

답장을 보내 주셔서 감사합니다. 이 코드는 Umbraco라는 .net cms 내의 usercontrol 내에서 실행됩니다. 귀하의 질문에 대해 살펴 보았습니다. 약 10-15 분 후에 복구되고 45MB로 다시 돌아가고 천천히 120MB로 증가하여 거기에 머물러 있습니다. 문제는 약 30-60k 명의 방문자가 있기 때문에 주말에 사이트가 다운되는 것을 발견했습니다. 메모리 사용량을 줄일 수있는 방법이 있습니까? – Base33

답변

1

ANTS Profiler 또는 dotTrace과 같은 프로파일 러를 사용하십시오.

그 행동을 유발할 수있는 많은 것들이 있습니다. 임의적 인 제안으로 문제를 해결하려고하면 우리를 아무데도 얻을 수 없습니다.

프로파일 러에서 문제 영역을 식별하면 문제를 해결할 수없는 경우 해당 코드를 새 질문에 게시 할 수 있습니다.

가치가있는 경우 1.5GB는 거대한이 아닙니다. 버튼을 계속 누르고 있으면 결국 OutOfMemoryException이 표시됩니까?

+0

YEP! 우리는 주말에 System.OutOfMemoryException을 얻었고 버튼을 길게 누르는 경우에도 마찬가지입니다. – Base33

+0

@ Base33이 시점에서 그것은 누수처럼 들립니다. 문제 영역을 확인하기 위해 프로파일 러를 사용하는 것이 좋습니다. 찾아야 할 사항 : Interop, 정적 이벤트에 가입하는 인스턴스 객체 등 – vcsjones

0

+1은 "프로필과 문제를 파악"할 수 - 당신이 문제를 해결하려면 무슨 일이 일어나고 있는지 알고는 필수입니다 .

그러나 단기간에 64 비트 박스/64 비트 버전의 Windows로 옮기고 64 비트 ASP.Net을 사용하는 것이 더 저렴하고 쉬울 수 있습니다. IIS 프로세스에서 사용할 수있는 메모리가 훨씬 늘어납니다.