IIS 디버그 진단 도구를 사용 하 여 IIS 프로세스의 메모리 누수 문제를 해결 하는 방법

소개

과도 한 메모리를 사용 하는 IIS 프로세스 메모리 누수가 Microsoft 인터넷 정보 서비스 (IIS)에서 발생할 수 있습니다. Dllhost.exe, Inetinfo.exe, W3wp.exe는 IIS 프로세스에 속합니다. IIS 정적 콘텐츠와 동적 캐시 콘텐츠입니다. IIS 프로세스는 일반적으로 사용 가능한 실제 메모리의 50%까지 사용합니다. 이 메모리 사용 메트릭을 모든 IIS 프로세스의 전체를 각 IIS 프로세스에 작업과 관련이 있습니다. 메모리 문제를 확인 하려면이 정보 및 성능 모니터를 사용할 수 있습니다.

또한 IIS 프로세스 메모리를 과도 하 게를 사용 하면 다음과 같은 현상이 발생할 수 있습니다.
  • Windows 작업 관리자에서 프로세스가 과도 한 메모리를 소모는 메모리 사용 열을 나타냅니다.
  • 성능 모니터에서 전용 바이트 카운터가 프로세스 개체에 있는 Virtual Bytes 카운터와 차이가 커집니다.
  • IIS 6.0 이상, 32 비트 IIS 프로세스 최대 1.3 기가바이트 (GB의 가상 메모리를) 사용합니다. 메모리 재활용 설정 되어 있으면 다음과 유사한 이벤트가 기록 됩니다.
  • 메모리 재활용 설정 되어 있지 않으면 32 비트 IIS 프로세스 최대 1.3 g B의 가상 메모리를 사용 하 고 결국 응답 하지 않습니다. 그런 다음 다음과 유사한 이벤트가 기록 됩니다.

자세한 내용

IIS 프로세스가 과도한 메모리를 소비하는 경우, 메모리 누수를 발생시킨 해결되지 않은 메모리 할당 문제를 해결하기 위해 IIS 디버그 진단 도구를 사용합니다. 메모리 누수를 모니터링 하 고 LeakTrack.dll 파일 삽입 해야 합니다. 누수를 재현 하는 즉시 메모리 덤프 파일이 생성 됩니다. 메모리 덤프 파일 메모리 누수 정보를 포함합니다.

과도한 메모리를 사용하는 IIS 프로세스 문제를 해결하는 데 IIS 디버그 진단 도구를 사용하려면 다음 이 단계를 수행합니다.

1 단계: 다운로드 및 IIS 디버그 진단 도구 v 1.2를 설치 합니다.

다음 파일은 Microsoft 다운로드 센터에서 다운로드할 수 있습니다.

IIS 디버그 진단 v1.2
http://www.microsoft.com/download/en/details.aspx?id=26798 


단계 2: 메모리 누수가 발생 하기 전에 성능 로깅 설정

  1. 시작을 클릭 하 고 프로그램 디버그 진단 도구지정 하 고 누른 다음 디버그 진단 도구 1.2.
  2. 도구클릭 한 다음 옵션 및 설정을 클릭 합니다.
  3. 성능 로그 탭을 누르고 성능 카운터 데이터 로깅 사용클릭 한 다음 확인을 클릭.
참고: 데이터 샘플링 간격 및 모니터링 시작 시간을 메모리 누수가 재현에 따라 다릅니다. 로그 크기 때문에 서버 폭주 하지 않고 필요한 정보를 얻을 수 있는 지원 전문가 사용 하 여 제대로 작동 하는지 확인 합니다.

3 단계: "메모리와 핸들 누수" 규칙 만들기

  1. 시작을 클릭 하 고 프로그램 디버그 진단 도구지정 하 고 누른 다음 디버그 진단 도구 1.2.
  2. 규칙 탭에서 규칙 추가클릭 합니다.
  3. 네이티브 (비.Net) 메모리와 핸들 누수를클릭 한 후 다음을 클릭 합니다.
  4. 프로세스에서 메모리 누수를 선택한 후 다음을 클릭 합니다.
  5. 구성 누수규칙 대화 상자에서 입력 하거나 준비 시간 상자에 준비 시간을 선택 합니다.

    참고: 문제를 재현 하는 즉시 메모리 규칙이 활성화 될 때 즉시 추적 시작 확인란을 선택 하려면 클릭 합니다.
  6. 클릭 구성를... 생성 Userdump 섹션을 끝내 충돌 userdump 예기치 않은 프로세스에 가져올 규칙 자동 생성 확인란이 선택 되어 있는지 확인 합니다. 메모리 덤프를 만들 수 얼마나 많은 메모리 사용 후 구성할 수 있습니다.
  7. 규칙 완료 상자에서 입력 하거나 해당 문제를 재현 하는 데 필요한 시간을 선택 합니다.

    참고: 지정된 된 시간이 끝날 때 덤프 파일이 만들어집니다.
  8. 다음을 클릭하고, 마침을 클릭합니다.

4 단계: 데이터를 수동으로 가져오려면

  1. 시작을 클릭 하 고 프로그램 디버그 진단 도구지정 하 고 누른 다음 디버그 진단 도구 1.2.
  2. 프로세스 탭을 클릭 하 고 원하는 프로세스를 마우스 오른쪽 단추로 누른 다음 모니터에 대 한 누수.
  3. 누수를 재현 4b 단계에서에서 프로세스를 마우스 오른쪽 단추로 클릭 한 다음 전체 Userdump 만들기를 클릭 합니다.
참고: 상태가 활성 인지 확인 합니다. 또한 Userdump 횟수 카운터 값에 메모리 덤프 파일을 만들 때마다를 증가 합니다.

5 단계: 메모리 덤프 파일이 완료 된 후에 성능 로깅 중지

  1. 시작을 클릭 하 고 프로그램 디버그 진단 도구지정 하 고 누른 다음 디버그 진단 도구 1.2.
  2. 도구클릭 한 다음 옵션 및 설정을 클릭 합니다.
  3. 성능 로그 탭을 누르고 성능 카운터 데이터 로깅 사용 안 함클릭 한 다음 확인을 클릭.

6 단계: 메모리 덤프 파일 분석

  1. 시작 실행디버그 진단 도구의 경로 입력 한 다음 확인을 클릭 합니다.

    참고: 기본적으로 디버그 진단 도구는 C:\Program Files\DebugDiag 폴더에 있는.
  2. 고급 분석 탭의 데이터 파일 추가클릭 합니다.
  3. 덤프 파일을 분석 하 고, 찾아 누른 다음 열기를 누릅니다.
  4. 고급 분석 탭에서 메모리 압력 분석기, 누르고 시작 분석을 클릭 합니다.
  5. Microsoft Internet Explorer 표시 되는 보고서를 검토 합니다. 이 보고서의 복사본을 \DebugDiag\Reports 폴더에 저장 됩니다.

7 단계: 사용자 지정.dll 파일을 사용 하는 경우 추가 "기호 검색 경로 대 한 분석" 경로 또는 "기호 검색 경로 대 한 디버깅" 경로

  1. 도구클릭 한 다음 옵션 및 설정을 클릭 합니다.
  2. 기호 검색 경로 대 한 분석 상자 또는 디버깅을 위한 기호 검색 경로 상자에 적절 한 경로 입력 한 다음 확인을 클릭 합니다.
속성

문서 ID: 919790 - 마지막 검토: 2017. 2. 18. - 수정: 2

Microsoft Internet Information Services 6.0, Microsoft Internet Information Services 7.0, Microsoft Internet Information Services 7.5

피드백