다음을 통해 공유


[회보 보관 ^] [< 볼륨 4, 번호 1] [볼륨 4, 번호 3 >]

Systems Internals 뉴스레터 4권, 2호

http://www.sysinternals.com
Copyright (C) 2002 Mark Russinovich


8월 12일 - 이번 호에서:

  1. 사설

  2. SYSINTERNALS의 새 소식

    • TCPView v2.21
    • LiveKd v2.0
    • PsInfo v1.33|
    • PsList v1.21
    • BgInfo v3.0
    • PageDefrag v2.2
    • Win64/Itanium용 Regmon v4.34
    • PC World Magazine의 Sysinternals
    • Microsoft의 Sysinternals
  3. 내부 정보

    • Mark와 David Solomon이 런던에서 내부를 가르칩니다.
    • Windows NT 개발 내부
    • 변경 내용이 반영되지 않는 경우
    • .NET Server RC1
    • WMI 스크립트 로드
    • BootVis를 사용하여 부팅 프로세스 프로파일링
  4. 향후 예정 사항

    • 크래시 덤프 분석에 대한 빠른 소개

스폰서: WINTERNALS SOFTWARE

Sysinternals Newsletter는 Winternals Software(Web, http://www.winternals.com.)에서 후원합니다 Winternals Software는 Windows NT/2K/XP용 고급 시스템 도구를 개발하고 제공하는 선도적인 업체입니다. Winternals Software 제품에는 Windows NT 4.0용 FAT32, NTFSDOS Professional Edition(DOS용 읽기/쓰기 NTFS 드라이버) 및 원격 복구가 포함됩니다. Winternals는 사용 가능한 가장 빠르고 철저한 엔터프라이즈 조각 모음 관리자 버전 2.0을 발표하게 되어 자랑스럽습니다. 이제 NT 또는 Windows 2000 시스템에 클라이언트 소프트웨어를 설치하지 않고도 간단한 MMC 스냅인에서 전체 Windows 기업의 조각 모음 일정을 관리할 수 있습니다. 자세한 내용을 보려면 http://www.winternals.com/es을(를) 방문하거나 30일 무료 평가판을 요청하세요.

여러분, 안녕하세요.

Sysinternals 뉴스레터에 오신 것을 환영합니다. 뉴스레터는 현재 35,000명의 구독자를 보유하고 있습니다.

올해 말에 출시될 AMD의 출시 예정인 Hammer 프로세서(현재 공식적으로 "Opteron"으로 발표됨)에 대해 들어 보셨을 것입니다. Hammer를 사용하는 AMD는 32비트 필드에서 64비트 필드까지 Intel과의 전쟁을 치르고 있습니다. Intel이 두려워해야 한다고 생각하는데, 그 이유를 말씀드리겠습니다.

Itanium은 Intel이 제공하는 64비트 제품이며 마이그레이션을 용이하게 하는 방법으로 x86 이진 호환성을 포함합니다. Itanium은 마켓플레이스에 출시된 지 거의 2년이 지났지만 Intanium을 지원하는 HP-UX, Linux, Windows XP 64비트 버전, Windows Advanced Server 64비트 버전에도 불구하고 진출에 실패했습니다. 업계에서는 프로젝트 Itaniums가 몇 천 대밖에 판매되지 않은 것으로 추정하고 있으며, 최근 출시된 Itanium II가 배포 속도를 개선하지는 않을 것이라고 추측합니다.

Itanium이 지금까지 우울한 실적을 보이는 이유는 무엇인가요? Itanium과 Intel의 전체 64비트 전략은 새로운 RISC 유형 아키텍처를 기반으로 하고 있으며 x86 이진 호환성을 제외하면 Itanium은 Alpha, PA-RISC, Sparc64, PowerPC 중 또 다른 64비트 프로세서일 뿐입니다. Itanium은 기존 x86 32비트 애플리케이션을 지원하지만 이러한 애플리케이션은 기본 64비트 애플리케이션에 비해 성능이 크게 저하됩니다. 즉, Itanium에서 적절한 성능으로 실행하려는 모든 애플리케이션이 64비트로 이식되었는지 확인해야 합니다.

반면 Hammer는 x86 아키텍처와 명령 집합을 64비트로 자연스럽게 확장하여 개선됩니다. 거의 동일한 성능 수준에서 32비트 애플리케이션과 64비트 애플리케이션을 나란히 실행할 수 있습니다. 또한 Hammer를 전체 32비트 모드로 부팅하여 32비트 OS를 실행할 수 있는 표준 x86 시스템으로 보이게 할 수 있습니다. 뿐만 아니라 Hammer는 x86 16비트 모드를 지원하며 64비트 OS로 부팅하는 경우에도 표준 32비트 x86 BIOS 코드를 사용할 수 있습니다. 즉, 32비트 OS를 하나의 선택 영역으로 사용하고 64비트 OS를 다른 OS로 사용하는 이중 부팅 시스템을 사용할 수 있습니다.

AMD의 접근 방식은 Intel이 Itanium과 함께 취했던 방향에 비해 큰 이점을 제공한다고 생각합니다. AMD는 64비트로 전환할 준비가 되지 않았거나 64비트 머신을 활용할 수 있는 애플리케이션이 하나만 있는 고객에게 제공되는 즉시 Hammer 판매를 시작할 수 있습니다. 32비트 애플리케이션은 AMD가 Hammer에 적용하는 성능 혁신을 최대한 활용할 수 있으며, AMD가 Hammer 가격을 32 비트 CPU 가격에 근접하게 하면 구매 결정은 더 이상 고민할 필요가 없습니다. 이를 통해 AMD는 저가형의 64비트 프로세서로 마켓플레이스에 보급될 수 있습니다. 이는 훨씬 더 위험하고 훨씬 더 오래 걸릴 수 있는 Intel의 고급 접근 방식과 대조를 이룹니다. 저는 Hammer가 AMD에 몰래 들어가 사실상의 64비트 플랫폼이 될 수 있는 기회를 제공한다고 생각합니다.

Intel이 ITanium의 "클린" EPIC(명시적 병렬 명령 컴퓨팅) 아키텍처가 AMD의 x86-64를 통해 제공한다고 주장할 수 있는 성능 우위는 어떻습니까? 좀 더 지켜봐야겠지만, AMD는 지금까지 Intel에게 32비트 분야에서 돈을 벌 수 있는 기회를 주었습니다. 그리고 Itanium II가 최고의 x86 프로세서(www.spec.org 참조)와 비교하는 방법을 살펴보면 정수 성능에서 매우 균등하게 일치하며 Itanium은 부동 소수점에서 50-75% 앞서고 있음을 알 수 있습니다. 이것은 Itanium이 대략 두 배나 비싸다는 사실에도 불구하고 나타나는 결과입니다. 예를 들어, Hewlett Packard의 저사양 Itanium II 시스템은 $5865의 비용이 들며, 동등한 구성 비용으로 2GHz에서 실행되는 Hewlett Packard Pentium IV 시스템은 $2385에 불과합니다.

AMD는 x86 호환성을 가진 새로운 아키텍처를 기능으로 정의하지 않고 x86 아키텍처를 확장하려는 아이디어를 어디서 얻었나요? Intel이 32비트 세계로 전환했을 때 16비트 x86 아키텍처와 명령 집합을 확장하여 16비트 애플리케이션을 실행할 수 있는 32비트 버전을 만듭니다. 따라서 32비트 x86 프로세서는 16비트 및 32비트 운영 체제를 실행할 수 있습니다. 그러나 Intel은 이 접근 방식을 64비트 전략에서 사용하지 않았습니다. 이는 90년대 중반에 디자인의 복잡성을 감안할 때 성능 측면에서 x86의 한계가 빠르게 다가오고 새로운 디자인이 미래로 나아갈 수 있다고 느꼈기 때문일 수 있습니다. 오늘날 Intel과 AMD는 놀라운 x86 클럭 속도에서 이 가정이 잘못되었음을 입증했습니다. Intel은 4GHz에서 실행되는 Pentium IV를 시연했습니다. Intel은 계산 착오에 대한 대가를 치르게 될 수 있습니다.

뉴스레터의 내용에 관심이 있을 것으로 생각되는 친구들에게 전달해 주세요.

감사합니다!

-Mark

SYSINTERNALS의 새 소식

TCPVIEW V2.21

TCPView는 몇 년 동안 Sysinternals 사이트에 있었던 애플리케이션이지만 최근 2.0 업데이트까지는 Windows netstat 명령줄 도구의 GUI 버전에 지나지 않았습니다. 이 주요 개정은 여러 가지 강력한 기능을 제공하며, 그 중 가장 중요한 기능은 각 TCP 및 UDP 엔드포인트를 소유하는 프로세스의 NT 4, Windows 2000, Windows XP에 대한 표시입니다. 또한 프로세스의 버전 데이터 및 실행 경로를 보고 불량 프로세스를 종료할 수도 있습니다. 애플리케이션이 특정 포트를 사용하지 못하도록 중지하려는 경우 유용한 기능은 프로세스를 종료하지 않고 즉시 연결을 닫을 수 있는 기능입니다.

UI 영역에서 최신 버전은 선택 가능한 간격과 차이점 강조 표시에서 자동 새로 고침을 도입합니다. 활동이 발생할 때 확대하는 데 도움이 되는 차이점 강조 표시는 프로세스 탐색기에서 가져온 새 항목과 삭제된 항목의 색 강조 표시를 설명합니다.

TCPView v2.21 다운로드
http://www.sysinternals.com/ntw2k/source/tcpview.shtml

LIVEKD V2.0

LiveKd는 David Solomon과 함께 집필한 Inside Windows 2000(http://www.sysinternals.com/insidew2k.shtml 참조) 책의 CD에 포함된 도구 중 하나입니다. LiveKd는 디버거를 실행하여 라이브 시스템과 상호 작용할 수 있는 Microsoft 커널 디버거의 프런트 엔드입니다. 디버거를 사용하여 두 번째 컴퓨터와 직렬 디버깅 연결을 사용하지 않고도 시스템을 살펴보면 내부를 쉽게 탐색할 수 있으며 문제 해결에 도움이 될 수 있습니다. LiveKd의 첫 번째 릴리스는 Windows XP에서 작동하는 NT 4 및 Windows 2000-LiveKd 버전 2.0만 지원합니다.

Microsoft는 Windows XP에 라이브 커널 디버깅 기능을 추가했지만 라이브 시스템에서 실행할 때 몇 가지 디버깅 명령이 작동하지 않으므로 Windows XP에서 작동하도록 LiveKd를 업데이트하는 데 어려움을 겪었습니다.

한 가지 예는 !process 또는 !thread 명령의 스택 출력입니다. LiveKd는 전체 커널 스택을 표시하지만 기본 제공 XP 라이브 디버깅 기능을 사용하면 표시되지 않습니다. 또 다른 예로는 현재 실행 중인 스레드와 실행이 시작된 위치를 확인하는 데 사용할 수 있는 !stacks 명령입니다. !stacks 명령은 시스템 스레드와 관련된 문제를 디버깅하고 해당 목적을 결정할 때 유용합니다. 스레드가 실행되는 드라이버를 알면 문제를 해결하는 데 필요한 단서가 될 수 있습니다.

LiveKd v2.0 패치 다운로드
http://www.sysinternals.com/insidew2k.shtml
패치를 적용할 책 CD의 LiveKd 복사본이 필요합니다.

PSINFO V1.33

PsInfo는 원격으로 지원되는 Windows NT/2000/XP 관리 도구의 PsTools 제품군을 구성하는 12개 정도의 도구 중 하나로, 사용자 피드백에 따라 계속 발전하고 있습니다. 버전 1.33에는 설치된 핫픽스 및 애플리케이션을 나열하고 컴퓨터의 디스크 볼륨에 대한 레이블, 크기, 사용량 현황 데이터를 보고하는 기능을 추가되어 있습니다.

PsInfo v1.33 다운로드
http://www.sysinternals.com/ntw2k/freeware/psinfo.shtml
다음에서 전체 PsTools 패키지를 다운로드하세요.
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

PSLIST V1.21

명령줄을 사용하거나 CPU 사용량 현황 데이터가 포함된 컴퓨터(로컬 또는 원격)의 프로세스 목록을 얻기를 원하는 경우에는 PsTools 제품군의 다른 멤버인 최신 버전의 PsList에 관심이 있을 것입니다. PsList v1.2는 명령 창의 작업 관리자 모드에서 실행하는 명령줄 스위치를 도입하고 구성 가능한 간격으로 업데이트하고 CPU 사용량을 표시합니다. 또 다른 새로운 스위치에는 프로세스 부모-자녀 관계를 표시하기 위해 PsList가 들여쓰기를 사용하므로 식별하는 데 어려움이 있는 프로세스의 목적을 이해하는 데 유용할 수 있습니다.

PsList v1.21 다운로드
http://www.sysinternals.com/ntw2k/freeware/pslist.shtml
다음에서 전체 PsTools 패키지를 다운로드하세요.
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

BGINFO V3.0

둘 이상의 시스템을 관리하는 것은 일반적으로 스티커 메모를 사용하거나 시스템 정보 유틸리티를 열어 시스템의 사양과 구성을 결정하는 번거로운 문제를 처리해야 한다는 것을 의미합니다. BgInfo는 사용자가 지정한 표준 및 사용자 지정 시스템 정보를 바탕 화면에 표시하여 중요하다고 생각되는 모든 데이터를 한 눈에 볼 수 있는 유틸리티입니다.

BgInfo는 이미 다양하므로 미리 정의된 값 집합을 지정하거나 레지스트리 또는 파일에서 값을 얻기 위해 BgInfo를 직접 지정할 수 있습니다. BgInfo v3.0은 사용자 지정 구성 설정을 캡처하고 프레젠테이션을 위해 BgInfo에 보고하는 스크립트를 만들 수 있도록 Visual Basic 스크립트에 대한 지원을 도입하여 더 많은 사용자 지정 기능을 추가합니다.

BgInfo v3.0 다운로드
http://www.sysinternals.com/ntw2k/freeware/bginfo.shtml

PAGEDEFRAG V2.2

페이징 파일, 레지스트리 파일 또는 이벤트 로그 파일이 점점 더 조각화되는 것을 발견하셨나요? 기본 제공 조각 모음은 운영 체제가 실행되기 전에 부팅 시 조각 모음을 수행해야 하므로 이러한 파일을 처리하지 않습니다. PageDefrag는 이러한 중요한 시스템 파일을 조각 모음을 수행하는 단일 목적을 가진 경량 조각 모음입니다.

PageDefrag 버전 2.2에는 Windows XP 지원이 포함되어 있으며 조각 모음 전에 PageDefrag가 표시하는 카운트다운 타이머를 지정할 수 있습니다. 타이머는 카운트다운 중에 아무 키나 누르면 조각 모음이 중단되는 하나의 chkdsk 구현과 같이 작동합니다.

PageDefrag v2.2 다운로드
http://www.sysinternals.com/ntw2k/freeware/pagedefrag.shtml

WIN64/ITANIUM용 REGMON V4.34

작년에 Microsoft는 Sysinternals 도구를 Win64로 이식할 수 있도록 Itanium 시스템을 빌려주었습니다. Itanium의 32비트 이진 호환성 지원을 사용하여 Windows XP 64비트 Edition을 실행하는 Itanium에서 대부분의 32비트 애플리케이션이 변경되지 않고 실행되므로 모든 도구를 포팅해야 하는 것은 아닙니다. 그러나 Windows XP 64비트 버전은 32비트 드라이버를 로드하지 않으므로 드라이버 구성 요소가 있는 모든 Sysinternals 도구에는 적어도 드라이버가 64비트로 이식되어야 합니다.

첫 번째로 이식한 유틸리티는 Filemon이었습니다. Filemon의 포트는 64비트 데이터 형식 규칙을 준수하도록 드라이버와 GUI 원본을 변경한 다음 다시 컴파일하기만 하면 되므로 비교적 간단했습니다. 나는 마지막 뉴스 레터에서 포팅 과정을 설명했다. Regmon의 포트에는 동일한 데이터 형식 문제가 포함되어 있지만 포팅을 훨씬 더 어렵게 만든 다른 문제가 포함되었습니다.

Regmon은 레지스트리 작업을 모니터링할 수 있도록 Regmon 가로채기 루틴을 사용하여 커널의 시스템 호출 테이블을 패치하는 드라이버를 사용합니다. 간단히 말해서 Itanium의 시스템 호출 인터페이스에는 32비트 드라이버에서 사용한 접근 방식을 사용할 수 없게 만드는 프로세서 종속 특성이 있습니다. 따라서 64비트 XP에서 작동하기 위해 시스템 호출 가로채기를 수행하기 위해 몇 가지 어려운 코딩을 사용해야 했습니다.

다행히 Microsoft는 Windows .NET Server 커널에서 레지스트리 활동 콜백 인터페이스를 구현하여 Regmon이 레지스트리 활동을 감시하는 데 사용하는 기술을 불필요하게 만듭니다. 가까운 시일 내에 새로운 Windows .NET Server API와 뉴스레터의 API에 대한 설명을 보여 주는 Regmon 업데이트를 찾습니다.

Regmon v4.34 다운로드
http://www.sysinternals.com/ntw2k/source/regmon.shtml

PC WORLD MAGAZINE의 SYSINTERNALS

Regmon과 Filemon은 모두 권장 문제 해결 도구로서 발행 부수가 많은 컴퓨터 잡지인 PC World의 8월호에서 좋은 플러그를 얻었습니다. 자세한 내용은 http://www.pcworld.com/features/article/0,aid,101750,00.asp를 참조하세요.

WWW.MICROSOFT.COM의 SYSINTERNALS

다음은 지난 뉴스레터 이후에 발표된 Microsoft KB(기술 자료) 문서의 최신 Sysinternals 참조 자료입니다. 이로써 Sysinternals에 대한 총 KB 참조 수가 38개가 됩니다.

  • 방법: Windows 2000에서 사용자 지정 관리 템플릿 만들기
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;q323639

  • 정책 파일에 Oplock이 부여되지 않은 경우 느린 링크를 통한 로그온 지연
    http://support.microsoft.com/default.aspx?scid=kb;EN-US;q319440

  • XCON: MTA 프로세스에서 핸들 수가 높은 메모리 누수 http://support.microsoft.com/default.aspx?scid=kb;EN-US;q313735

또한 Microsoft는 Sysinternals를 현재 주요 Windows XP Embedded 커뮤니티 사이트로 선정했습니다. 체크 아웃 http://www.microsoft.com/windows/embedded/community/default.asp

내부 정보

Mark와 David Solomon이 런던에서 내부를 가르칩니다.

저와 David Solomon이 9월 23-25일 3일간의 Windows 2000/XP/.NET Server 내부 클래스를 런던에서 발표합니다(다음 클래스는 12월 9-11일 텍사스 오스틴에서). "Windows 2000, 3rd Edition 내부"를 기반으로 시스템 스레드, 시스템 호출 디스패치, 인터럽트 처리 및 시작 및 종료와 같은 주요 시스템 구성 요소의 커널 아키텍처 및 상호 관계를 다룹니다. 설명된 주요 하위 시스템의 내부는 프로세스 및 스레드, 스레드 예약, 메모리 관리, 보안, I/O 시스템, NTFS 및 캐시 관리자를 포함합니다. OS의 내부 작동 방식을 이해하면 플랫폼을 보다 효과적으로 디버깅하고 문제를 해결할 수 있습니다.

자세한 내용은 http://www.sysinternals.com/seminar.shtml를 참조하세요.

WINDOWS NT 개발 내부

이 프레젠테이션은 몇 년 전의 것이지만 그럼에도 불구하고 Windows NT 3.1부터 Windows 2000까지의 개발 기록에 흥미로운 내용이 있습니다. 원래 NT 소프트웨어 엔지니어 중 한 명인 Mark Lucovsky는 2000년 USENIX 연례 기술 컨퍼런스에서 프레젠테이션을 진행했습니다. Mark Lucovsky는 개발 팀의 크기, 결함 비율(멤버가 아닌 개발자가 작성한 코드), 소스 제어 시스템, 팀 개발 과제에 대해 설명합니다.

http://www.usenix.org/events/usenix-win2000/invitedtalks/lucovsky_html/에서 NT 개발 기록에 대한 Mark Lucovsky의 강연을 참조하세요.

이와 관련하여 Windows 1.0부터 Windows .NET Server에 이르기까지 Microsoft의 Windows 기록은 다음과 같습니다. http://www.microsoft.com/windows/WinHistoryIntro.asp

변경 내용이 반영되지 않는 경우

Windows는 파일 및 디렉터리에 대한 여러 타임스탬프를 추적합니다. 여기에는 만들기, 마지막 액세스, 마지막으로 수정된 내용이 포함됩니다. 마지막으로 수정된 타임스탬프는 파일이 마지막으로 기록된 시간을 기록하는 것으로 문서화됩니다. 불행하게도, 이 사실에 의존하는 애플리케이션은 끔찍한 놀라움을 안겨줄 것입니다.

애플리케이션이 CreateFile API를 사용하여 파일을 연 다음 WriteFile 또는 해당 변형을 통해 파일에 쓰는 경우 마지막으로 수정한 시간은 파일의 가장 최근 수정 시간을 반영합니다. 애플리케이션에서 CreateFileMappingMapViewOfFile를 사용하여 메모리 매핑 I/O용 파일을 연 다음 매핑된 내용을 변경하여 파일을 수정하면 데이터가 결국 메모리 관리자에 의해 파일에 다시 기록되고 디스크 내 버전이 수정됩니다. 문제는 메모리 매핑 쓰기의 결과로 수정이 발생할 때 파일 시스템 드라이버가 파일의 마지막 수정 시간을 업데이트하지 않는다는 것입니다.

이유는 무엇인가요? 개발자들이 성능에 유리하도록 코너를 잘라냈다고 가정하지만, 그 동작은 문서화되지 않았기 때문에 추측만 할 수 있습니다. 모든 쓰기가 동일하게 생성되지는 않은 것 같습니다.

.NET SERVER RC 1

Windows .NET Server RC 1이 배송되었으며 Microsoft가 연말까지 새 서버 OS의 RTM(Release to Manufacturing) 빌드를 중단할 가능성이 있습니다(같은 해에 뱀과 상어에게 물린 것과 거의 같은 가능성). 커널 관점에서 볼 때 Windows XP의 주요 변경 내용은 없습니다. Win32 또는 커널 API와 같은 새로운 주요 커널 서브 시스템은 없습니다. 대형 시스템에서 성능을 향상시키는 조정과 기존 API 세트를 완성하는 소수의 API 만 있습니다.

그러나 사용자 공간에는 큰 변화가 있습니다. 가장 큰 것은 물론 .NET framework이지만 새로운 서버 지향 서비스도 있습니다. 백업을 위해 Windows XP에 도입된 볼륨 섀도 복사본 서비스는 클라이언트 사용자가 서버 공유의 파일을 이전 버전으로 롤백할 수 있는 기능을 제공하는 데 활용됩니다. 사용자가 새 Explorer 파일 속성 탭에 표시된 파일 기록 목록에서 원하는 항목을 간단히 선택할 수 있으므로 관리자 상호 작용이 필요하지 않습니다.

향상된 서버 네트워킹 기능은 특수한 네트워크 상호 연결, SAN(시스템 영역 네트워크)이라는 구성의 다중 계층 구성에서 서버의 애플리케이션이 TCP/IP 스택 및 커널을 우회하여 네트워킹 하드웨어와 직접 통신할 수 있도록 하는 인프라인 Winsock Direct입니다.

David Solomon과 함께 .NET Server 시스템 수준의 변경 내용을 설명하는 다음 기사를 찾아보세요. 또한 내년 봄에 발표될 예정인 Windows Internals라고 하는 Inside Windows 2000의 다음 개정판에서 .NET Server를 다루고 있습니다.

WMI 스크립트 로드

Sysinternals의 PsTools 제품군이 마음에 든다면 아마도 스크립팅 중독자일 수 있으며, 시스템에서 Windows 2000 또는 XP를 실행하거나 NT 4 WMI 핵심 구성 요소를 설치한 경우 Microsoft의 TechNet 사이트로 이동하여 게시한 무료 WMI 샘플 스크립트를 가져와야 합니다. 대규모 컬렉션이 있으며 컴퓨터 관리 및 네트워킹과 같은 범주로 나뉘어 있으며 개별적으로 또는 한 번에 다운로드할 수 있습니다.

http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scrip tcenter/sampscr.asp에서 무료 샘플 WMI 스크립트 가져오기

Microsoft의 무료 자료에 대해 말하자면 다운로드용으로 게시된 Windows 2000 Resource Kit 도구의 하위 집합에서 찾을 수 있습니다. http://www.microsoft.com/windows2000/techinfo/reskit/en-us/default.asp 방문

BOOTVIS를 사용하여 부팅 프로세스 프로파일링

사용자가 발생할 수 있는 지연의 원인을 확인할 수 있도록 부팅 프로세스를 모니터링하는 Sysinternals용 도구를 개발하라는 요청을 주기적으로 받습니다. 다행히도, Microsoft는 제가 도구를 개발할 수 있도록 오래 기다려 주었습니다. 작성한 도구를 BootVis라고 하며 Windows XP용으로 구현한 부팅 성능 최적화에서 중요한 역할을 했습니다. http://www.microsoft.com/HWDEV/PLATFORM/performance/fastboot/BootVis.asp에서 다운로드할 수 있습니다. Windows XP에서만 실행되는 BootVis는 XP의 WMI 커널 추적 기능을 사용하여 CPU 사용량, 디스크 I/O, 프로세스 시작, 드라이버 I/O를 비롯한 부팅 프로세스의 자세한 추적을 수집합니다. BootVis terse와 함께 제공되는 도움말 파일을 호출하는 중이므로 도구를 사용하는 방법을 안내합니다.

드라이버 및 모듈의 어떤 기능이 CPU 시간을 차지하는지 정확하게 보려면 도구|옵션 대화 상자를 열고 설치된 Windows XP 기호에서 BootVis를 가리키도록 합니다. 다음으로, 추적|다음 부팅+드라이버 지연을 선택하여 BootVis가 드라이버 지연을 포함한 다음 부팅의 추적을 캡처하게 합니다. BootVis가 카운트다운을 실행한 다음, 시스템을 다시 부팅합니다.

시스템이 부팅된 후에 로그인하고 BootVis를 다시 실행합니다. 추적|추적 중지를 선택하면 커널에서 수집되는 추적을 추출하여 파일에 저장한 다음, 표시하기 위해 파일을 로드합니다. 4개의 차트가 표시됩니다. CPU 사용량에서 부팅을 통해 사용된 CPU 처리량을 추적합니다. 디스크 I/O 막대형 차트는 초당 발생한 디스크 읽기(빨간색) 및 쓰기(파란색)의 수를 보여 줍니다. 드라이버 지연 그래프에서 기본 BootVis 컷오프 시간(100밀리초)보다 더 긴 기간을 가진 드라이버 I/O를 나타내는 직사각형이 표시됩니다. 이러한 지연은 중요한 것으로 간주됩니다. 마지막으로 프로세스 만들기 차트에는 프로세스가 시작된 레이블이 지정된 직사각형이 표시됩니다.

BootVis를 시작할 때 수집된 추적 데이터가 모두 표시되는 것은 아니므로 그래프로 표시된 데이터의 오른쪽 가장자리가 표시되기 시작할 때까지 축소 단추를 사용합니다. 이제 각 그래프를 살펴봅니다. CPU 또는 디스크 급증이 표시되거나 프로세스 시작 작업을 확대하려는 경우 확대 도구 모음 단추를 사용합니다. 표시된 시작 시간은 확대할 때 0으로 유지되므로 확대/축소 후에는 표시 시간 편집 상자에 관심이 있는 작업 근처의 시간을 수동으로 입력합니다.

CPU 사용량, 디스크 I/O, 드라이버 지연 그래프를 사용하면 즉시 표시되는 것보다 더 많은 정보를 볼 수 있습니다. 커서를 이동하고 마우스 왼쪽 단추를 누른 채 끌어 그래프에서 관심 영역을 선택합니다. 그런 다음 마우스 오른쪽 단추를 클릭하여 메뉴를 가져옵니다. CPU 사용량 그래프의 흥미로운 메뉴 옵션은 요약 표시입니다. 이 옵션은 선택한 시간 간격의 CPU 사용량 프로세스별 내역을 나열하는 대화 상자가 열립니다. 프로세스 중 하나를 두 번 클릭하면 모듈별 CPU 사용량 분석(예: 프로세스의 DLL)을 보여 주는 다른 대화 상자가 열립니다. 기호가 구성되어 있는 경우 모듈을 두 번 클릭하고 해당 모듈의 CPU 사용량을 기능별로 분석한 대화 상자를 가져올 수도 있습니다.

디스크 I/O 그래프에서 선택한 영역을 마우스 오른쪽 단추로 클릭하면 요약 테이블 표시와 세부 정보 그래프 표시라는 두 가지 메뉴 항목이 나타납니다. 요약 테이블 표시를 선택하여 간격 동안 발생한 모든 I/O의 회계를 모듈별로 구분하여 확인합니다. 세부 정보 그래프 표시를 선택하여 해당 간격 동안 액세스한 디스크 내의 실제 섹터를 나타내는 꺾은선형 차트를 표시합니다. 세부 정보 그래프는 I/O를 수행한 프로세스와 연결하고 왼쪽 목록에서 프로세스를 선택 취소하여 프로세스를 필터링할 수도 있습니다. 세부 정보 그래프 내에서 지역을 선택하고, 결과 메뉴 항목을 마우스 오른쪽 단추로 클릭하고 선택하여, 해당 하위 구간에 대한 다른 요약 차트에 액세스할 수 있습니다.

드라이버 지연 그래프의 상황에 맞는 메뉴에서 요약 테이블 표시를 선택하면 I/O를 수행한 드라이버의 이름, 각 I/O의 시작과 종료 그리고 총 시간, 수행된 I/O 함수가 포함된 선택한 지역에 표시된 I/O 목록이 표시됩니다.

이것으로 BootVis 자습서를 마쳤습니다. 가장 세련된 도구는 아니지만 BootVis를 잠시 사용해 보면 그래프로 볼 수 있는 세부 사항의 수준이 놀랍다는 것에 동의하게 될 것입니다. 다음 번에 부팅이 길어지고 그 이유가 무엇 때문인지 알고 싶을 때는 어디에서 답을 구해야 하는지 알 수 있습니다.

향후 예정 사항

크래시 덤프 분석에 대한 빠른 소개

커널 디버깅 도구에 대한 Microsoft의 최근 개선 사항으로 인해 크래시 덤프 분석은 사실상 쉽게 만들게 되었습니다. 다음에는 한 시간 안에 덤프 분석 전문가가 되는 방법을 보여드리겠습니다.


Sysinternals 뉴스레터를 읽어주셔서 감사합니다.

발행일: 2002년 8월 12일 월요일 오후 7:00 by ottoh

[회보 보관 ^] [< 볼륨 4, 번호 1] [볼륨 4, 번호 3 >]