1. 관리 대상 서버에 성능 로그를 남기자.
백도훈
에이디컨설팅 선임 컨설턴트
성능 로그를 남기는 방법은 여러 가지가 있습니다.
여기서는 복잡한 방법이 아닌 윈도우에서 기본적으로 제공하는 성능 모니터 도구를 이용하도록 하겠습니다.
1. 관리 대상 서버에서 관리도구 > 성능을 실행합니다. 또는 시작 > 실행 창에서 perfmon을 입력해서 성능 모니터 도구를 실행합니다.
2. 좌측 메뉴에서 성능 로그 및 경고 > 카운터 로그를 선택해서 새 로그를 생성합니다.
3. 이름은 PerfMon이라고 지어줄까요?
처음 보이는 일반 탭에서 카운터를 추가합니다.
저의 경우에는 관리 대상 서버에 SQL도 설치되어 있었기 때문에 아래와 같은 카운터를 추가했습니다.
5개 정도의 카운터를 추가합니다.
성능 개체 |
카운터 |
인스턴스 |
Processor |
%Processor Time |
_Total |
System |
Processor Queue Length |
|
SQLServer:General Statistics |
User Connections |
|
SQLServer:SQL Statistics |
Batch Requests/sec |
|
SQLServer:SQL Statistics |
SQL Compilations/sec |
|
그리고 데이터 샘플 간격은 5초로 하겠습니다.
4. 로그 파일 탭에서 로그 파일 종류는 텍스트 파일(쉼표 구분 형식)을 선택하고 구성 버튼을 클릭해서 로그 파일 위치를 정해줍니다.
5. 일정 탭에서 로그 시작과 로그 중지를 수동으로 변경합니다.
확인을 클릭하여 창을 닫으면 카운터 로그가 하나 추가된 것을 확인할 수 있습니다.
카운터 로그는 실행함과 동시에 로그 파일을 남기기 시작하고 실행되는 동안에는 로그 파일을 계속 열어놔서 이동이나 삭제가 불가능합니다. 그리고 실행을 중지하면 파일을 닫고 저장하여 한번의 카운터 로그 주기를 마치게 됩니다.
이 말은, 어떤 방법을 써서라도 카운터 로그 시작과 중지를 주기적으로 반복 실행해줘야 로그 파일을 읽고 DB에 입력하고 로그 파일 삭제하는 과정이 가능하다는 것입니다.
주기적으로 카운터 로그의 시작과 중지를 반복하는 방법을 몇 가지 소개하겠습니다.
제일 간단한 방법은 카운터 로그 일정 탭의 로그 중지 항목에서 다음 이후를 선택하고 주기를 설정해줍니다. 그리고 로그 파일을 닫을 때 새 로그 파일 시작을 선택하고 실행시켜 주면 주기적으로 반복하게 됩니다.
하지만 이 방법의 최대 단점은 수동으로 한 번 종료되면 자동 시작이 안 된다는 것입니다. 설정에서 보시다시피 로그 시작이 수동이므로 처음 시작은 수동으로 실행시켜줘야 합니다.
다른 방법은 SQL Agent를 이용하는 것 입니다. 카운터 로그를 작업에 등록하고 Agent에서 자동으로 실행 및 중지를 시켜주는 방법입니다. 그럼 SQL 서버가 설치되지 않은 곳에서는 어떻게 할까요? 예약된 작업에 등록하면 될 것 같습니다. ^^;;
콘솔 화면에서 logman이라는 명령어를 아래와 같이 실행하되 각각 실행하고 카운터 로그의 상태를 확인해봅니다.
logman –start PerfMon
logman –stop PerfMon
살펴보면 logman 명령에 따라서 카운터 로그가 실행되고 중지되는 것을 확인할 수가 있습니다.
6. 이야기가 길어졌네요. SQL Agent에서 PerfMon Starter라는 이름의 새 작업을 추가합니다.
7. 단계 메뉴에서 새로 만들기를 클릭해서 새 단계를 추가합니다. 먼저 실행되고 있을 카운터 로그를 중지하고 실행하는 가정으로 단계를 추가하겠습니다.
단계 이름은 PerfMon Stop이라고 입력하고
유형은 운영 체제(CmdExec)를 선택하고
명령에는 logman -stop PerfMon를 입력하겠습니다.
고급 탭에서 성공, 실패한 경우 동작을 다음 단계로 이동으로 변경하겠습니다. 확인 버튼을 클릭하여 단계 추가를 마무리합니다.
8. 이제 카운터 로그를 시작하는 단계를 추가하겠습니다. 단계 메뉴에서 새로 만들기를 클릭해서 새 단계를 추가합니다. 먼저 실행되고 있을 카운터 로그를 중지하고 실행하는 가정으로 단계를 추가하겠습니다.
단계 이름은 PerfMon Start이라고 입력하고
유형은 운영 체제(CmdExec)를 선택하고
명령에는 logman -start PerfMon를 입력하겠습니다.
확인 버튼을 클릭하고 단계 추가를 마무리 합니다. 다음과 같이 두 개의 단계가 등록되었습니다.
9. 일정 메뉴에서 새로 만들기 버튼을 클릭해서 새 일정을 등록합니다.
이름은 PerfMon Job이라고 입력하고
일정 유형은 되풀이로 선택하고
되풀이 빈도는 매 1일 마다로 설정합니다.
일별 되풀이 빈도는 10분 마다로 설정하고
종료 날짜는 없음으로 설정합니다.
확인 버튼을 클릭해서 작업 등록을 마칩니다.
작업을 시작 시켜서 카운터 로그가 정상적으로 동작하는지 확인합니다.
여기서는 10분마다 로그 파일이 생기도록 설정했습니다.
만약 실시간 모니터링 구현을 목적으로 한다면 10분 비동기는 너무 느릴 것입니다.
이 되풀이 시간이 짧아질수록 비동기 시간이 짧아지는 것이니깐 1분에서 3분 사이로 설정하는 것도
나쁘지 않은 것 같습니다.
이제 5초 단위로 선택한 5개의 카운터 로그가 10분 단위로 주기적으로 csv파일로 남겨질 것입니다.
10. 마지막으로 한가지 작업만 더 하겠습니다. 로그 파일이 남겨지는 폴더를 공유하는 것입니다. 그래야 원격에서 패키지가 실행되면서 파일을 복사해갈 수 있기 때문입니다.
물론 테스트를 위해 동일한 컴퓨터의 다른 폴더로 이동하는 경우라면 공유를 하지 않아도 됩니다. ^^
PerfMon이라는 이름으로 공유를 설정한 뒤 사용 권한에서 EveryOne에 변경 권한까지 허용합니다.
'연구개발 > DTS & SSIS' 카테고리의 다른 글
SSIS를 이용한 서버 성능 수집 프로세스 구현 - 로그 파일 DB입력 (0) | 2009.06.20 |
---|---|
SSIS를 이용한 서버 성능 수집 프로세스 구현 - 로그 파일 이동 (0) | 2009.06.20 |
SSIS를 이용한 서버 성능 수집 프로세스 구현 - 소개와 구조 설명 (0) | 2009.06.20 |
요약 리포트 생성 및 발송 패키지 구현 – (4) 결과 파일 발송 (0) | 2009.06.20 |
요약 리포트 생성 및 발송 패키지 구현 – (3) 읽어오는 날짜 설정하기 (0) | 2009.06.20 |