Starting Xperf by Windows Performance Tools (WPT)

Windows Server의 성능 이슈 중, 서버 내 상세한 항목을 보기 위한 방법으로 Windows Performance Tools을 활용 할 수 있다. 물론, Perfmon은 Windows Server 및 MS사의 Product에 대한 다양한 성능 API를 제공하고, 사용자가 손쉽게 데이터를 뽑아낼 수 있지만, 특정 시점에 발생하는 성능 이슈에 대해서는 xperf를 활용한 성능 정보 수집 및 분석이 매우 용이할 수 있다.

먼저 Windows Server 설치 상태에선 xperf를 바로 활용 할 수 없기 때문에, Windows ADK 설치를 통해 Windows Performance Toolkit 을 설치해야 한다.

https://www.microsoft.com/en-us/download/confirmation.aspx?id=39982
Windows Server 2012 버전 용 ADK 설치 파일


설치 파일을 서버에 올려 실행하면 설치 Kit 중 Windows Performance Tools를 선택하여 설치 할 수 있다. 운영 서버의 경우 다행인 점은 설치 중간에 서버의 재기동은 없다.


설치 후, CMD 또는 Powershell 화면에서 바로 xperf라고 명령어를 실행시켜 보면 설치가 정상적으로 됐는지 확인 가능하다.

일단, 설치가 완료됐으면 가장 기본적인 사용법으로 성능 정보 수집을 진행할 수 있다.
xperf에는 기본적으로 다양한 성능 정보 항목 및 취합 그룹을 갖고 있다. xperf -help providers 라고 명령어를 수행 해 보면 다수의 성능 정보 취합 항목(또는 그룹)을 확인 할 수 있다. 이 중 많이 취합하는 항목으로는 KG(Kernel Group)인데 그 내용은 아래와 같다.


성능 이슈로 보여지는 상황에 맞는 Kernel 의 모니터링 항목을 잘 모아 놓은 KG를 선택하여 성능 정보를 취합할 수 있다. 예를 들어 File I/O에 이슈가 있는 것으로 보일 때는 FileIO 그룹을 택하면 되고, 그 안에는 Process 및 Thread 정보, Disk Load 정보, Hard Fault 정보, File I/O 정보들을 수집하게 된다.


xperf -start 명령어와 옵션들로 성능 수집을 시작하고, 필요한 만큼 수집이 되었으면, 다시 xperf -stop 명령어로 성능 수집을 종료하면 된다. 실제 파일은 저장 위치 및 파일명에 맞게 저장되게 된다. 따로 파일명을 저장하지 않으면, kernel.etl 파일로 저장된다. 여기서 ETL 확장자는 Event Trace Log를 뜻하며, Windows Server의 성능 및 Event로그를 취합할 때, 이 파일을 확장자로 사용하는 경우가 많다.

성능 로그 파일이 확인되면, 이를 분석할 수 있는 프로그램을 열어야 하는데, WPT를 설치하게되면 Windows Performance Recorder(xperf) 및 분석 도구인 Windows Performance Analzer가 설치된다. 이를 실행시켜 etl 파일을 열어보면 된다.


성능 분석 결과를 WPA를 통해 위와 같이 분석 해 볼 수 있다. 어떤 Tread가 File I/O를 많이 사용하였는지, Time Line을 따라 분석이 가능하기 때문에 시스템 운영 상의 Detail한 지연이나, 이슈에 대해 명확한 원인을 찾아내기 쉽다. 이를 조금 더 효과적으로 이용한다면, Event Log나 Perfmon에 Trigger를 걸어 이슈 발생이 예상되는 시점에 xperf 수집용 batch 파일을 수행하여 필요한 만큼의 시간 동안 성능정보를 수집한다면 장애 원인 분석에 효과적일 것으로 생각된다.

가능하다면 추후, 성능 수집 및 분석 상세과정에 대해 다루어보길 기대한다.


댓글

이 블로그의 인기 게시물

Windows Packet Monitoring by SmartSniff (smsniff)

Installing IPMI Tool for Linux Server