none
IIS W3P.exe 프로세스 메모리 사용 관련 문의 RRS feed

  • 질문

  • 안녕하세요. 기존에 운영 프로젝트에서 개발서버 타켓으로 성능 테스트 진행 후 IIS W3P.exe메모리가 많이 증가된 것을 확인 하였는데요.

    GC에 의해서 당연히 메모리가 해제되면서 차츰차즘 감소 할것으로 예상 하였는데 30분이 지나도 감소 되지 않고 증가된 메모리 수치 만큼 유지하는것을 확인 하였습니다.

    한번 증가됨 메모리 수치는 시간이 좀 더 지나야 감소 되는건가요? 아니면 소스코드 내에서 메모리 해제 하는 구간이 없기 때문에 메모리 수치가 줄어들지 않는것인지 궁금합니다.

    감사합니다.

    2020년 9월 10일 목요일 오후 11:21

모든 응답

  • 닷넷이라고 해서 메모리 누수가 없는 것은 아닙니다. 프로그램을 잘 못 만든 경우 GC가 안 되어 계속 남아 있는 경우도 있으니 참고하시고,

    8 Ways You can Cause Memory Leaks in .NET
    ; https://michaelscodingspot.com/ways-to-cause-memory-leaks-in-dotnet/

    메모리가 늘어난 후, 딱히 힙 할당이 없이 유지되고 있다면 GC가 발생하지 않을 수도 있습니다. 사실 그런 경우는 많지 않긴 한데, 위의 링크에서와 같은 오류가 없이 만든 프로그램인데도 메모리 누수가 의심된다면 메모리 덤프를 떠서 WinDbg 등의 도구로 분석하거나, 메모리 프로파일러 등을 이용해 분석해야 할 것입니다.

    (한 번 증가된 메모리라도 필요 없는 할당이었다면 다음 번 Full GC에서 모두 제거됩니다. 소스 코드 내에서 메모리 해제하는 구간이 없는 것은 GC가 있으니 당연한 것이고, 단지 비관리 메모리를 사용했다면 그건 명시적으로 해제해야 합니다.)

    2020년 9월 11일 금요일 오전 12:10