CPU 사용량이 높을 때 어떤 모듈이 해당 CPU를 과점하는지 확인하는 방법입니다.
2가지 Tool에 대해서 설명드릴 예정입니다.
1.Xperf
해당 Tool은 Perfmon의 확장판이라고 보시면 됩니다.
성능에 대해 확인이 가능하며 어떤 프로세스의 어떤 모듈이 사용을 많이 하는지 확인 가능합니다.
또한 Process의 Lifetime 확인도 가능한 유용한 툴입니다.
(1) 설치
성능에 대해 확인이 가능하며 어떤 프로세스의 어떤 모듈이 사용을 많이 하는지 확인 가능합니다.
또한 Process의 Lifetime 확인도 가능한 유용한 툴입니다.
(1) 설치
- Windows Performance Toolkit(WPT) Download 후 설치
(http://www.microsoft.com/en-us/download/details.aspx?id=8279)
(http://www.microsoft.com/en-us/download/details.aspx?id=8279)
(2) Setting
1) Symbol 설정
2) 64Bit 설정
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management\DisablePagingExecutive
해당 값 1로 변경
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Memory Management\DisablePagingExecutive
해당 값 1로 변경
(3) 자료 수집 방법
xperf -on 관련필드
관련 필드확인방법(Kernel)
xperf -providers k
만약 Latency 관련 확인이 필요한 경우
xperf -on Latency -stackwalk profile
관련 필드확인방법(Kernel)
xperf -providers k
만약 Latency 관련 확인이 필요한 경우
xperf -on Latency -stackwalk profile
을 수행하면 해당 필드와 관련된 데이터가 수집되어집니다.
(4) 자료 저장 방법
xperf -d 파일명
해당 파일명(etl)으로 파일이 저장되어 집니다.
해당 파일명(etl)으로 파일이 저장되어 집니다.
(5) 내용 확인 방법
xperfview 파일명
(6) XPerf를 사용한 Booting 성능 수집
xbootmgr -trace rebootCycle -noPrepReboot
2. Kernrate
두 번째로 설명드릴 Tool은 Kernrate입니다.
해당 툴은 CPU사용과 관련하여 Log를 생성하는 Tool입니다.
해당 툴은 Kernrate.exe를 수행합니다.
해당 Tool 수행을 진행하면 성능을 수집하게 되며 Ctrl-C를 누르면 해당 수집을 중지하며 결과를 출력합니다.
다음 내용은 kernrate /? 6을 통해 해당 결과를 파일로 만드는 방법 입니다.
-yo filename Create an output file replacing stdout (filename
optional, if not given then a generic name will
be created).
kernrate -yo test.txt
위의 명령어를 수행하면 결과가 test.txt로 생성되어 집니다.
아래 내용은 해당 결과 내용입니다.
/==============================\
< KERNRATE LOG >
\==============================/
Date: 2011/11/21 Time: 12:29:59
Machine Name: JOKWON
Number of Processors: 4
PROCESSOR_ARCHITECTURE: AMD64 -> Kernel Bit
PROCESSOR_LEVEL: 6
PROCESSOR_REVISION: 2502
Physical Memory: 8052 MB
Pagefile Total: 16101 MB
Virtual Total: 8388607 MB
PageFile1: \??\C:\pagefile.sys, 8051MB
OS Version: 6.1 Build 7601 Service-Pack: 1.0
해당 툴은 CPU사용과 관련하여 Log를 생성하는 Tool입니다.
해당 툴은 Kernrate.exe를 수행합니다.
해당 Tool 수행을 진행하면 성능을 수집하게 되며 Ctrl-C를 누르면 해당 수집을 중지하며 결과를 출력합니다.
다음 내용은 kernrate /? 6을 통해 해당 결과를 파일로 만드는 방법 입니다.
-yo filename Create an output file replacing stdout (filename
optional, if not given then a generic name will
be created).
kernrate -yo test.txt
위의 명령어를 수행하면 결과가 test.txt로 생성되어 집니다.
아래 내용은 해당 결과 내용입니다.
/==============================\
< KERNRATE LOG >
\==============================/
Date: 2011/11/21 Time: 12:29:59
Machine Name: JOKWON
Number of Processors: 4
PROCESSOR_ARCHITECTURE: AMD64 -> Kernel Bit
PROCESSOR_LEVEL: 6
PROCESSOR_REVISION: 2502
Physical Memory: 8052 MB
Pagefile Total: 16101 MB
Virtual Total: 8388607 MB
PageFile1: \??\C:\pagefile.sys, 8051MB
OS Version: 6.1 Build 7601 Service-Pack: 1.0
WinDir: C:\Windows
Kernrate Executable Location: G:\UTILITY\성능분석 TOOL\KRVIEW\WIN7-X64
Kernrate User-Specified Command Line:
kernrate -yo test.txt
kernrate -yo test.txt
Kernel Profile (PID = 0): Source= ProfileTime,
Using Kernrate Default Rate of 65536 events/hit
------------Overall Summary:--------------
Core 별 성능
Core 별 성능
P0 K 0:00:00.031 ( 0.6%) U 0:00:00.046 ( 0.8%) I 0:00:05.553 (98.6%) DPC 0:00:00.015 ( 0.3%) Interrupt 0:00:00.000 ( 0.0%)
Interrupts= 2399, Interrupt Rate= 426/sec.
Interrupts= 2399, Interrupt Rate= 426/sec.
P1 K 0:00:00.015 ( 0.3%) U 0:00:00.000 ( 0.0%) I 0:00:05.616 (99.7%) DPC 0:00:00.000 ( 0.0%) Interrupt 0:00:00.015 ( 0.3%)
Interrupts= 1780, Interrupt Rate= 316/sec.
Interrupts= 1780, Interrupt Rate= 316/sec.
P2 K 0:00:00.031 ( 0.6%) U 0:00:00.031 ( 0.6%) I 0:00:05.569 (98.9%) DPC 0:00:00.015 ( 0.3%) Interrupt 0:00:00.015 ( 0.3%)
Interrupts= 2766, Interrupt Rate= 491/sec.
Interrupts= 2766, Interrupt Rate= 491/sec.
P3 K 0:00:00.031 ( 0.6%) U 0:00:00.000 ( 0.0%) I 0:00:05.600 (99.4%) DPC 0:00:00.015 ( 0.3%) Interrupt 0:00:00.015 ( 0.3%)
Interrupts= 1781, Interrupt Rate= 316/sec.
Interrupts= 1781, Interrupt Rate= 316/sec.
TOTAL K 0:00:00.109 ( 0.5%) U 0:00:00.078 ( 0.3%) I 0:00:22.339 (99.2%) DPC 0:00:00.046 ( 0.2%) Interrupt 0:00:00.046 ( 0.2%)
Total Interrupts= 8726, Total Interrupt Rate= 1549/sec.
Total Interrupts= 8726, Total Interrupt Rate= 1549/sec.
Memory 사용량 Summary
Total Profile Time = 5631 msec
BytesStart BytesStop BytesDiff.
Available Physical Memory , 5579988992, 5580226560, 237568
Available Pagefile(s) , 13615153152, 13612265472, -2887680
Available Virtual , 8796052733952, 8796050636800, -2097152
Available Extended Virtual , 0, 0, 0
Committed Memory Bytes , 3270508544, 3271421952, 913408
Non Paged Pool Usage Bytes , 110440448, 110460928, 20480
Paged Pool Usage Bytes , 407916544, 408006656, 90112
Paged Pool Available Bytes , 433987584, 433074176, -913408
Free System PTEs , 33556640, 33556640, 0
Available Physical Memory , 5579988992, 5580226560, 237568
Available Pagefile(s) , 13615153152, 13612265472, -2887680
Available Virtual , 8796052733952, 8796050636800, -2097152
Available Extended Virtual , 0, 0, 0
Committed Memory Bytes , 3270508544, 3271421952, 913408
Non Paged Pool Usage Bytes , 110440448, 110460928, 20480
Paged Pool Usage Bytes , 407916544, 408006656, 90112
Paged Pool Available Bytes , 433987584, 433074176, -913408
Free System PTEs , 33556640, 33556640, 0
Total Avg. Rate
Context Switches , 18846, 3346/sec.
System Calls , 27577, 4897/sec.
Page Faults , 530, 94/sec.
I/O Read Operations , 6, 1/sec.
I/O Write Operations , 13, 2/sec.
I/O Other Operations , 1142, 203/sec.
I/O Read Bytes , 230, 38/ I/O
I/O Write Bytes , 69282, 5329/ I/O
I/O Other Bytes , 53065, 46/ I/O
Context Switches , 18846, 3346/sec.
System Calls , 27577, 4897/sec.
Page Faults , 530, 94/sec.
I/O Read Operations , 6, 1/sec.
I/O Write Operations , 13, 2/sec.
I/O Other Operations , 1142, 203/sec.
I/O Read Bytes , 230, 38/ I/O
I/O Write Bytes , 69282, 5329/ I/O
I/O Other Bytes , 53065, 46/ I/O
-----------------------------
Results for Kernel Mode:
-----------------------------
-----------------------------
Kernel Mode Process 별 사용량
OutputResults: KernelModuleCount = 187
Percentage in the following table is based on the Total Hits for the Kernel
OutputResults: KernelModuleCount = 187
Percentage in the following table is based on the Total Hits for the Kernel
ProfileTime 3398 hits, 65536 events per hit --------
Module Hits msec %Total Events/Sec
NTOSKRNL 3374 5631 99 % 39268063
NVLDDMKM 12 5631 0 % 139661
WIN32K 5 5631 0 % 58192
NETWNS64 2 5631 0 % 23276
TCPIP 2 5631 0 % 23276
USBEHCI 2 5631 0 % 23276
HAL 1 5631 0 % 11638
Module Hits msec %Total Events/Sec
NTOSKRNL 3374 5631 99 % 39268063
NVLDDMKM 12 5631 0 % 139661
WIN32K 5 5631 0 % 58192
NETWNS64 2 5631 0 % 23276
TCPIP 2 5631 0 % 23276
USBEHCI 2 5631 0 % 23276
HAL 1 5631 0 % 11638
================================= END OF RUN ==================================