2010-12-14 6 views
0

생산 과정에서 asp.net 응용 프로그램을 분석하는 동안 발견 한 이상한 문제를 설명하고 다음과 같은 문제에 대한 조언이나 의견을 구합니다.응용 프로그램 풀 재활용시 이상한 메모리 증가

응용 프로그램은 일반적으로 약 80-90MB의 메모리 풋 프린트로 실행됩니다. 지금까지 메모리 누수가 감지되지 않았으므로 안정적으로 보입니다 - 시간이 지남에 따라 메모리 사용이 약간 증가하지 않습니다. 그러나 문제는 응용 프로그램 풀이 재활용 될 때 발생합니다 (공유 호스팅을 사용하고 있으며 로그에 의해 판단합니다. 응용 프로그램이 20 분 또는 30 시간마다 유휴 상태 일 때 발생합니다). 문제는 재활용시 약간의 시간 동안 사용 된 메모리가 거의 두 배가된다는 것입니다. 이는 설명없이 160-170MB 정도입니다. 이것은 재활용이 메모리와 다른 모든 리소스를 제거해야한다는 공통적 인 주장이기 때문에 혼란 스럽습니다. 적어도 그렇게 할 수는 있습니다. 시스템은이 양의 메모리를 약 7-8 시간 동안 보유하고 있으며 메모리 사용량이 일반 수준 인 90-100MB로 떨어지며 분명한 이유도 없습니다 (적어도 나에게는 알려지지 않음). 항상 응용 프로그램이 잘 작동하는 것처럼 보입니다. 즉, 사이트 가용성에 큰 지연이나 문제는 없습니다. 사용자에게 모든 것이 정상적으로 보입니다. 지금까지 불만은 없습니다. 시간 경과에 따른 메모리 소비량 그래프를 볼 때 이것은 거의 스텝 기능과 비슷합니다.

중요한 것은 테스트 환경에서 이러한 종류의 동작을 재현 할 수 없다는 것입니다. 가끔은 공급자가 제공하는 메모를 통해 앱에서 허용되는 것보다 많은 리소스를 사용하고 있으며 실제로 이러한 문제가 발생합니다.

그래서 알고 싶은 것은 응용 프로그램 풀 재활용이 모든 메모리 리소스를 해제하지 않을 수있는 시나리오가 있습니까? 제가 중점을 두어야 할 조언이나 지침이 있습니까? 저는이 분야의 전문가는 아니지만, 중복되는 재활용, 일련 번호 문제, 재활용에 관한 문제 등 몇 가지 문제에 관해서 읽었습니다 ... 어떤 아이디어입니까? 비슷한 경험?

감사

답변

0

이 게시물이 사이트의 응용 프로그램 풀 재활용 공급되었을 때의 꽤 좋은 개요를 제공합니다 http://blogs.msdn.com/b/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx

내 추측은 메모리 사용으로 인해 모든 다음에 JIT 컴파일로 증가하고 있다는 것입니다을 응용 프로그램 풀의 재활용. 내 생각에 공유 호스트는 개발 서버와 다른 구성 및 환경 설정을 가지고 있습니다.

IMHO, 공유 호스트에서 ~ 100MB의 메모리를 사용하는 경우 DiscountASP.NET 또는 GoDaddy와 같은 호스트 인 경우 문제가 있는지 묻습니다. 해당 웹 사이트에 관심이 있다면 더 높은 메모리 제한에 대해 프리미엄을 지불 할 수있는 VPS 또는 구성 가능한 호스팅을 가져옵니다.