2012-09-11 5 views
0

우리는 200 페이지 이상의 ASP.NET 4.0 웹 응용 프로그램을 보유하고 있습니다. 그것은 공개 사이트와 CMS를 가지고 있습니다. 동일한 서버에있는 거의 30 개의 도메인에이 앱을 설치 했으므로 각 도메인에 앱이 설치되어 있습니다.ASP.NET 응용 프로그램 성능 및 메모리 누수

서버 메모리 (전용 작업 집합)는 느리게 커지지 만 커집니다. 서버에는 8GB RAM이 있지만 언젠가는 매일 아침 AppPool을 재활용하고 있지만 OutOfMemory 메시지가 표시됩니다.

메모리 누수가 있어야하지만 누수를 찾는 방법을 알지 못합니다. 우리는 우리가 할 수있는 모든 요소를 ​​처분하려고 노력했습니다 ...

우리는 이것에 대한 도움이 필요합니다. 이러한 종류의 서비스를 제공하는 회사가 있습니까? 앱을 확인하고 메모리 누수를 수정해야합니까?

고마워요

는 일부 연구 후에 나는이 같은 라인을 많이 발견 :

라벨 xLabel = (라벨) FormView.FindControl ("xLabel")없이 폐기와

. 거대한 누수가 발생할 수 있다고 생각하지 않습니까? (라벨 xLabel = (라벨) FormView.FindControl ("xLabel")) {동작}

감사

+0

ASP.NET 페이지 수명주기 동안 'FormView'가 나중에 작동하기 때문에'xLabel'을 삭제해도 해가 될 수 있습니다.다른 컨트롤 안에 배치 된 것처럼 보이므로 폐기해야합니다. –

답변

0

새로운 유물을 사용

같은 서비스를 제공 : 더 나은하지 않을까요 https://newrelic.com/가 무료 평가판이며 응용 프로그램에서 꽤 우수한 분석 기능을 제공합니다.

아니면 MSDN에서이 문서를 체크 아웃 할 수 그것을 자신을 수행 할 수 :

http://msdn.microsoft.com/en-us/library/ee658248.aspx


'면책 조항 - 고객, 직원과.

+0

덕분에, 나는 정말로 나쁜 것일 수 있다고 생각되는 코드를 발견했기 때문에 내 메시지를 편집했습니다. –

0

메모리 부족이 발생하면 분명히 잘못된 것이 있습니다. 전날 재활용 후 매일 끝납니다. 나는 당신이 올바른 버전을 가지고 있다면 코드를 보거나 VS.NET 메모리 프로파일 러를 사용할 수 있어야한다고 생각한다.

Ants과 같은 전문적인 프로파일 링 도구를 사용할 수도 있습니다.이 도구는 여러 가지 유용한 정보를 제공합니다.

프로필러를 실행할 수있는 환경이 없으면 메모리 덤프 (DebugDiag 또는 작업 관리자 포함)를 가져 와서 메모리에있는 개체를 검사하여 잘못된 코드로 이어질 수 있습니다. WinDbg를 사용하는 사람이있는 경우 코드 기반이 큰 경우 프로파일 링 도구를 사용하거나 코드를 파는 것보다 메모리 옵션이 더 빠르기 때문에 더 빠른 옵션입니다.

그런데 샘플 코드는 컨테이너를 정리할 때 GC에 의해 자동으로 정리되어야합니다. 레이블 자체를 보유하는 컨테이너 (보기)가 올바르게 처리되지 않으면 문제가 될 수 있습니다. 문제는 일반적으로 참조되고 있고 올바르게 정리되지 않은 다른 객체 (큰 객체)와 함께 발생합니다.

관련 문제