3GB의 RAM이있는 중간 규모의 인스턴스입니다. webapp을 시작하면 w3wp 프로세스가 80MB로 시작됩니다. 나는 이것이 더 많은 시간이 지나가는 것을 알아 차린다. .... 이제는 570MB 였고 사이트가 5 일 동안 실행 중일 때 프로세스의 메모리 덤프를 가져 와서 소비하고있는 .NET 객체가 있는지 확인했다. 많은 것을 발견했지만, 가장 큰 객체는 18MB였습니다. 이것은 문자열 객체의 집합이었습니다.왜 w3wp 메모리가 계속 증가합니까?
세션 저장소에 redis를 사용하고 있기 때문에 캐시 개체를 사용하고 있지 않으며 실제로 덤프는 캐시에 아무 것도 없다는 것을 보여주었습니다.
내 질문은 다음과 같습니다 ... 메모리가 3GB이므로 캐시 된 일부 페이지가 메모리에 남아 있으므로 요청이있을 때마다 웹 사이트가 더 빠릅니다 (메모리가 캐시 된 이유) 계속 증가합니다. 내가 염려하는 점은 사용되는 경우 모든 EntityFramework 객체를 폐기하거나 배치해야하는 다른 적절한 스트림을 폐기하더라도 일부 방식으로 메모리 누수가 발생한다는 것입니다. 특정 임계 값에 도달하면 메모리에 있던 오래된 캐시 된 데이터가 제거되고 새 페이지가 포함된다고 가정합니다. 내가 이것을 말하는 것이 맞습니까?
나는 과거에 나는 작은 인스턴스에 있었고 퍼센트는 70 %를 넘지 않았으며 지금은 중간 인스턴스에 있고 메모리는 이미 60 %라는 것을 지적하고 싶다 .... 매우 매우 이상하다. 동일한 코드로
나를 도와주고 싶다면 메모리 덤프를 보낼 수 있습니다.
프레임 워크에 익숙하지 않지만 일반적으로 프레임 워크는 설명 된대로 일부 캐싱을 수행합니다. 본질적으로 나는 당신이 3GB에 도달하지 않으면 프레임 워크가 가비지 수집을하지 않았다면 걱정해야한다고 생각하지 않을 것이다. 200MB의 MB를 제공하고 최대 값에 도달하면 가비지 수집 여부를 확인하여 테스트 할 수 있습니다. 그러나 이것은 모든 추측 일 수 있습니다. 더 많은 지식을 가진 사람이 플랫폼 별 답변을 줄 수 있습니다. – ShaneNal
웹 앱 이름을 직접 또는 [간접적으로] (https://github.com/projectkudu/kudu/wiki/Reporting-your-site-name-without-posting-it-publicly) 공유 할 수 있습니까? 이렇게하면 조사하는 데 도움이됩니다. 감사! –
David 내 웹 사이트는 showshappening –