Windows/Windows 2008 , 2012

python, grafana, mariadb를 이용한 윈도우 서버 성능 분석

Pydole 2019. 8. 17. 00:25

윈도우 서버를 운영하다보면 주기적으로 서버 성능을 분석해야 할 필요가 있다.

윈도우에는 성능모니터링이라는 좋은 유틸프로그램이 있는데, 이를 활용하여 데이터를 수집하고,

수집된 데이터를 DB화 하고, DB화한 데이터를 시각화해 보려 한다.

 

 

 

1. 윈도우즈 성능퍼포먼스 데이터 수집

 

샘플로 총 수집할 항목은 총 16개

 

  - \Processor(_Total)\% Processor Time
  - \System\Processor Queue Length
  - \System\Context Switches/sec
  - \Memory\% Committed Bytes In Use
  - \Memory\Available MBytes
  - \Memory\Free System Page Table Entries
  - \Memory\Pool Nonpaged Bytes
  - \Memory\Pool Paged Bytes
  - \Memory\Pages/sec
  - \PhysicalDisk(_Total)\% Idle Time
  - \PhysicalDisk(_Total)\Avg. Disk sec/Read
  - \PhysicalDisk(_Total)\Avg. Disk sec/Write
  - \PhysicalDisk(_Total)\Avg. Disk Queue Length
  - \Network Interface\Bytes Received/sec
  - \Network Interface\Bytes Sent/sec
  - \Network Interface\Output Queue Length

 

최대로 디테일하게 분석하기 위해서 '초' 단위로 하였고, 파이썬에서 데이터를 파싱하기 위해서 파일형식은 'csv' 로 하였다.

 

성능퍼포먼스를 구동하고, 파일을 오픈해보면 logtime까지 총 17개의 필드가 적재됨을 알 수 있다.

 

 

 

 

 

2. python을 이용한 수집 데이터를 mariadb (DB) 적재

 

   - mariadb에 적당한 DB와 table을 생성하고, 컬럼을 만든다.

   - SIP(서버IP는) 성능 데이터가 어떤 서버의 테이터인지 식별하기 위해 강제적으로 넣었고,

     성능 퍼포먼스 파일명 접두어 넣고, python의 split 메소드를 이용하여 넣었다.

   

   - 시계열로 데이터를 분석하기 위해 logtime으로 index 설정

 

  

 

   - 파이썬으로 데이터를 insert시 소수 2째자리까지만 표현

   - 날짜 형식은 yyyy-mm-dd로 변환

 

 

 

 

 

 

 

3. grafana를 이용한 수집 데이터 시각화

 

 

Processor Time (CPU사용율)

 

 

Network Traffic (네트워크 트래픽)

 

 

sys_mem_availablembytes (여유 메모리 사용량)

 

 

 

종합 대쉬보드