다음을 통해 공유


성능 및 응답성 최적화

고객은 고성능 및 반응형 시스템을 기대합니다. 여기에는 부팅 시간부터 애플리케이션과의 유동적인 사용자 상호 작용에 이르는 광범위한 시나리오가 포함됩니다. 성능 문제를 분석하려면 많은 전문 지식과 도메인 관련 지식이 필요합니다. Microsoft는 이러한 복잡한 작업을 해결하는 데 도움이 되는 도구를 제공합니다.

이 가이드에서는 주요 영역에서 성능 문제의 근본 원인을 측정하고 분석하고 해결하는 프로세스를 소개합니다. 다룰 주제는 다음과 같습니다.

  • WPT(Windows Performance Toolkit) 사용

  • ETL(이벤트 추적 로그) 추적 캡처

  • 부팅, 애플리케이션 시작, UI 지연

  • CPU 및 디스크 리소스 사용량 분석

  • 중요 경로 및 대기 분석

목표

이 가이드에서는 다음 작업을 수행하는 방법을 보여 줍니다.

  • 관련 데이터를 수집하여 모든 시스템의 성능 문제 분석

  • CPU 및 디스크와 같은 시스템 리소스 사용량을 살펴보기 위한 분석 프로세스 이해

  • 일부 주요 Windows 시나리오에서 시스템 응답성에 영향을 줄 수 있는 요소 식별

도구

ADK의 Windows 평가 도구 키트는 평가라는 성능 관련 테스트 집합을 제공합니다. 평가 결과는 잠재적인 문제를 진단하는 데 사용되므로 사용자가 개발하는 하드웨어 및 소프트웨어가 모두 응답하고 배터리 수명, 시작 성능, 종료 시간에 최소한의 영향을 미칩니다. OEM/ISV/IHV 파트너, 애호가, 커뮤니티의 다른 구성원이 품질 측면을 측정, 비교, 검토하는 일반적인 프레임워크를 설정하는 데 동일한 평가를 사용할 수 있습니다.

Windows Performance ToolkitWPR(Windows Performance Recorder)WPA(Windows Performance Analyzer)의 두 가지 독립적인 도구로 구성됩니다. WPR은 ETW(Windows용 이벤트 추적) 기록을 만드는 효과적인 기록 도구입니다. WPR은 UI(사용자 인터페이스) 또는 CL(명령줄)에서 실행할 수 있습니다. WPR은 기록하려는 이벤트를 선택하는 데 사용할 수 있는 기본 제공 프로필을 제공합니다. WPA는 유연한 UI를 광범위한 그래프 작성 기능 및 피벗할 수 있고 전체 텍스트 검색 기능이 있는 데이터 테이블과 결합하는 강력한 분석 도구입니다.

빠른 시작 동작

Windows 8에 도입된 빠른 시작은 기본 부팅 동작입니다. 종료 프로세스는 최대 절전 모드가 작동하는 방식을 미러링하는 방식으로 디스크에 데이터 쓰기를 포함하도록 업데이트되었습니다. 부팅하는 동안 시스템은 다음 테이블에 설명된 단계를 수행합니다.

단계 설명
BIOS 초기화 운영 체제가 PXE(Pre-Boot Execution Environment)를 포함하여 BIOS를 초기화하는 데 걸리는 시간입니다.
Hiberfile 읽기 운영 체제가 디스크에서 hiberfile을 읽는 데 걸리는 시간입니다. hiberfile은 종료 중에 작성된 시스템 컨텍스트를 모두 포함합니다.
디바이스 다시 시작 운영 체제가 디바이스를 다시 시작하고 활성 전원 상태로 되돌리는 데 걸리는 시간입니다.
WinLogon 다시 시작 운영 체제에서 Winlogon 프로세스를 다시 시작하는 데 걸리는 시간입니다.
Explorer 초기화 운영 체제가 Windows 셸(explorer.exe)을 초기화하는 데 걸리는 시간입니다. 이 단계는 데스크톱 또는 시작 화면이 사용자에게 표시되면 종료됩니다.
켜기/끄기 후 기간 Windows가 모든 시작 작업을 완료하는 데 걸리는 시간으로 데스크톱이 표시된 후 CPU와 디스크 리소스가 유휴 상태가 될 때까지입니다.

빠른 시작 동작에 대한 자세한 내용은 MSDN의 켜기/끄기 전환 성능 항목을 참조하세요.

CPU 일정 및 스레드

시스템의 프로세서 수가 제한되어 있으므로 모든 스레드를 동시에 실행할 수 없습니다. Windows는 프로세서 시간 공유를 구현하여 프로세서가 다른 스레드로 전환되기 전에 스레드가 일정 기간 동안 실행될 수 있도록 합니다. 스레드 간 전환 작업을 컨텍스트 스위치라고 하며 디스패처라는 Windows 구성 요소에 의해 수행됩니다. 각 스레드는 지정된 시간에 특정 실행 상태에 있습니다. Windows는 성능과 관련된 세 가지 상태인 실행 중, 준비, 대기를 사용합니다.

특정 이벤트를 기다리고 있어서 실행할 수 없는 스레드는 대기 상태에 있습니다. 다음 그림에서는 가능한 스레드 전환을 보여 줍니다.

가능한 스레드 전환을 보여 주는 다이어그램

  1. 실행 중인 상태의 스레드는 WaitForSingleObject 또는 절전(> 0)과 같은 대기 함수를 호출하여 대기 중 상태로의 전환을 시작합니다. .

  2. 실행 중인 스레드 또는 커널 작업은 대기 상태(예: SetEvent 또는 타이머 만료)의 스레드를 준비합니다.

  3. 준비 상태의 스레드는 실행 중인 스레드가 대기하거나 실행 퀀텀의 종료에 도달할 때 디스패처에서 처리하도록 예약됩니다.

  4. 실행 중 상태의 스레드는 우선 순위가 더 높은 스레드에 의해 선점되거나 해당 퀀텀이 종료될 때 디스패처에 의해 전환되고 준비 상태가 됩니다.

스레드 상태는 사용자가 스레드가 작업을 완료하기를 기다리는 경우에만 성능에서 중요한 요소가 됩니다.

CPU 일정 예약에 대한 자세한 내용은 MSDN의 CPU 분석 항목을 참조하세요.

연습

이 가이드는 다음 연습으로 구성됩니다.