일반적인 심층 분석 문제
평가는 측정 중인 작업의 완료를 위해 미리 정의된 분석 임계값을 설정합니다. 평가는 작업 기간이 이러한 임계값을 초과할 때 문제를 식별하고 보고합니다. Windows 평가 도구 키트의 일부 평가는 고급 문제 분석을 수행합니다. Windows Assessment Console 및 Windows ASC(Windows 평가 서비스 - 클라이언트)에서 이러한 문제를 보고 WPA(Windows Performance Analyzer)에서 추가로 분석할 수 있습니다.
평가에서 생성된 문제는 여러 원본에서 발생합니다. 이 항목에서는 몇 가지 일반적인 고급 분석 문제에 대해 설명합니다.
문제 형식
Windows Assessment Console 및 Windows ASC에서 평가에 의해 보고된 문제는 두 군데(결과 보기 페이지의 왼쪽 열과 오른쪽의 세부 정보 창)에 표시됩니다. 결과 보기 페이지의 실행 정보 테이블과 평가 결과 테이블에 문제, 경고 및 오류가 표시됩니다. 문제를 마우스 오른쪽 단추로 클릭한 다음 그룹화 기준을 선택하여 이러한 문제를 그룹화할 수 있습니다. 세부 정보 창에서 문제는 심각도별로 정렬됩니다. 키워드와 메타데이터를 사용하여 필터링할 수 있습니다. 자세한 내용은 문제 그룹화, 필터링 및 검색을 참조하세요.
결과 보기의 링크를 사용하여 WPA를 열면 WPA 문제 창에서 평가가 식별한 문제 목록을 볼 수 있습니다. 이러한 문제 중 하나를 선택하면 WPA 세부 정보 창에 세부 정보와 권장 솔루션이 표시됩니다. WPA에 대한 자세한 내용은 Windows Performance Analyzer를 참조하세요.
Windows Assessment Console 및 Windows ASC의 세부 정보 창에 나타나는 대부분의 문제는 일반적인 구조를 가지고 있으며 다음을 포함할 수 있습니다.
제목
제목에는 문제를 정량화하는 메트릭 및 영향을 받은 작업의 이름과 같은 문제에 대한 필수 정보가 포함되어 있습니다. 제목 정보에는 문제가 감지되었을 때 평가가 있었던 단계도 포함될 수 있습니다.
권장
가능하면 세부 정보 창에서 감지된 문제를 해결하기 위한 단계를 제공합니다. 또한 경우에 따라 문제에 대한 추가 조사를 지원하기 위한 지침을 제공합니다. 이 정보에는 성능을 최적화하거나 평가에서 식별한 문제를 극복하는 데 도움이 되는 방법이나 모범 사례가 포함될 수 있습니다.
자세한 정보
경우에 따라 세부 정보 창은 문제를 해결하기 위해 수행할 수 있는 단계에 대한 정보를 제공할 수 있는 웹 사이트에 대한 링크로 추가 정보를 제공합니다.
추가 분석
고급 분석 문제의 경우 세부 정보 창에서 WPA 심층 분석 링크를 제공하므로 WPA를 열고 문제의 원인을 자세히 조사할 수 있습니다.
WPA가 열리면 다음과 같이 평가에서 식별한 문제 유형에 따라 추가 세부 정보가 제공될 수 있습니다.
프로세스 이미지 세부 정보에는 다음을 포함하여 식별된 문제를 생성한 프로세스에 대한 파일 및 버전 정보가 포함됩니다.
- 파일 이름
- 파일 경로
- 파일 설명
- 파일 버전
- 제조업체
다음을 포함한 파일별 디스크 작업 요약:
- 디스크 읽기 및 쓰기의 크기 및 수
- 디스크 플러시 수
다음을 포함한 프로세스/스레드별 CPU 작업 요약:
- 프로세스의 각 스레드가 CPU 시간에 미치는 영향
- 성능 영향이 발생한 위치와 기간을 보여 주는 호출 스택
다음을 포함하여 프로세스 또는 스레드에 의한 CPU 또는 디스크 작업으로 인해 발생하는 지연에 대한 요약:
- 지연 기간을 포함하여 지연된 스레드 또는 프로세스
- 지연 기간을 포함하여 프로세스의 각 스레드가 미치는 영향
- 지연을 일으키거나 영향을 받는 각 스레드에 대한 호출 스택
참고
호출 스택이 제공하는 정보는 작업의 통계적 표현입니다. 정확도는 평가에서 수집한 샘플에 따라 다릅니다.
관리 코드
관리 코드는 Microsoft .NET CLR(공용 언어 런타임)에서 실행되는 코드를 나타냅니다. CLR은 Microsoft .NET Framework를 기반으로 하는 애플리케이션의 실행을 관리합니다. CLR 프로세스는 Windows 부팅 중에 시작되며 추가 리소스 소비가 발생하여 부팅 시간이 늘어날 수 있습니다. CLR 초기화 중에 .NET Framework가 읽는 파일은 부팅 프로세스와 시작 화면의 표시를 지연시킬 수 있는 메가바이트의 스토리지 읽기를 추가할 수 있습니다.
문제 예시
<X>.exe는 관리 코드 시작 프로세스입니다.
권장
관리 코드 범주의 문제의 경우 .NET Framework 기반 애플리케이션 또는 서비스가 Windows 부팅에 중요한 경우 관리 코드 사용을 피하는 것이 좋습니다. 관리 코드 사용을 피할 수 없는 경우 Windows 부팅 시 다른 필수 애플리케이션 또는 서비스에 필요한 리소스와 경합하지 않도록 .NET Framework 기반 애플리케이션 또는 서비스의 시작을 지연하는 것이 좋습니다.
관리 코드를 사용하면 약간의 성능 오버헤드가 수반되며 호출당 오버헤드가 매우 두드러질 수 있습니다. 문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 오버헤드의 원인을 확인한 후 다음 단계를 수행하여 지연을 줄입니다.
- 부팅 경로에서 불필요한 관리 코드를 사용하지 마세요.
- 작업 스케줄러를 사용하여 나중에 애플리케이션을 시작합니다.
- 요청 시 또는 트리거될 때만 애플리케이션을 시작합니다. 자세한 내용은 [MSDN] 효율적인 Windows용 백그라운드 프로세스 개발을 참조하세요.
프로세서 사용
애플리케이션 및 서비스의 높은 CPU 사용은 UI 응답 없음, 동영상 및 사운드 결함과 같은 열악한 사용자 환경에 기여할 수 있습니다. 정상 또는 높은 우선 순위로 실행 중인 프로세스 스레드가 프로세서 리소스 사용에 대한 임계값을 초과하면 평가에서 해당 프로세스를 문제로 플래그 지정하고 지연을 계산합니다. 단일 프로세스가 CPU를 너무 많이 사용하면 다른 프로세스가 시스템 리소스를 놓고 경쟁해야 하므로 지연될 수 있습니다. 생성된 문제는 CPU에 미치는 영향 측면에서 빨간색 또는 노란색으로 구분됩니다.
문제 예시
프로세스 <X>는 빠른 시작 다시 시작 후 켜기/끄기 동안 5.3초간 CPU를 사용합니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 추가 조사가 필요한 프로세스의 함수를 결정합니다. 과도한 프로세서 사용은 한 번에 둘 이상의 스레드에서 발생할 수 있습니다. 관련된 각 스레드에 대해 WPA에서 함수 호출 스택을 봅니다.
참고
호출 스택이 제공하는 정보는 작업의 통계적 표현입니다. 정확도는 평가에서 수집한 샘플에 따라 다릅니다.
스토리지 사용량
프로세스는 런타임에 스토리지 읽기, 쓰기 또는 플러시를 수행할 수 있습니다. 하드 드라이브는 단일 공유 리소스이므로 스토리지를 과도하게 사용하거나 불필요하게 사용하면 평가에서 식별하는 상당한 성능 문제가 발생할 수 있습니다.
문제 예시
프로세스 <X>.exe는 빠른 시작 다시 시작 후 켜기/끄기 동안 스토리지에서 23MB를 읽습니다.
프로세스 <X>.exe는 빠른 시작 다시 시작 후 켜기/끄기 동안 스토리지로 12번 플러시됩니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 상위 파일 I/O의 요약 목록을 검토합니다. 이 목록을 사용하여 과도한 읽기 또는 쓰기를 유발하는 파일을 찾습니다. 디스크 플러시의 경우 원본을 가리키는 호출 스택을 찾습니다.
과도한 디스크 읽기 또는 쓰기의 경우 프로세스가 처리하는 데이터의 양을 줄이거나 읽기 또는 쓰기를 나중으로 지연하는 것이 좋습니다.
줄이거나 지연할 수 없는 I/O의 경우 64KB에서 128KB의 I/O 크기를 사용하여 다른 미해결 I/O 작업을 크게 방해할 수 있는 작은 방해 스트림을 방지하는 것이 좋습니다.
디스크 플러시는 다른 프로세스의 I/O 작업에 영향을 줍니다. 필요할 때만 디스크 플러시를 수행해야 합니다.
처리 지연
스레드가 CPU 또는 디스크 리소스를 사용하면 작업 기간이 늘어납니다. 프로세서에 대한 경합은 종종 스레드 고갈 및/또는 선점으로 나타납니다. 이 문제의 분석 섹션은 프로세스의 영향을 받는 모든 스레드로 구성됩니다. 이 스레드는 먼저 선점되거나 고갈되거나 프로세스가 완료된 후 나중에 준비되었습니다.
스레드는 작업이 완료될 때까지 기다립니다. 작업이 완료되면 DPC는 이 대기 스레드를 준비합니다.
대기 중인 스레드의 스레드 ID와 누적 대기 시간이 문제 세부 정보에 나타납니다. 이 스레드의 대기 스택을 보려면 문제 세부 정보를 확장합니다.
복잡한 작업에서는 스레드가 다른 스레드에서 대기하고 작업이 완료되기를 기다리는 다른 스레드에서 대기하는 것이 일반적입니다. DPC, 실행 중인 스레드, 스케줄러 또는 다른 메커니즘이 가장 최근에 대기 중인 스레드를 준비합니다. 가장 최근에 대기 중인 이 스레드는 다시 한 번 실행되고 대기 중인 스레드를 준비합니다. 프로세스는 가장 빠른 대기 스레드가 준비되고 다시 실행될 때까지 각 대기 스레드에서 반복됩니다.
문제 세부 정보는 이 제어 전송 시퀀스를 시간순으로 설명합니다. 예를 들면 다음과 같습니다.
csrss.exe(600) 프로세스의 스레드 712는 374밀리초 동안 대기합니다.
프로세스 explorer.exe(1836)의 스레드 2724는 374밀리초 동안 대기합니다.
프로세스 explorer.exe(1836)의 스레드 4748은 373밀리초 동안 절전 상태입니다.
타이머 DPC가 스레드 4748을 준비합니다.
스레드 4748이 대기 중인 스레드 2724를 준비합니다.
스레드 2724가 대기 중인 스레드 712를 준비합니다.
작업 중에 동일한 제어 전송 순서가 여러 번 반복될 수 있습니다. 대기 시간은 누적됩니다.
대기 중인 함수를 포함한 스택을 보려면 대기 중인 스레드를 설명하는 문장을 선택합니다. 준비 중인 함수를 보여 주는 스택을 보려면 다른 스레드를 준비 중인 스레드를 설명하는 문장을 선택합니다.
위의 예제에서 가장 안쪽 스레드인 스레드 4748의 대기 스택은 일반적으로 지연의 원인에 대한 좋은 정보를 제공합니다. 대기 함수 앞의 스택 프레임과 스택 뒤에 오는 파일 정보는 문제에 대한 추가 인사이트를 제공할 수 있습니다.
처리 지연 유형은 다음과 같습니다.
CPU 사용
스레드가 실행되면 분석 중인 작업 중 우선 순위에 관계없이 CPU 시간을 소비하고 작업의 총 시간에 기여하며 완료가 지연될 수 있습니다.
문제 예시
<X> 프로세스의 CPU 사용으로 인해 작업, 빠른 시작 다시 시작 탐색기 초기화가 125밀리초 동안 지연됩니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 지연을 유발하는 스레드에 대한 호출 스택을 분석합니다.
고갈
프로세스가 실행되는 동안 스레드 고갈이 발생하면 작업 완료가 지연될 수 있습니다. 스레드는 실행할 준비가 되었을 때 고갈 상태이지만 다른 스레드는 스레드가 즉시 실행되는 것을 방지합니다.
문제 예시
<X> 프로세스가 고갈 상태입니다. 고갈로 인해 작업 빠른 시작 다시 시작 탐색기 초기화가 50밀리초 지연됩니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 고갈된 스레드와 고갈 상태의 스레드 실행을 방해한 스레드를 확인합니다. 문제 세부 정보를 보고 함수 호출 스택을 관찰하여 스레드 고갈의 원인을 확인합니다.
선점
실행 중인 스레드는 우선 순위가 더 높은 다른 스레드가 대신 실행될 때 선점됩니다. 우선 순위가 더 높은 스레드는 다른 스레드의 작업 완료를 지연시킵니다.
문제 예시
<X> 프로세스가 선점됩니다. 선점으로 인해 작업 빠른 시작 다시 시작 탐색기 초기화가 150밀리초 지연됩니다.
권장
스레드 예약에 대한 자세한 내용은 스레드 예약을 참조하세요.
Sleep
스레드는 SleepEx와 같은 사용 가능한 Windows 절전 기능 중 하나를 호출할 때 절전 모드로 전환됩니다. 이로 인해 스레드 작업 완료가 지연됩니다.
문제 예시
<X> 프로세스는 4.0초 동안 절전 모드로 전환하여 작업 빠른 시작 일시 중단 디바이스 BAR을 지연시킵니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택합니다. 함수 호출 스택 및 파일 정보에서 예기치 않은 스레드 절전 모드의 원인을 확인할 수 있습니다.
스토리지 I/O 지연
스레드가 스토리지 리소스를 사용하면 작업 기간이 늘어날 수 있습니다. 여러 스레드가 스토리지 사용을 위해 경합하는 경우 결과로 발생하는 임의 디스크 검색으로 인해 지연이 더 중요해집니다.
스토리지 지연 유형은 다음과 같습니다.
스토리지 읽기 및 쓰기
다음 문제에는 작업 중 읽기(또는 쓰기)로 인한 모든 지연의 합계가 포함되어 있습니다.
문제 예시
작업 빠른 시작 다시 시작 탐색기 초기화는 스토리지에서 2.3MB의 읽기로 인해 1.2초 지연을 발생시킵니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 가장 높은 지연을 기준으로 정렬된 스레드와 이 작업 중 성능을 개선하기 위한 권장 사항을 확인합니다.
스토리지 플러시
다음 문제는 작업 지연에 기여한 모든 플러시 합계를 보여 줍니다.
문제 예시
작업 빠른 시작 다시 시작 탐색기 초기화는 스토리지에 대한 4번의 플러시로 인해 300밀리초 지연을 발생시킵니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 디스크 플러시를 유발하는 각 스레드에 대한 호출 스택을 확인하고 작업 지연에 기여한 관련 코드를 식별합니다.
레지스트리 플러시
레지스트리 플러시는 프로세스가 레지스트리 수정을 완료한 후 RegFlushKey 함수를 명시적으로 사용할 때 발생합니다. 평가 결과 레지스트리 플러시가 사용자가 인식하는 성능 문제의 중요한 원인이 될 수 있음이 확인되었습니다.
레지스트리를 변경할 때마다 RegFlushKey 함수를 사용할 필요는 없습니다. 이 함수는 레지스트리 변경 내용을 디스크에 즉시 적용해야 하는 경우에만 사용하는 것이 가장 좋습니다.
레지스트리 플러시 문제에는 두 가지 유형이 있습니다.
레지스트리를 한 번 이상 플러시하기 위해 식별되는 프로세스입니다. 이러한 문제는 높은 우선 순위로 분류됩니다.
문제 예시
빠른 시작 다시 시작 후 켜기/끄기 동안 하나 이상의 프로세스가 레지스트리 하이브를 플러시합니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 이 동작을 일으킨 프로세스의 각 스레드를 검사합니다. WPA는 작업이 발생한 관련 함수 호출 스택을 제공합니다.
작업 중에 레지스트리를 플러시하고 작업 완료를 지연시키는 프로세스입니다.
문제 예시
<X> 프로세스는 405밀리초 동안 레지스트리 하이브를 플러시하여 빠른 시작 일시 중단 호출 구독자 프로필 작업을 지연시킵니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 프로세스의 각 스레드에 대한 함수 호출 스택을 분석합니다.
시간 계산
평가는 일반적으로 작업당 여러 문제를 보고합니다. 시간 계산 문제는 여러 문제가 설명하는 결합된 시간과 문제로 설명되지 않은 작업 부분을 보여 줍니다. 작업이 많은 단기 문제로 구성되고 분석 임계값 미만인 경우 개별 문제로 보고되지 않습니다. 이 디자인은 가장 영향력 있는 문제를 강조하여 조사에 집중할 수 있도록 도와줍니다.
작업 기간 임계값
이 임계값은 전체 작업에 소요될 것으로 예상되는 시간입니다. 시간 계산 문제는 측정된 작업 기간과 평가에서 설정한 작업 기간 임계값에 대해 보고합니다.
최소 분석 임계값
문제에서 설명하는 영향이 분석 임계값보다 큰 경우에만 문제가 보고됩니다.
Type 1:
작업 기간이 작업 기간 임계값을 초과합니다. 작업에 분석 임계값을 초과하는 문제도 있습니다. |
문제 예시
요약: 빠른 시작 종료 프로세스 Example.exe는 6.5초가 걸리고 임계값인 2초를 초과합니다. 평가 결과 이 작업에 영향을 미치는 다른 문제가 확인되었습니다. 이러한 다른 문제는 이 작업의 시간을 완전히 설명합니다. |
Type 2:
작업 기간이 작업 기간 임계값을 초과합니다. 작업에는 분석 임계값보다 큰 문제와 분석 임계값보다 작은 문제가 혼합되어 있습니다. |
문제 예시
요약: 빠른 시작 종료 프로세스 Example.exe는 6.5초가 걸리고 임계값인 2.0초를 초과합니다. 평가 결과 이 작업에 영향을 미치는 다른 문제가 확인되었습니다. 이러한 다른 문제가 이 작업 시간의 5.9초를 차지합니다. 나머지 500밀리초는 최소 분석 임계값인 150밀리초를 초과하지 않는 문제로 구성됩니다. |
Type 3:
작업 기간이 작업 기간 임계값을 초과합니다. 이 작업에 영향을 미치는 모든 문제는 분석 임계값보다 작으므로 표시되지 않습니다. |
문제 예시
요약: 빠른 시작 종료 프로세스 Example.exe는 6.5초가 걸리고 임계값인 2.0초를 초과합니다. 평가 결과 이 작업에 영향을 미치는 다른 문제가 확인되었습니다. 이 작업에 영향을 미치는 다른 문제는 최소 분석 임계값인 200밀리초를 초과하지 않으므로 생략합니다. |
Type 4:
작업 기간이 평가 로깅이 활성화된 기간을 초과합니다. 그러나 로깅이 활성화되었을 때 작업에서 지연이 발견되었습니다. 이러한 지연은 CPU 또는 디스크 경합으로 인해 발생했습니다. |
문제 예시
요약: 평가 로깅이 끝난 후 이 작업이 완료되기 때문에 빠른 시작 다시 시작 후 켜기/끄기 기간을 알 수 없습니다. 평가 로깅이 활성화된 동안 이 작업의 4초는 CPU 경합으로 인한 것입니다. |
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 Windows Performance Analyzer에서 이 문제를 확인합니다. 보고된 경우 지연의 근본 원인을 이해하려면 이 작업 동작의 세부 정보를 조사합니다. 관련 문제를 보려면 다음 단계를 따릅니다.
필터 옵션을 사용하여 문제 제목에 인용된 작업과 관련된 모든 문제를 봅니다.
전체 문제 목록을 볼 때 더하기(+)를 선택하고 필터 옵션 목록에서 작업을 선택합니다.
문제 작업 필터 상자에 작업 이름을 입력합니다. 명명된 작업 목록에서 특정 작업을 선택합니다. 이 시간 계산 요약 문제와 관련된 필터링된 문제 목록을 얻을 수 있습니다.
관련 문제를 찾는 방법에 대한 자세한 내용은 문제 그룹화, 필터링 및 검색을 참조하세요.
기호 누락
일부 평가에는 기호에 대한 액세스 권한이 필요합니다. 어떤 경우에는 기호 서버를 사용할 수 없는 경우 평가 결과의 정보가 정확하지 않거나 불완전할 수 있습니다. 대부분의 경우 인터넷 연결 및 Microsoft 공용 기호 서버에 대한 액세스가 이러한 종속성을 충족합니다. 다른 경우에는 프라이빗 기호 서버를 설정하거나 로컬 컴퓨터에 기호를 설치할 수 있습니다.
사용되는 기호 유형은 다음과 같습니다.
중요 기호: 이러한 기호를 사용할 수 없으면 평가에서 수집한 데이터의 전체 분석을 완료할 수 없습니다. 이 경우 문제 텍스트에는 평가 분석 중에 구성 및 사용 가능한 기호가 없는 모듈에 대한 특정 모듈 이름이 포함됩니다.
타사 구성 요소에 대한 기호: 이러한 기호를 사용할 수 없는 경우 평가는 성공적으로 완료되지만 결과가 부정확하거나 불완전할 수 있습니다. 생성된 문제 세부 정보에는 Windows Performance Analyzer에서 볼 때 불완전하거나 잘못된 정보가 포함될 수 있습니다. 예를 들어 문제 세부 정보 섹션을 보면 표시되는 호출 스택에 특정 구성 요소에 대한 함수 이름이 누락되었을 수 있습니다.
커널 기호: 메모리 공간 평가는 분석에 커널 기호를 사용합니다. 구성된 기호를 찾지 못하면 평가가 완료된 후 기호가 없음을 언급하는 문제가 결과에 생성됩니다.
권장
중요한 기호 누락: 컴퓨터가 Microsoft 공용 기호 서버에 액세스할 수 있는지 확인합니다. 이 문제는 올바른 기호 위치를 가리키거나 로컬 드라이브에 기호를 설치하여 해결할 수 있습니다.
Microsoft가 아닌 구성 요소의 기호 누락: 이러한 누락된 기호는 사용자의 구성 요소 또는 다른 파트너가 소유한 구성 요소에 대한 것일 수 있습니다. 파트너와 협력하여 기호가 누락된 구성 요소에 대해 이러한 타사 기호를 얻고, 평가를 다시 실행하기 전에 컴퓨터에서 올바른 기호 경로를 구성합니다.
참고
올바른 기호 경로 설정에 대한 자세한 내용은 Windows 평가 서비스 문제 해결을 참조하세요.
에코시스템의 파트너 간에 구성 요소 기호를 공유하면 안정적이고 효율적인 버그 분류 및 분석 프로세스를 통해 더 나은 협업을 보장합니다. 파트너는 이러한 협력 관계를 정의하여 시스템 구성 요소에 보고된 문제의 근본 원인을 찾는 데 필요한 리소스를 확보할 것을 권장합니다.
DPC 및 ISR
장기 실행 DPC(지연된 프로시저 호출) 및 ISR(인터럽트 서비스 루틴)로 인해 작업 기간이 연장되는 지연이 발생할 수 있으며 이러한 대기 시간은 사용자가 성능 문제로 인식할 수 있습니다.
DPC(및 ISR) 문제는 일반적으로 DPC(또는 ISR)와 관련된 작업에 익숙한 엔지니어의 심층 분석이 필요합니다. 이 문제에 대한 심층 분석은 지연 또는 리소스 사용을 유발하는 DPC 유형에 따라 다릅니다.
작업을 지연시키는 DPC
스레드는 작업이 완료될 때까지 기다립니다. 작업이 완료되면 DPC는 이 대기 스레드를 준비합니다.
대기 중인 스레드의 스레드 ID와 누적 대기 시간이 문제 세부 정보에 나타납니다. 이 스레드의 대기 스택을 보려면 문제 세부 정보를 확장합니다.
복잡한 작업에서는 스레드가 다른 스레드에서 대기하고 작업이 완료되기를 기다리는 다른 스레드에서 대기하는 것이 일반적입니다. DPC, 실행 중인 스레드, 스케줄러 또는 다른 메커니즘이 가장 최근에 대기 중인 스레드를 준비합니다. 가장 최근에 대기 중인 이 스레드는 다시 한 번 실행되고 대기 중인 스레드를 준비합니다. 프로세스는 가장 빠른 대기 스레드가 준비되고 다시 실행될 때까지 각 대기 스레드에서 반복됩니다.
문제 세부 정보는 이 제어 전송 시퀀스를 시간순으로 설명합니다. 예를 들면 다음과 같습니다.
csrss.exe(600) 프로세스의 스레드 712는 374밀리초 동안 대기합니다.
프로세스 explorer.exe(1836)의 스레드 2724는 374밀리초 동안 대기합니다.
프로세스 explorer.exe(1836)의 스레드 4748은 373밀리초 동안 절전 상태입니다.
타이머 DPC가 스레드 4748을 준비합니다.
스레드 4748이 대기 중인 스레드 2724를 준비합니다.
스레드 2724가 대기 중인 스레드 712를 준비합니다.
작업 중에 동일한 제어 전송 순서가 여러 번 반복될 수 있습니다. 대기 시간은 누적됩니다.
대기 중인 함수를 포함한 스택을 보려면 대기 중인 스레드를 설명하는 문장을 선택합니다. 준비 중인 함수를 보여 주는 스택을 보려면 다른 스레드를 준비 중인 스레드를 설명하는 문장을 선택합니다.
위의 예제에서 가장 안쪽 스레드인 스레드 4748의 대기 스택은 일반적으로 지연의 원인에 대한 좋은 정보를 제공합니다. 대기 함수 앞의 스택 프레임과 스택 뒤에 오는 파일 정보는 문제에 대한 추가 인사이트를 제공할 수 있습니다.
DPC 관련 지연은 다음 예에서 볼 수 있듯이 세 가지 유형으로 분류할 수 있습니다.
문제 예시
네트워크 DPC: 네트워크 사용으로 인해 작업 빠른 시작 전체 다시 시작이 4.0초 지연됩니다.
타이머 DPC: 작업 빠른 시작 종료 프로세스 Example.exe가 5.3초 지연됩니다.
작업 빠른 시작 일시 중단 디바이스 BAR은 대기 스레드로 인해 2.6초 지연이 발생합니다. DPC Example.sys는 이 대기 스레드를 준비합니다.
작업 중에 발생하는 DPC 또는 ISR
이 유형의 문제는 시나리오의 성능에 영향을 미칠 수 있는 긴 ISR 또는 DPC를 강조합니다. 문제는 이 ISR/DPC 작업을 지연 기간과 연결하지 않습니다.
문제 세부 정보에는 ISR/DPC가 선점한 각 스레드가 나열됩니다. 목록은 대략적으로 선점 시간 내림차순입니다. 목록에서 스레드를 확장하여 ISR/DPC가 선점하는 스레드 작업에 가까운 스택을 봅니다.
문제 예시
DPC는 미디어 엔진 수명 동안 1.0밀리초 임계값을 5번 초과합니다. 이 DPC의 5개 인스턴스는 총 3.7초 동안 실행됩니다.
참고
호출 스택에 제공된 정보는 해당 작업의 통계적 표현이며(밀리초마다 한 번씩 샘플링됨), 정확도는 평가에서 수집한 샘플에 따라 다릅니다.
요약 문제
요약 문제에는 평가에서 식별된 문제에 대한 개요가 포함되어 있습니다. 이를 통해 특정 성능 동작을 확인하고 이러한 문제의 시스템에 대한 광범위한 영향을 시각화할 수 있습니다. 다음은 평가 결과에 포함될 수 있는 다양한 유형의 요약 문제입니다.
작업 디스크 공간 요약
디스크 공간은 작업 중에 스토리지 I/O를 스토리지 읽기, 쓰기 및 플러시 형식으로 실행하는 모든 프로세스의 결합 기여도입니다. 이 요약은 평가 결과에 이미 보고된 스토리지 사용 문제 외에 디스크 공간에 대한 추가 인사이트를 제공합니다.
WPA의 문제 세부 정보에는 파일 이미지 정보와 시나리오 성능 개선을 위한 권장 사항이 포함되어 있습니다. 또한 분석에는 디스크 공간에 영향을 미치는 프로세스 목록이 내림차순으로 포함되어 있습니다.
문제 예시
요약: 빠른 시작 전체 다시 시작은 275MB의 읽기 및 쓰기를 실행하고 스토리지로 82번 플러시합니다.
참고
결과 보기 페이지에서 문제를 범주별로 그룹화하면 이 요약 문제가 스토리지 사용 그룹 아래의 관련 문제 위에 나타납니다.
프로세서 사용 요약
프로세서 사용 요약 문제는 작업 중에 영향을 덜 미치는 문제와 함께 평가에 의해 이미 식별된 유사한 문제를 집계합니다. 이 요약은 모든 관련 프로세서 사용 문제에 대한 광범위한 관점을 제공합니다.
요약 문제는 영향의 내림차순으로 프로세스별 세부 정보를 제공합니다. 각 프로세스에 대해 이 문제는 프로세스에 있는 모든 스레드의 작업과 CPU 및 파일 이미지 정보를 결합하는 함수 호출 스택을 보여 줍니다. 개별 문제(있는 경우)에는 적용 가능한 각 스레드에 대한 보다 자세한 함수 호출 스택이 포함됩니다.
문제 예시
요약: 프로세스는 빠른 시작 전체 다시 시작 동안 26.9초의 CPU 시간을 사용합니다.
참고
결과 보기 페이지에서 문제를 범주별로 그룹화하면 이 요약 문제가 프로세서 사용 그룹 아래의 관련 문제 위에 나타납니다.
프로세서 및 디스크 경합 요약
이 문제는 프로세서 및 디스크 리소스에 대한 경합으로 인한 작업 지연을 요약합니다. 경합 작업은 시나리오 완료에 중요한 작업을 방해합니다. 문제 세부 정보에는 관련된 다양한 하위 작업이 경합 정도의 내림차순으로 나열됩니다.
함수 호출 스택 및 스레드별 파일 정보와 같은 기타 정보는 평가에서 보고한 각 개별 문제 내에서 사용할 수 있습니다.
문제 예시
요약: 빠른 시작 전체 일시 중단에는 29.5초가 걸립니다. 이 시간 중 300밀리초는 CPU 경합으로 인한 것입니다.
결과 보기 페이지에서 문제를 범주별로 그룹화하면 이 요약 문제가 프로세서 지연 그룹 아래의 관련 문제 위에 나타납니다.
권장
요약 문제는 가장 영향력 있는 문제에 대한 조사를 집중하는 데 도움이 될 수 있습니다. 요약 문제 자체를 읽으면 종종 이러한 문제를 종합하여 광범위한 영향에 대한 인사이트를 얻을 수 있습니다.
요약 문제의 이점을 최대한 활용하려면 다음 두 가지 기준 중 하나를 사용하여 Windows Assessment Console에서 문제 목록을 그룹화할 수 있습니다.
범주. 요약 문제에 대한 기본 및 권장 보기로, 특정 형식의 동일한/비교 가능한 문제와 함께 그룹화됩니다.
Test case. 이 보기에서 요약 문제는 특정 작업 또는 테스트 사례에 적용되는 문제의 하위 집합과 함께 그룹화됩니다.
경고
호출 스택에 제공된 정보는 해당 작업의 통계적 표현이며(밀리초마다 한 번씩 샘플링됨), 정확도는 평가에서 수집한 샘플에 따라 다릅니다.
평가 로깅
평가는 ETW(Windows용 이벤트 추적) 로깅을 사용하여 분석용 데이터를 수집합니다. 이 로깅은 시스템 리소스를 사용합니다. 이 문제 범주는 평가가 실행되는 동안 발생하는 스토리지 작업을 설명합니다.
문제 예시
평가는 빠른 시작 다시 시작 후 켜기/끄기 동안 스토리지에 39MB를 기록합니다.
권장
문제의 추가 분석 영역에서 WPA 심층 분석 링크를 선택하여 로그 파일에 대한 스토리지 쓰기 정보를 찾습니다.