WMI 데이터 판독기 태스크

 

안녕하세요 강성욱 입니다.(www.sqltag.org, www.sqler.com, http://blog.naver.com/jevida)

이번 시간에는 [WIM 데이터 판독기 태스크]에 대해서 알아 보도록 하겠습니다.

 

WMI는 OS에서 Windows Management Instrumentation 서비스를 통해 OS에서 관리 됩니다.

WMI 정보를 사용하기 위해서는 WMI 정보를 읽어올 서버에 대한 연결과 WMI 정보를 읽어올 명령어가 필요합니다. WMI 연결은 SSIS의 연결 관리자에서 지정할 수 있으며 WMI정보는 SQL쿼리와 유사한 형태인 WQL(WMI Query Language)이라는 스크립트 언어를 이용하여 읽어올 수 있습니다.

 

이번 실습에서는 서버의 CPU사용률이 30% 미만일 때 현재 실행 중인 모든 프로세스의 이름과 경과된 시간, 스레드 수 등을 읽어서 텍스트 파일로 저장하는 작업을 구현 합니다.

 

[BIDS]를 실행하여 [Intergration Services 프로젝트]를 실행 합니다.

 

 

[제어 흐름] 탭에서 [WMI 데이터 판독기 태스크]를 마우스를 이용하여 드래그 앤 드롭으로 끌어다 놓습니다.

 

 

[WMI 데이터 판독기 태스크]에서 마우스 오른쪽을 클릭하여 [편집]을 선택 합니다.

 

 

[WMI 데이터 판독기 태스크 편집기]창이 나타납니다.

[일반] 탭에서는 태스크의 이름과 설명을 지정 할 수 있습니다.

 

 

[WMI 옵션]창에서는 연결 방법 및 작업 속성을 지정 합니다.

WMI 옵션

  • WmiConnection - WMI연결을 지정 합니다.

 

  • WqlQuerySourceType – 데이터를 판독하기 위해 수행하는 쿼리인 WQL쿼리의 입력형태를 지정. 직접 입력하도록 하거나 변수에 WQL 쿼리를 저장한 후 이 변수를 사용하도록 지정할 수 있으며 별도의 파일로 만든 후 이 파일을 사용하도록 지정할 수 도 있습니다.
  • WqlQuerySource – 직접 입력으로 지정한 경우 WQL 쿼리를 입력. (본 예제에서는 _Total에 대한 값만 읽어오도록 설정 합니다.)

SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE NAME = '_Total'

 

  • OutputType – 결과 형태를 설정. 데이터 테이블인 경우 결과가 테이블 형태로 출력, 이외에도 [속성 이름 및 값] 또는 [속성 값]만 출력되도록 설정 가능. 결과가 데이터 테이블인 경우 대상은 파일 형태이거나 Object형 변수이어야 하며 속성 이름 및 값 또는 값인 경우에는 파일 형태이거나 String형 또는 Object형 변수이어야 합니다.
  • OverwriteDwstination – 기존의 파일 또는 변수의 값이 있는 경우에 대한 처리 유형 지정.
  • DestinationType – 결과를 저장할 유형을 지정. 파일 또는 변수에 저장할 수 있습니다.
  • Destination – 결과를 파일에 저장하도록 설정한 경우에는 파일 연결을 지정하며 변수로 저장하도록 설정한 경우에는 저장할 변수 이름을 지정.

 

 

WQL쿼리를 이용하여 현재 서버의 %Process Time정보를 읽어 들인 후 이 값을 ProcessorTime라는 변수에 저장하는 작업이 완료 되었습니다.

이제 CPU의 사용량이 30 미만인지를 판단한 후 현재 수행되는 프로세스 정보를 수집하는 작업을 구성하도록 하겠습니다.

[제어 흐름] 탭에서 [WMI 데이터 판독기 태스크]를 추가합니다. 이름을 [프로세스 정보 수집]으로 변경 합니다.

 

 

[프로세스 정보 수집]에서 마우스 오른쪽을 클릭하여 편집을 선택 합니다.

SELECT Name, IDProcess, PageFileBytes, VirtualBytes, ElapsedTime, ThreadCount FROM Win32_PerfFormattedData_PerfProc_Process

 

파일 연결 관리자 편집기에서 사용 유형을 파일 만들기로 지정한 후 새로운 파일 이름을 지정하거나 기존 파일로 지정한 경우 해당 파일을 선택 합니다.

 

두 개의 WMI작업을 연결합니다. 이제 CPU 사용량이 30%미만일 때 실행되도록 선행 제약 조건을 추가해야 합니다. 녹샌선을 더블 클릭하여 [선행 제약 조건 편집기]를 실행 합니다.

 

평가 작업을 [식 및 제약 조건]으러 변경합니다.

식(X)부분에 다음과 같은 조건을 입력 합니다.

@ProcessorTime<"30"

 

 

 

[편집]이 완료 되었으면 패키지를 실행 합니다.

늘 그러듯!

녹색 : 정상 실행

빨간색 : 오류 발생

(CPU 사용률이 30미만이어야 패키지가 실행 됩니다.!)

 

패키지가 정상적으로 완료 되었으면 해당 파일을 열어 정상적으로 기록되었는지 확인 합니다.

 

해당 정보가 저장된 것을 확인 할 수 있습니다.

 

이 작업을 통해서 CPU 사용률이 높을 때 실행 중인 프로세스들의 정보를 남기는 모니터링 작업이나 특정 디스크의 여유 공간이 부족할 때 지정한 파일들을 삭제하는 시스템 관리 작업을 구현할 수 있습니다.

 

[데이터 판독기에서 사용할 수 있는 WQL]

--논리적디스크정보를반환

SELECT Name, FileSystem, FreeSpace, Size FROM Win32_LogicalDisk

 

--시스템의페이지파일정보를반환

SELECT Description, FileSize FROM Win32_PageFIle

 

--성능모니터의Logical Disk에포함된카운터의값출력

SELECT * FROM Win32_PerfWawData_PerfDisk_LogicalDisk

 

--CPU 정보를출력

SELECT Caption, CpuStatus, DeviceID FROM Win32_Processor


강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp



No. Subject Author Date Views
Notice 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 467
1566 SSIS - SSIS패키지 실행 하기. – Job Agent 등록 및 수동 실행 jevida(강성욱) 2013.10.02 15517
1565 SSIS - 패키지 저장 방식의 종류 및 장점. jevida(강성욱) 2013.10.02 8330
1564 SSIS - 성능 카운터 - SSIS를 튜닝 하자 jevida(강성욱) 2013.10.02 9217
1563 SSIS - 배포 및 배포 마법사 jevida(강성욱) 2013.10.02 10994
1562 SSIS - 로깅 - SSIS의 실행 정보를 로깅하자 jevida(강성욱) 2013.10.02 7632
1561 SSIS - 보안 - 보안레벨에 따른 암호화 수준. jevida(강성욱) 2013.10.02 9151
1560 SSIS - 트랜잭션 - 패키지에서 트랜잭션을 제어 하자 jevida(강성욱) 2013.10.02 7565
1559 SSIS -스크립트 작업 및 ActiveX 스크립트 작업 jevida(강성욱) 2013.10.02 8954
1558 SSIS - SQL 실행 작업 jevida(강성욱) 2013.10.02 11958
1557 SSIS - WMI 이벤트 감시자 작업 jevida(강성욱) 2013.09.25 8373
» SSIS - WMI 데이터 판독기 작업 jevida(강성욱) 2013.09.25 7644
1555 SSIS - FTP 작업 jevida(강성욱) 2013.09.25 9562
1554 SSIS - 파일 시스템 작업 - 폴더 생성 삭제, 파일 복사 삭제 등 관리 작업을 하자 jevida(강성욱) 2013.09.25 9736
1553 SSIS - 오류 메시지 전송 작업 jevida(강성욱) 2013.09.25 10359
1552 SSIS - 작업 전송 작업 jevida(강성욱) 2013.09.25 7466
1551 SSIS - 로그인 전송 작업 jevida(강성욱) 2013.09.25 8855
1550 SSIS - 데이터베이스 전송 작업 jevida(강성욱) 2013.09.25 8483
1549 SSIS - Master 저장 프로시저 전송 태스크 jevida(강성욱) 2013.09.25 7054
1548 SSIS - 패키지 실행 - 부모 패키지와 자식패키지로 효율적인 관리하기 jevida(강성욱) 2013.09.25 8944
1547 SSIS - XML 태스크 - XML 비교, 병합, 출력등 다양한 작업을 하자. jevida(강성욱) 2013.09.24 7153





XE Login