Volume 1 EXEM CO., LTD. Transaction Performance Maximizer Maxgauge for SQL Server 1.5 User s Guide
Maxgauge for SQL Server User's Guide T R A N S A C T I O N P E R F O R M A N C E M A X I M I Z E R Maxgauge for SQL Server Copyright 2007-2010. EXEM Co., Ltd. All rights reserved. 12 th Floor, Woorim Business Center.,240-21, Yeomchang-dong, Kangseo-gu, Seoul, Korea Phone +82-2-6203-6300 Fax +82-2-6203-6301 www.ex-em.com 2
3 Maxgauge for SQL Server User s Guide
Maxgauge for SQL Server User's Guide 제품개요주요기능 2-1. Sysmon (OS Monitoring Agent) 9 CPU 정보... 9 Memory 정보... 9 Disk 정보... 9 System 정보... 9 2-2. RTM (RealTime Monitoring) 10 DB STAT 정보... 10 Sysmon 정보... 10 통합모니터링... 10 Active Session 모니터링기능... 10 세션추적기능... 10 세션모니터링기능... 10 세션조회기능... 11 락 (LOCK) 추적기능... 11 SYSTEM 지표모니터링기능... 11 ACTIVE SESSION HISTORY 추적기능... 11 Alert List 조회기능... 11 Counter 및 Wait 조회기능... 11 Session List 조회기능... 11 사용된 SQL 문조회기능... 11 스크립트관리기능... 12 세션대기정보조회기능... 12 Database Size 정보조회기능... 12 시스템메모리정보조회기능... 12 File IO 정보조회기능... 12 OS 및인스턴스정보조회기능... 12 Process 정보조회기능... 12 Job 결과조회기능... 12 Resource 사용현황조회기능... 13 System Multi Monitor... 13 2-3. Log Controller 14 로그유지계획... 14 DashBoard 정보... 14 2-4. Repository DB 14 사용자접근제어... 14 2-5. Performance Analyzer 15 인스턴스모니터링... 15 Active Session 모니터링기능... 15 4
Maxgauge for SQL Server User s Guide 주요지표조회... 15 개별상세지표조회... 15 장시간추이분석기능... 15 레포트조회기능... 15 1. Maxgauge for SQL Server Client Install & Configuration 17 1.1 설치환경... 17 1.2 설치방법... 17 1.3 모니터링을위한 Maxgauge for SQL Server Connection 설정... 23 2. Maxgauge for SQL Server Real-Time Monitor 30 2-1. 접속 (Connect)... 30 2-2. Main 화면... 31 2-3. Multi Database System Monitoring 영역... 35 2-4. Wait 영역... 35 2-5. Alert 영역... 35 2-6. Refresh 기능... 35 2-7. 탑-다운 (Top-Down) 방식의추적... 36 2-8. Main Menu... 41 2-9. 기타기능... 57 3. Logging Controller 60 3-1. 개요... 60 3-2. 환경설정... 62 4. Maxgauge for SQL Server Performance Analyzer 68 4-1. Performance Analyzer 개요... 68 4-2. Active Session 영역... 70 4-3. 주요지표표시영역... 72 4-4. 개별상세지표영역... 73 4-5. Trend Day Analysis... 89 4-7. 기타... 92 APPENDIX Maxgauge for SQL Server 주요지표해설 94 5
Maxgauge for SQL Server User's Guide Volume I Part 1 이 PART 에서는 Maxgauge for SQL Server 제품에대한일반적인개요를소개하고주요기능과실행되는 구조를다루게됩니다. 1. 제품개요 2. 주요기능 6
제품개요 Maxgauge for SQL Server 제품은전산시스템을구성하고있는데이터베이스, 시스템, 애플리케이션등각각의컴포넌트들에대한성능및장애관리를효과적으로지원하기위한성능관리도구입니다. 시스템을운영하는관리자는성능관리를위해아래 [ 그림 1-1] 처럼업무를수행해야하고, 각업무들은서로간의유기적인연동관계에의해서수행되어야합니다. [ 그림 1-1] Maxgauge for SQL Server 기본개념 Maxgauge for SQL Server 는장애관리및성능관리를수행하는시스템관리자또는데이터베이스및애플리케이션관리자들이실시간감시, 진단, 분석업무를효과적으로수행할수있도록지원합니다. 실시간감시기능을통해서많은서버중에서어느 DB 에서장애가발생하였고성능저하현상이발생하였는지를손쉽게그리고신속하게파악할수있도록합니다. 장애및성능저하현상이발생한경우실시간진단과정을통해서정확히어떤부분의원인에의해서발생하였는지손쉽게파악하여가능한빠르게조치를취할수있도록하고, 사후분석작업을통해서장애및성능저하의원인을자세히분석하고적절한사후예방조치를취할수있도록합니다. 7
Maxgauge for SQL Server User's Guide Volume I 주요기능 Maxgauge for SQL Server 의구조와각부분의역할에대해서설명합니다. Maxgauge for SQL Server 는 1 개의 Agent 와 Client 의구조로되어있습니다. DB Instance 의성능정보를수집하는 Sysmon, DATABASE 의성능정보를수집하는 RTM, OS 및 DB 에서수집된정보들을 Repository DB 에저장하는 Log Contorller, 저장된데이터를영구적으로보관하고있는 Repository DB, 그리고 Repository DB 에서데이터를조회하여 DB 의현재상태를모니터링하는 Client 로구성됩니다. DB 서버에설치된 Agent1 는 TCP 통신을통해수집된정보를전달하고이정보를별도의 DB2에저장하여실시간정보조회는물론사후분석을위한용도로사용할수있습니다. [ 그림 1-2] Maxgauge for SQL Server 구성도 1 Sysmon 를의미합니다. 2 Repository DB 를의미합니다. 8
2-1. Sysmon (OS Monitoring Agent) Sysmon 은대상서버의 OS 에대한각종성능정보를수집하는 Agent 입니다. Sysmon 에서수집하는정보는아래와같습니다. CPU 정보 운영중인서버의 CPU 상태정보를수집합니다. Memory 정보 운영중인서버의메모리사용량, 페이징정보등을수집합니다. Disk 정보 운영중인서버의디스크사용량, 대기상태등을수집합니다. System 정보 Context Switch, Processor Queue Length 정보를수집합니다. 9
Maxgauge for SQL Server User's Guide Volume I 2-2. RTM (RealTime Monitoring) RTM 는 Sysmon 을통해수집된 OS 정보및모니터링의대상이되는인스턴스의각종 Session 및 Stat 정보와인스턴스에서실행된 Transaction 이수행하는 SQL 의각종 Stat 등을수집하여화면에표시해주는어플리케이션입니다. RTM 의수집주기는기본적으로 5 초이며, 수집하는정보는아래와같습니다. DB STAT 정보 최적화된쿼리를통하여연결된인스턴스의각종 SQL Server Stat 정보를수집합니다. Sysmon 정보 OS CPU 사용률, Disk 사용, Memory 정보등을수집합니다. RTM 에서제공되는기능은아래와같습니다. 통합모니터링 복수개의 MS-SQL 서버인스턴스를한화면에서모니터링함으로써산재되어있는 MS-SQL 서버인스턴스의성능문제를손쉽게인지하고대처할수있습니다. 또한하나의지표에대해여러데이터베이스를비교해서모니터링할수있습니다. Active Session 모니터링기능 특정인스턴스에서수행되고있는 Active Session 목록을손쉽게모니터링할수있습니다. 세션추적기능 하나의 MS-SQL 서버인스턴스에서발생된성능문제의원인을유발시킨세션을마우스클릭에의해손 쉽게추적할수있습니다. 세션모니터링기능 특정세션에대해현재일량, SQL 정보를한화면에서유기적으로모니터링함으로써세션의성능현황 을실시간에파악할수있습니다. 10
세션조회기능 하나의인스턴스에접속된여러개의세션들을조건에의해검색하고조건에맞는세션집합들을동시 에감시합니다. 하나의세션에대해서는일량정보, 현행 SQL 문장, 접속정보등을조회할수있습니다. 락 (LOCK) 추적기능 MS-SQL 서버인스턴스에서발생하는 Lock 의대기관계를실시간에추적합니다. Lock 의소유세션과 대기세션들을트리형식으로유기적으로분석하고 deadlock 현상을손쉽게감지할수있습니다. SYSTEM 지표모니터링기능 MaxGauge for SQL Server 가설치되어있는서버의 OS CPU 사용정보를실시간그래프형태로제공하 여사용자로하여금보다많은성능지표를효율적으로감시하도록합니다. ACTIVE SESSION HISTORY 추적기능 MaxGauge for SQL Server Main 화면에나타나는구간동안에수행되었던 Active Session 에대한 History 를추적할수있습니다. Alert List 조회기능 Error Log 및 Event Log 에발생한 Alert 을사용자에게제공합니다. Counter 및 Wait 조회기능 성능카운터값및대기정보를실시간으로조회할수있는기능을제공합니다. Session List 조회기능 현재연결되어있는모든 Session 에대해다양한조회조건을이용하여조회할수있는기능을제공합니 다. 사용된 SQL 문조회기능 쿼리문에사용된일부 SQL 문을이용하여조회할수있는기능을제공합니다. 11
Maxgauge for SQL Server User's Guide Volume I 스크립트관리기능 Script Manager 는 DBA 업무수행시자주사용하는 Script 를 MaxGauge 에등록하여사용할수있도록한기능입니다. 세션대기정보조회기능 세션레벨에서의대기정보를조회할수있는기능을제공합니다. Database Size 정보조회기능 Database 별데이터파일, 로그파일크기및사용량, 구성정보를실시간으로조회할수있는기능을 제공합니다. 시스템메모리정보조회기능 인스턴스레벨에서의메모리사용정보를조회할수있는기능을제공합니다. File IO 정보조회기능 데이터및로그파일의 IO 정보를조회할수있는기능을제공합니다. OS 및인스턴스정보조회기능 OS 및인스턴스레벨의상세정보를조회할수있는기능을제공합니다. Process 정보조회기능 OS 전체에대한프로세스목록을조회할수있는기능을제공합니다. Job 결과조회기능 Job 에대한결과를조회하는기능을제공합니다. 12
Resource 사용현황조회기능 Scheduler, Disk, Memory 에대한사용현황을조회할수있는기능을제공합니다. System Multi Monitor 현재시점에해당서버의 CPU 및 Memory 사용정보를알려줍니다. 13
Maxgauge for SQL Server User's Guide Volume I 2-3. Log Controller Log Controller 는 Sysmon 에서수집한각종정보와 Optimized Query 를통해수집한 DB 의각종정보를 전달받아서 Repository DB 로저장하는어플리케이션입니다. 로그유지계획 Log Controller 가쌓은로그는날짜단위로데이터베이스가생성되어저장됩니다. 쌓이는모든로그를 저장하기힘든환경의경우, 특정일이지나면로그를백업및삭제해주는기능입니다. DashBoard 정보 DashBoard 와의연동이가능하도록정보를쌓을수있습니다. 특정지표가설정치를넘어서면 EVENT_HISTORY 라는 Table 에관련정보를보낼수있습니다. 2-4. Repository DB Repository DB 는두가지역할을하는 Database 입니다. 첫번째역할은수집된 OS 및 DB 의정보를저장하는것입니다. Repository DB 의다른역할은 Target DB 에대한접속정보를저장하는것입니다. 이에부가적으로서버에접속하고자하는 User 의접근제어가가능하도록 User ID, Password, 접속허용 IP 등의정보도가지고있습니다. SQL Server 2005 이상의버전이필요하며, Express 버전으로도일부운영이가능합니다. 사용자접근제어 사용자접근제어를위해서 User ID 와 Password 를체크합니다. Login 시미리설정되어있는 IP 에서접속중인지를확인하여, 접속가능 Client 도제어가가능합니다. User ID, Password, IP 정보등의확인을거쳐서 Login 에성공하게되면, 해당유저는접속권한있는 Server 목록만확인할수있습니다. 14
2-5. Performance Analyzer Performance Analyzer 는 Repository DB 에저장된정보를조회하여, 모니터링대상이되는인스턴스의상태를손쉽게파악할수있도록다양한기능을제공합니다. Performance Analyzer 에서제공되는기능은아래와같습니다. 인스턴스모니터링 인스턴스전체에대해모니터링함으로써서비스응답처리지연및성능저하시에어느부분의문제인 지쉽고빠르게파악할수있습니다. Active Session 모니터링기능 특정시점에서수행된 Active Session 목록을손쉽게확인할수있습니다. 주요지표조회 주요지표표시영역은 CPU, Active Session 및 MS SQL Server 에서제공하는중요성능지표에대한성능 추이를표시합니다. 개별상세지표조회 Stat, Counter, Wait, Session Wait, Database size info, Lock Tree 등을통해시점별상황을쉽게파악할수있으며, Configuration, OS 및인스턴스정보등전체인스턴스에관련된항목들에대한사항도쉽게파악할수있습니다. 장시간추이분석기능 Trend Day Analysis 는하루의로그가아닌여러날의로그를한번에지표별로추이를확인할수있는 기능입니다. 전월대비내지는한달동안의서버의사용률및성능추이를한화면에서확인가능합니다 레포트조회기능 인스턴스별레포트를제공합니다. 레포트에는 HW 와 OS 및 SQL Server 명세, 인스턴스환경설정, 주요 지표에대한지난달과이번달의성능카운터비교, 데이터베이스정보를포함하고있습니다. 15
Maxgauge for SQL Server User's Guide Volume I Part 2 PART 2 에서는 Maxgauge for SQL Server Client 의설치및설정그리고상세기능에대해다루게됩니다 Maxgauge for SQL Server Client Install & Configuration Maxgauge for SQL Server Real-Time Monitor Maxgauge for SQL Server Logging Controller Maxgauge for SQL Server Performance Analyzer 16
1. Maxgauge for SQL Server Client Install & Configuration 1.1 설치환경 Operation System: Windows NT 이상, 2000, XP CPU: Pentium III 이상 RAM: 256MB 이상 (Windows XP 512 MB 이상 ) Disk: 100MB 이상 (Repository 별도 ) Graphic : 1024 * 768 Sysmon 통신사전설정 : 9729(TCP Port) 1.2 설치방법 (1) 설치파일을마우스로더블클릭합니다. (2) [Next] 를클릭합니다. [ 그림 2-1] Install 화면 17
Maxgauge for SQL Server User's Guide Volume I (3) I accept the agreement 선택후 [Next] 를클릭합니다. [ 그림 2-2] Install 화면 (4) 설치를원하는경로를지정한후 [Next] 를클릭합니다. [ 그림 2-3] Install 화면 18
(5) 설치할폴더이름의변경을원할경우폴더이름변경후 [Next] 를클릭하고 Default 그대로사용할경 우에는이름변경없이 [Next] 를클릭합니다. [ 그림 2-4] Install 화면 (6) 바탕화면에아이콘생성을원할경우에 Create a desktop icon 에체크버튼선택후, [Next] 합니다. [ 그림 2-5] Install 화면 19
Maxgauge for SQL Server User's Guide Volume I (7) 설치내역을확인한후에 [Install] 을클릭합니다. [ 그림 2-6] Install 화면 (8) Microsoft SQL Server Compact 가설치되어있지않은컴퓨터의경우설치화면이자동으로뜨게됩 니다. [ 그림 2-7] Install 화면 20
(9) 사용권계약동의를체크하신후다음을클릭합니다. [ 그림 2-8] Install 화면 (10) 설치경로등을확인하시고설치를클릭합니다. [ 그림 2-9] Install 화면 21
Maxgauge for SQL Server User's Guide Volume I (11) 설치완료화면입니다. 마침을클릭합니다. [ 그림 2-10] Install 화면 (12) Launch Maxgauge RealTime Client 의체크버튼을체크하고 Finish 를클릭하면, Maxgauge for SQL Server RealTime Client 가실행됩니다. [ 그림 2-11] Install 화면 22
1.3 모니터링을위한 Maxgauge for SQL Server Connection 설정 (1) 사전작업 MS SQL Server 인스턴스가설치된서버에 MaxGauge 라는폴더를생성하고그폴더에 SysMon.exe, SysMon_install.bat, SysMon_uninstall.bat, SysMonGuide.exe, SysMonGuide_install.bat, SysMonGuide_uninstall.bat 를복사한후 SysMon_install.bat, SysMonGuide_install.bat 를순서대로실행합니다. 이파일들은설치경로를변경하지않았다면 C:\Program Files\MaxGauge for SQLServer 아래에있습니다. 아래와같이 MaxGauge System Monitor / MaxGauge System Monitor Guide Service 라는서비스가등록이됩니다. MaxGauge System Monitor 서비스는 9729 번포트를사용합니다. 서비스작동을위해서는이포트가열려있어야합니다. [ 그림 2-12] Services.msc 확인 프로그램실행을위한 Procedure 저장및접속정보등기본정보를저장하기위해서 Database 가생성되 어야합니다. Database File 의크기는 10MB 정도의크기입니다. 사용될 Database 명은 [maxgauge] 입니 다. (2) RealTime Connection 설정 [ 그림 2-13] Maxgauge for SQL Server Icon 23
Maxgauge for SQL Server User's Guide Volume I Windows 시작 > 프로그램폴더 > Maxgauge for SQL Server > Real-Time Monitor 클릭 RealTime Monitor 가실행이되면아래와같은 Repository SQL Server Connection 창이나타납니다. [ 그림 2-14] Repository SQL Server Connection 항목 Server Name 설명 Repository 역할의 SQL Server 인스턴스명 User name Repository 역할의 SQL Server 인스턴스의로그인명 Password Repository 역할의 SQL Server 인스턴스로그인의패스워드 User ID 계정정보에접근하기위한 ID( 최고관리자 : root) Password 계정정보에접근하기위한 Password Auto Save User Login 접속정보를저장 Auto Login 접속시 User Login 에대해자동으로 Login 실행 24
Repository SQL Server 창의 Instance Manager 클릭 [ 그림 2-15] Connection Manager 항목 Connection Alias 설명 식별자이름. Server Name 입력시자동생성 Server Name Monitoring 할 SQL Server 인스턴스명 User name Monitoring 할 SQL Server 인스턴스의로그인명 Password Monitoring 할 SQL Server 인스턴스의로그인패스워드 Host Monitoring 할 SQL Server 인스턴스가설치된호스트서버명 User name Monitoring 할 SQL Server 인스턴스가설치된호스트에접속 가능한유저명 Password Monitoring 할 SQL Server 인스턴스가설치된호스트에접속 가능한유저의비밀번호 25
Maxgauge for SQL Server User's Guide Volume I Repository SQL Server 창의 Users Manager 클릭 [ 그림 2-16] Users Manager Users Manager 창의 Create 클릭 (User 생성 ) [ 그림 2-17] Connection Manager 26
User ID 항목 계정정보에접근하기위한 ID 설명 Password 계정정보에접근하기위한 Password Select DB Name & Role 해당 User 가접속가능한 DB 및역할선택 IP Address 해당 User 가접속가능한 IP Address(cf> * 사용가능 ) (2) Log Controller Connection 설정 시작 > 프로그램 > MaxGauge > Logging Controller [ 그림 2-18] Log Controller 실행화면 해당서버에대한접속정보는자동으로가져오거나직접생성할수있습니다. 자동으로가지고올수있는서버정보는 Real Time Monitor 에서설정한서버값으로 [File] - [Repository Connect Info] 에서 Repository 역할의 SQL Server 를설정해주면, 프로그램시작시 SQL Server 들의정보를바탕으로자동으로접속정보생성 ( 주의 : 프로그램재시작을해야 SQL Server 정보를가지고올수있습니다.) 27
Maxgauge for SQL Server User's Guide Volume I [ 그림 2-19] Repository Connect Info 수동생성시 [Edit] - [Create Connection] [ 그림 2-20] Create Connection 빨간박스안은로깅디렉토리설정및각각의데이터로깅타임설정하는부분입니다. 28
항목 설명 Activity Logging(min.) Active Session Logging 주기 ( 분단위, Default 1 분 ) Session Logging (sec.) Session 정보수집주기 ( 초단위, Default 5 초 ) Top SQL Logging(min.) Top SQL Logging 주기 ( 분단위, Default 360 분 ) Count 저장할 Top SQL 개수설정 SQL Text SQL Text 포함여부 Log Dir 로그파일이저장되는위치정보 29
Maxgauge for SQL Server User's Guide Volume I 2. Maxgauge for SQL Server Real-Time Monitor Maxgauge for SQL Server RealTime Monitor 는현재시점의특정인스턴스성능현황을조회하고, 설정된임계값을초과하는지감시하며, 성능문제발생시에원인을추적하는기능들을제공하고있습니다. 하나의인스턴스뿐만아니라다수의인스턴스에대하여동시모니터링이가능합니다. 2-1. 접속 (Connect) 프로그램접속시또는메뉴의 File > Repository Connection Manager 를선택하면나타나는 Connect 창에서 Repository 정보와 User Login 을실행합니다. Instance Manager 에서생성한 Instance 들이 List 에나타나면모니터링하고자하는인스턴스를선택하여접속합니다. 인스턴스선택은체크박스를통해선택또는해제하실수있습니다. 여러개의인스턴스에접속할경우복수로체크하고 OK 버튼을누르면동시에여러개의인스턴스를모니터링할수있습니다. 아래그림은 Repository Connection Manager 에서 3 개의인스턴스접속을위해체크박스를선택한화면입니다. [ 그림 2-21] Repository Connection Manager 인스턴스선택화면 30
2-2. Main 화면 Maxgauge for SQL Server Real Time Monitor 초기화면은아래와같습니다. Multi Database System Monitoring Area Main Menu Instance Name Display [ 그림 2-23] RealTime Monitor 초기화면 Maxgauge for SQL Server RealTime Monitor 메인화면은하나의화면내에서동시에다수의 MS SQL Server 인스턴스의성능문제를시스템전체적인관점에서모니터링함으로써, MS SQL Server 인스턴스의실시간성능관리업무를신속하고효율적으로관리할수있도록합니다. Maxgauge for SQL Server 는최적화된시스템쿼리를사용하여데이터를수집합니다. 따라서인스턴스의다운타임 (Down-Time) 없이바로설치후모니터링이가능합니다. 또한다수의인스턴스를하나의화면내에서통합모니터링을함으로써특정인스턴스의성능저하및장애발생시즉각적으로문제의근본원인 (Root Cause) 이되는세션과 SQL 을신속하고효율적으로추적할수있습니다. 31
Maxgauge for SQL Server User's Guide Volume I 1) 모니터링지표항목을바꾸고싶은경우 MaxGauge 의 Multi Database System Monitoring 영역에표시되는모니터링지표는언제든지원하는성능정보로바꿀수있습니다. MSSQL 서버에서제공하는지표들을연관있는것끼리그룹핑하고 Event 성지표들을따로 Wait 으로분류유저들의편의성을도모하였으며여러가지원하는지표들로변경이가능합니다. 변경하는방법은지표명을더블클릭합니다. ( 화면에서는 CPU 부분더블클릭 ) [ 그림 2-24] 지표항목화면 Sys Stat, Ratio, User Ratio 등모니터링지표구분탭 (Tab) 을선택하면지표리스트영역, 선택지표표시 영역으로구분된리스트가나옵니다. 스크롤바를이동시켜다른항목의 List 를볼수있으며모니터링 하고자하는지표를선택후 OK 버튼을누르면변경된지표로모니터링할수있습니다. [ 그림 2-25] 지표항목변경화면 32
2) Active Session을보고싶은경우모니터창하단에기본적으로 Active Tab 이선택되어있으며세션정보가표시됩니다. 이곳이외에그래프화면을더블클릭하면아래화면이나타납니다. 이화면에서는확인된 Active Session 에대해최대 2 분전까지확인할수있습니다. [ 그림 2-26] Active Session 확인화면 Active Session 은현재인스턴스에서작업을진행중인 Session 을의미합니다. 각컬럼에대한설명은아래를참조하시기바랍니다. 항목 설명 Elapsed Time(s) 수행시간 Session ID SQL Server Session ID KPID Microsoft Windows Thread ID ECID 단일프로세스대신작업하고있는하위스레드를고유하게식별하는데 사용하는실행컨텍스트 ID Status 실행중및중지중과같은가능한값은아래와같습니다. dormant = SQL Server 에서세션을다시설정하고있습니다. running = 세션에서일괄처리를하나이상실행하고있습니다. MARS(Multiple Active Result Sets) 를설정하면세션에서여러개의일괄처리를실행할수있습니다. background = 세션에서교착상태감지와같은백그라운드작업을실행하고있습니다. rollback = 세션에서트랜잭션롤백을진행하고있습니다. pending = 세션이작업스레드를사용할수있을때까지기다리고있습니다. runnable = 세션의작업은시간퀀텀을얻기위해기다리는동안스케줄러의실행가능한큐에있습니다. 33
Maxgauge for SQL Server User's Guide Volume I spinloop = 세션의작업이 spinlock 을사용할수있을때까지기다리고 있습니다. suspended = 세션이 IO 와같은이벤트가완료되기를기다리고있습니다. Database Name 프로세스가현재사용하고있는데이터베이스의이름 Command Type 현재실행중인명령 Blocking Session ID 블락킹을유발하고있는 Session ID Last Wait Type 마지막또는현재대기유형의이름을나타내는문자열 Wait Type 대기유형 Wait Time(ms) 현재대기시간 ( 밀리초 ) Wait Resource 잠금리소스를텍스트로표시 CPU Time 프로세스의 CPU 사용시간 Logical Reads 메모리에서읽어온페이지수 Physical Reads 프로세스에대한디스크읽기 / 쓰기수 SQL Text 수행중인 SQL 문 CPU Time(Sigma) 프로세스의누적 CPU 시간 Logical Reads(Sigma) 프로세스의메모리누적읽기수 Physical Reads(Sigma) 프로세스의디스크누적읽기수 Host Name 세션에연결된 WorkStation 이름 Host Process 세션에연결된 WorkStation Process ID Program Name 응용프로그램이름 Login Name 로그인이름 Login Time 클라이언트가서버에로그인한시간 34
2-3. Multi Database System Monitoring 영역 MaxGauge 의메인화면중 Multi Database System Monitoring 영역은다시 9 개의서브-윈도우창 (subwindow) 으로구성되며, 각각의창에서는 MS SQL Serve 의성능지표, CPU 지표, 해당데이터베이스의 ratio 지표등 MaxGauge 가제공하는다양한정보를유저가변경할수있습니다. 특히 MS SQL Server 의성능지표의경우, MS SQL Server 에서제공하는모든성능정보를제공함으로써, 신속하고효과적으로실시간감시및진단업무를수행할수있습니다. 1) 감시대상주요성능지표 Active Session Physical IO Avg. Disk Queue Length Batch Requests CPU Multi Database System Monitoring 영역은데이터베이스시스템의성능정보제공에있어서매우중요한역할을하는부분으로서, MaxGauge 를처음설치한직후에는성능지표 7 가지, OS 지표 2 가지등총 9 가지항목을표시합니다. 화면에표시되는그래프와수치의의미는현재시점과현재시점바로이전시점의변화값을경과시간 (sec) 으로나눈초당평균값 (average value) 으로나타내줍니다. 2-4. Wait 영역 Wait 영역은인스턴스별로 Wait 정보를모니터링할수있습니다. Total Wait 부분은인스턴스전체 Wait 값을그래프로표시해줍니다. MS SQL 서버의특성상현재 Wait 정보를보여주지못하기때문에 Session Wait 이라는부분을추가하여현재 Wait 상태에있는 Session 들에대한정보를확인할수있습니다. 2-5. Alert 영역 Error Log 및 Event Log 에발생한오류사항을확인할수있습니다. 2-6. Refresh 기능 MaxGauge 의메인화면을포함한대부분의성능정보를모니터링하는윈도우의경우초기인스톨후기본적으로 5 초간격으로자동 Refresh Time 이설정되며사용자가필요에따라 Refresh Time 간격을조절할수있습니다. 또한자동 Refresh Time 의간격조정은유저의필요에의해변경가능하며, 최소 3 초 (sec) 부터유효합니다. DB Server 와 Client 사이의네트워크속도에따라다소지연될수있습니다. 35
Maxgauge for SQL Server User's Guide Volume I 1) Auto Refresh Multi Database System Monitoring Window 좌측하단 Auto Refresh 좌측체크박스클릭 [ 그림 2-27] Auto Refresh 화면 Auto Refresh(5) - 12:57:34 값은현재 Auto Refresh 주기가 5 초이며시간은 Refresh 가된현재시간입 니다. 예를들어 3 초주기로 Refresh 를설정해도네트워크의영향을받을경우 3 초를초과할수있습 니다. 2) Manual Refresh 메뉴에서 File > Refresh 를선택하거나단축키 F5 키를이용해 Refresh 할수있습니다. 2-7. 탑 - 다운 (Top-Down) 방식의추적 아래그림은 MaxGauge 에서구현되어있는탑-다운 (Top-Down) 접근방법으로세션과 SQL 로의추적과정을표현한화면입니다. MaxGauge 의가장큰장점은 Main 화면에서부터 'Active Session 리스트 ' > 'Session Detail', ' 최하위의 SQL 레벨 ' 로문제원인을추적할수있는 ' 탑-다운 (Top-Down) 접근방법 과이에필요한모든성능정보들을빠른시간내에수집하여문제의원인을추적하고규명할수있습니다. 36
[ 그림 2-28] Top-Down 방식 1) Session Detail 화면 Session Detail 은데이터베이스시스템의특정 Session 에대한상세정보를알려줄수있으며다음과같 은기능을갖습니다. [ 그림 2-29] Session Detail 화면 개별세션의접속후현재까지의성능지표의내용및활동량 현재시점과이전시점간의성능지표의내용및활동량 세션실행과관련된각종시스템정보 개별세션의접속후현재까지사용된 SQL 문의내용및관련성능지표 세션의활동량에대한지표및시스템전체지표와의비교 세션 Kill 기능 37
Maxgauge for SQL Server User's Guide Volume I 2) Session Detail 의기능개요 Session Detail 은데이터베이스시스템의특정 Session 에대한상세정보를알려줄수있으며다음과같 은기능을갖습니다. 중요 Activity 표시영역 Session 의 4 가지중요지표 (CPU, Logical Reads, Writes, Reads) 에대한추이를그래프로 표시합니다. 전체시스템사용량과도연동하여비교가능하므로, Session 이시스템전체자원의 어느정도를사용하는지쉽게파악할수있도록합니다. Session Control 영역 해당 Session 정보를 Refresh 또는 Kill 시킬수있습니다. Info 영역 Session 과관련된정보가출력됩니다. Session 의 Session ID 를비롯하여수행한 Login 이름, 접속된호스트이름, 프로그램이름등 Session 과관련된여러가지정보를보여줍니다. Delta 영역 Delta 영역은특정시점과특정시점사이에발생한성능지표를표시합니다. 즉, Refresh 와 Refresh 사이의값을시간값으로나눈값입니다. 현재수행중인 SQL 문장의성능정보도같이표시됩니다. SQL Used 영역 Session 연결후사용한 SQL 문장과수행시간등을확인할수있습니다. 3) 중요 Activity 표시영역 중요 Activity 표시영역에서는여러성능지표중가장많은영향을미치는 Logical Reads, CPU, Writes 의 추이그래프를각 Interval 별로표시합니다. [ 그림 2-30] Session Detail 중요 Activity 표시영역 38
4) Info 영역 Info 영역에서는 Session 정보가출력됩니다. [ 그림 2-31] Session Detail > Info 영역 5) Delta 영역 Delta 영역은특정시점과시점사이에발생한성능지표값을초당값으로표시해줍니다. 현재수행중 인 SQL Query 와정보가표시됩니다. 항목 설명 Name Sigma Delta Value/Sec MS SQL Server 성능지표이름성능지표누적값특정시점과특정시점사이에발생한성능지표시점간발생한값에대한초당평균값을표시. 변화값을발생한시간에대해나누어표시하기때문에실제변화량이있었던경우라도 Value/Sec 이 0 으로나타날수있습니다. 이런경우 Delta 항목에서는실제변화량을알수있습니다. Delta 영역의화면은다시다음과같은영역으로구분이가능합니다. - 시점간성능지표특정시점과시점간발생한성능지표의목록과활동량을 Interval 로나누어초당평균발생량을표시함으로써보다빠른시간내에성능분석을수행할수있습니다. Delta 값으로표시되는성능지표를이용하면현재수행중인 SQL 문의성능을파악할수있습니다. 39
Maxgauge for SQL Server User's Guide Volume I - 현재 ( 또는마지막 ) 수행중인 SQL 문현재수행중인수행된 SQL 문이표시되는부분입니다. SQL 문에대한실행계획을보려면오른쪽에위치한 Tune SQL 버튼을누릅니다. 그렇게되면새로운창이실행되며, SQL 의 PLAN 정보를보여줍니다. SQL 문이길어서가독성이떨어질경우 SQL 포매팅기능을이용할수있습니다. 윈도우밑의 Format SQL 버튼을클릭합니다. 또한, SSMS 버튼을클릭하면마이크로소프트에서제공하는클라이언트툴인 SQL Server Management Studio 가실행이됩니다. 6) SQL Used 영역 SQL Used 영역에는 Session 모니터링을시작한이후부터실행된모든 SQL 들을확인할수있습니다. [ 그림 2-32] Session Detail SQL Used 영역 7) Session Detail 화면구동방법 Session Detail 화면은다음과같은방식으로구동시킬수있습니다. MaxGauge 의 Main 화면에서 Active Session 목록에서보고자하는세션더블클릭 MaxGauge 의 Main 화면에서 Session Manager 를구동하여세션목록을출력후, 보고자하는세션더블클릭 MaxGauge 의 Main 화면에서 Lock Tree 메뉴를구동하여출력된세션목록에서보고자하는세션더블클릭모든세션정보를볼수있는화면에서보고자하는세션더블클릭 40
2-8. Main Menu Maxgauge for SQL Server Real Time Monitor 상단의 Tool 메뉴를클릭하면아래와같은 Drop Down Menu 를화인할수있습니다. [ 그림 2-33] Tool 선택화면 1) Counter/Wait 현재모니터링중인인스턴스의 Counter 값중변화량이존재하는 Counter 와 Wait 정보를보여줍니다. [ 그림 2-34] Counter/Wait 실행화면 41
Maxgauge for SQL Server User's Guide Volume I 2) Session Manager Session Manager 는데이터베이스시스템에접속되어있는모든세션에대한모니터링목적으로존재합니다. 현재일을하고있거나, 접속하여있는세션에대해서여러가지조건을주어사용자가원하는세션을찾을수있도록도와줍니다. Session Manager 초기화면에서는 Active Only 만조회를합니다. 조건을변경하여하단의 Refresh 버튼을클릭하면인스턴스에접속되어있는모든 Session 중조건에맞는모든 Session 을표시해줍니다. 접속되어있는세션이많을수록응답시간이늦어지므로가능하면조회조건을지정하여세션을조회해야합니다. [ 그림 2-35] Session Manager 실행화면 다음은검색조건에사용되는기준에대한설명입니다. 항목 설명 Session ID Session ID 를가지고검색합니다. Program Name Program Name 을가지고검색합니다. Login Name Login Name 을가지고검색합니다. Status 세션의상태값을가지고검색합니다.(Active Only, Total) Host Name 연결하고있는 Host Name 을가지고검색합니다. Database Name 연결되어있는 Database Name 을가지고검색합니다. 42
SQL Text 실행된쿼리문을가지고검색합니다. Session Manager 의결과창에나타난세션은마우스와키보드의방향키등을통해선택이가능합니다. 선택된세션은색상이반전된상태가됩니다. 선택된세션을강제로종료하는 Kill Session 의경우에는여러세션의선택을통한동시작업은허용되지않습니다. 그만큼접속된세션의강제종료는주의를기울여야하기때문입니다. Kill Session 작업은마지막으로선택한세션이대상이됩니다. 3) Lock Tree Lock Tree 화면은현재데이터베이스시스템에접속중인세션중 Lock Wait 을하고있는세션과 Lock 을 유발한세션의정보를표시해줍니다. [ 그림 2-36] Lock Tree 실행화면 Lock Tree 화면에서는선택한인스턴스의 Lock 소유및요청관계를계층도를통해표현함으로써, 세션 들간의 Lock 관계를빠른시간내에판별할수있습니다. 다음은 Lock Tree 화면항목에대한설명입니다. 항목 설명 Session ID Lock Owner 혹은 Lock Waiter 에해당하는 Session ID 를의미합니다. ECID 단일프로세스대신작업하고있는하위스레드를고유하게 식별하는데사용하는실행컨텍스트 ID 입니다. 43
Maxgauge for SQL Server User's Guide Volume I Resource Type 리소스유형을나타냅니다. 이값은 DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT 또는 ALLOCATION_UNIT 중하나일수있습니다. Mode 요청모드입니다. 허용된요청의경우허용모드이고대기중인 요청의경우에는요청중인모드가됩니다. Type 요청유형입니다. 값은 LOCK 입니다. Wait Time 요청이차단된경우현재대기한시간을 ms 로보여줍니다. Transaction ID 해당 Session 의 Transaction ID 입니다. Database 요청이수행되고있는데이터베이스이름입니다.. SQL Text Session 에서수행중인 SQL Text 문입니다. Object Name 현재대기가발생한 Object 의이름입니다. 4) SQL Used SQL Used 화면은쿼리문에사용된일부 SQL 문을이용하여조회할수있는기능을제공합니다. 또한, CPU 사용시간, 물리적읽기수, 논리적읽기수, 수행시간및수행횟수등과조합하여다양한조건으로검색이가능합니다. 대용량데이터베이스에서는조회시간이오래걸릴수있습니다. [ 그림 2-37] SQL Used 실행화면 44
5) Script Manager Script Manager 는 DBA 업무수행시자주사용하는 Script 를 MaxGauge 에등록하여사용할수있도록한기능입니다. MaxGauge 가지원하지못한기능을 User Script 에등록하여데이터베이스모니터링을통합화할수있습니다. User Script 영역에는 SQL 문을등록하실수있습니다. 일반적인 SQL 문이외에도시간과시간사이의값을추이그래프로표시할수있는기능도있습니다. MaxGauge 에서는 Script 등록시 Trend Chart 를선택하시면이런기능을사용할수있으며주의하실점은시간이반드시컬럼에있어야하며단 1 건만출력하며그리고결과는모두숫자로표시하는 SQL 을사용하셔야한다는점입니다. [ 그림 2-38] Script Manager 실행화면 45
Maxgauge for SQL Server User's Guide Volume I [ 그림 2-39] Script Manager 추가화면 다음은 Script Manager 추가화면항목에대한설명입니다 항목 설명 Type SQL : SQL 수행후해당결과를 Grid 로표시 Trend Chart : SQL 수행후해당결과를그래프로표시 Refresh 버튼으로갱신첫번째 row 만그래프에반영 Folder : Script 저장폴더생성 Name 유저스크립트이름지정 Script SQL 수행할 SQL 문 46
[ 그림 2-40] Script Manager 실행화면 6) Database Size Info 현재해당인스턴스에있는모든 Database 들의데이터, 로그사이즈및가상로그파일개수, 백업여부, 복구모델정보를표시해줍니다. [ 그림 2-41] Database Size Info 실행화면 47
Maxgauge for SQL Server User's Guide Volume I 다음은 Database Size Info 화면항목에대한설명입니다 항목 설명 DB ID 해당데이터베이스 ID 입니다. DB Name 해당데이터베이스이름입니다. Total Size(MB) 해당데이터베이스데이터파일전체크기입니다. 단위는 MB 입니다. Data Used(%) 해당데이터베이스데이터파일사용량에대한백분율입니다. Total Log Size(MB) 해당데이터베이스로그파일전체크기입니다. 단위는 MB 입니다. Log Used(%) 해당데이터베이스로그파일사용량에대한백분율입니다. Last Backuped 해당데이터베이스마지막백업시간입니다. 전체백업, 증분백업, 로그 백업등이포함됩니다. Log Count 해당데이터베이스로그파일에대한가상로그파일개수를표시합니다. 권장개수는 30 개미만입니다. Recovery Type 해당데이터베이스의복구모델을표시합니다. 다음은특정데이터베이스를선택하는경우보여지는화면항목에대한설명입니다. 항목 설명 Owner 해당데이터베이스소유자입니다. Total Size(MB) 해당데이터베이스전체크기입니다. 로그파일크기를포함한크기입니다. Creation Time 해당데이터베이스가생성된시간입니다. Status 해당데이터베이스에설정된데이터베이스옵션의값을쉼표로분리하여나열한것입니다. 부울값옵션은활성화된경우에만나열됩니다. 부울값이아닌옵션은 option_name=value 형식을사용하여해당값과함께나열됩니다. Compatibility Level 해당데이터베이스의호환성수준을나타내며 70(SQL Server 7), 80(SQL Server 2000), 90(SQL Server 2005), 100(SQL Server 2008) 등으로표시됩니다. 48
다음은특정데이터베이스를선택하는경우보여지는두번째화면항목에대한설명입니다. 항목 설명 File ID 해당데이터베이스에속한파일의 ID 입니다. File Name 해당데이터베이스에속한파일의논리적이름입니다. Full File Path 해당데이터베이스에속한파일의물리적인경로입니다. File Group 해당데이터베이스에속한파일이속한파일그룹이름입니다. File Size 해당데이터베이스에속한파일의크기입니다. Max Size 해당데이터베이스에속한파일의최대크기입니다. Growth 해당데이터베이스에속한파일의자동증가속성설정값입니다. Usage 해당데이터베이스에속한파일의용도입니다. 7) Memory Info 현재시점에전체메모리사용현황과 Buffer Pool 사용현황을바로확인할수있으며 Buffer Cache 에올라와있는오브젝트중메모리사용량이가장많은오브젝트및 Procedure Cache 사용현황을확인할수있습니다. [ 그림 2-42] Memory Info 실행화면 왼편아래는시스템전체메모리크기, SQL Server Buffer Pool 크기및 Tread Stack 의크기를보여주며, 왼쪽위는 Buffer Pool 에대한상세내용 (Buffer Cache 크기, Procedure Cache 크기, 기타, 여유공간및 할당되지않은크기 ) 을보여줍니다. 49
Maxgauge for SQL Server User's Guide Volume I 오른편의그리드에는 Procedure Cache 의상세정보및 Buffer Cache 의상세정보를보여줍니다. Procedure Cache 에대한상세정보는그리드에직접보여주지만, Buffer Cache 의상세정보는 Message Box 를띄워한번더확인을한후상세정보를보여줍니다. 그이유는 Buffer Cache 의크기가매우큰경우응답속도가많이느릴수있기때문입니다. 8) File IO Stat 인스턴스전체에서사용되고있는데이터파일및로그파일에대한 IO 현황을확인할수있는화면입니다. 각파일의현재크기, 최대파일사이즈, 자동증가설정을비롯하여파일에발생한읽기및쓰기수, 읽기및쓰기에소요된바이트수및대기에대한정보까지확인할수있습니다. 이를확인하여데이터파일및로그파일에대한재배치를고려해볼수있습니다. [ 그림 2-43] File IO Stat 실행화면 50
다음은 File IO Stat 화면항목에대한설명입니다. 항목 설명 DB Name 데이터베이스이름입니다. File Name 데이터베이스파일의논리이름입니다. Full File Path 해당파일의물리적인경로입니다. File Group 해당파일이속해있는파일그룹의이름입니다. Size 해당파일의크기입니다. Max Size 최대파일크기입니다. Growth 자동증가로설정되어져있는크기입니다. Usage 데이터파일로사용되고있는지로그파일로사용되고있는지를보여줍니다. Number Reads 해당파일에대해읽기가발생한수입니다. Number Writes 해당파일에대해쓰기가발생한수입니다. Bytes Reads 해당파일에읽기가발생한 byte 양입니다. Bytes Written 해당파일에쓰기가발생한 byte 양입니다. IO Stall Reads(ms) 해당파일을읽기중발생한대기시간입니다. 단위는 ms 입니다. IO Stall Write(ms) 해당파일을쓰기중발생한대기시간입니다. 단위는 ms 입니다. IO Stall(ms) 해당파일을읽기및쓰기중발생한대기시간입니다. 단위는 ms 입니다. 51
Maxgauge for SQL Server User's Guide Volume I 9) OS And Instance Info OS 및 Instance 에대한상세정보를제공합니다. OS 버전및서비스팩에대한정보뿐만아니라전체메 모리크기및프로세스수, SQL Server 의버전, 서비스팩및 Collation 등다양한정보를제공합니다. [ 그림 2-44] OS And Instance Info 실행화면 다음은 OS And Instance Info 화면항목에대한설명입니다. 항목 설명 Machine Name 해당인스턴스가실행중인서버이름입니다. Instance Name 해당인스턴스이름입니다. Edition 해당인스턴스의 Edition 입니다. Product Version 해당인스턴스제품의버전정보입니다.. Product Level 해당인스턴스의서비스팩정보입니다. RTM, SP1 등이표시됩니다. Collation 해당인스턴스의데이터정렬정보입니다. Language 해당인스턴스의언어버전입니다. Platform 해당인스턴스를실행하는컴퓨터의운영체제이름, 제조업체이름및칩 패밀리이름입니다. 52
File Description 운영체제정보입니다. File Version 해당인스턴스의실행파일버전입니다. Windows Version 해당인스턴스를실행하는컴퓨터의운영체제이름입니다. Processor Count 해당인스턴스를실행하는컴퓨터의프로세서의개수입니다. Processor Active Mask 해당인스턴스를실행하는컴퓨터의프로세서중 Microsoft Windows 에서 시작되어사용가능한프로세서를나타냅니다. Physical Memory 해당인스턴스를실행하는컴퓨터에설치된메모리크기 (MB) 입니다. Root Directory 해당인스턴스가설치된경로입니다. Process ID 해당인스턴스가실행되고있는 OS 에서의프로세스 ID 입니다. Cluster 해당인스턴스의클러스터링구성여부입니다. FullTextInstalled 해당인스턴스에전체텍스트검색설치여부입니다. Authentication 해당인스턴스에설정된인증방식입니다. Single User Mode 해당인스턴스의단일사용자모드여부입니다. Version Windows 및 SQL Server 버전정보입니다. 10) System Multi Monitor 현재시점에해당서버의 CPU 및 Memory 사용정보를알려줍니다. [ 그림 2-45] Multi System Monitor 53
Maxgauge for SQL Server User's Guide Volume I 11) Process List 현재시점에서 OS 상에서수행되고있는 Process 에대한정보를제공합니다. CPU 사용량이높은경우 어떤 Process 가 CPU 를가장많이사용하고있는지를손쉽게확인할수있습니다. [ 그림 2-46] Process List 실행화면 항목 설명 PID 해당프로세스의 ID 입니다. Process Name 해당프로세스의이름입니다. CPU Usage 해당프로세스가사용중인 CPU 사용량입니다. CPU Time 해당프로세스가점유한 CPU 시간입니다. User Name 해당프로세스를실행한사용자이름입니다. Virtual Memory(KB) 해당프로세스가사용중인가상메모리량입니다. Used memoty(kb) 해당프로세스가사용중인메모리량입니다. 54
12) Job List 인스턴스에수행된 Job 에대한결과를확인할수있는화면입니다. 기본적으로최근에수행되었던 Job 을기준으로실패한 Job 들이보여집니다. 상황에따라실패뿐만아니라 All, Fail, Success, Retry, Cancel, In Progress 6 가지상태에따른결과를확인할수있습니다.. [ 그림 2-47] Job List 실행화면 항목 설명 Instance ID Job 수행일련번호입니다. Job Name 해당 Job 의이름입니다. Step Name 해당 Job 의 Step 이름입니다. Step ID 해당 Job 의 Step ID 입니다. Status 해당 Job 의실행결과입니다. Run Date 해당 Job 이마지막으로수행된일자입니다. Run Time 해당 Job 이마지막으로수행된시간입니다. Run Duration 해당 Job 이마지막으로수행에소요된시간입니다. Is Enable 해당 Job 의사용여부입니다. Command 해당 Job 을수행에사용된명령어입니다. Next Run Date 해당 Job 이다음에수행될일자입니다. Next Run Time 해당 Job 이다음에수행될시간입니다. 55
Maxgauge for SQL Server User's Guide Volume I Message 해당 Job 의수행결과메세지입니다. Server 해당 Job 이수행된인스턴스의이름입니다. 13) Resource Monitor Resource(Scheduler, Memory, Disk) 에대한실시간정보를제공합니다. Scheduler 부하정도, 메모리사용 현황및디스크사용현황을실시간으로제공함으로써하드웨어활용도를높일수있도록도움을줍니다. [ 그림 2-48] Resource Monitor 실행화면 56
2-9. 기타기능 1) Alerts Setup Alert 메뉴는인스턴스단위로지정해놓은임계값에대한확인및추가작업을할수있습니다. 해당임계값은 Main Window 의 Stat 지표명의오른쪽버튼을클릭해서도추가, 변경, 삭제가능합니다. 임계값을설정해놓음으로써가시적으로인스턴스의상태를확인할수있습니다. 예를들어 Lock Waiting 값을설정해놓은후 Lock Waiting 세션개수가설정해놓은임계값을넘을경우, 노란색또는빨간색으로운영자에게알려줌으로보다효과적인데이터베이스운영이가능합니다. [ 그림 2-49] Alert 추가화면 기본적으로설정된임계값이없으면추가가되며설정된임계값이있을경우변경또는삭제가가능하 다. 항목 설명 Stat 설정하고자하는지표 Direction 등호를이용하여임계값조건을설정 Repeat 해당조건을만족하는횟수가몇번이상일때 Warning 또는 Critical 을나타낼 지설정 Warning 설정값을 Repeat 횟수이상으로수행시 Warning Message Critical 설정값을 Repeat 횟수이상으로수행시 Critical Message 57
Maxgauge for SQL Server User's Guide Volume I [ 그림 2-50] Alert 발생시모니터링화면 2) Popup Alert 설정한 Alert 이확인될경우팝업창을통해해당인스턴스와지표, 수치를나타내줍니다. 빨간색경고 표시는 Critical 이며노란색경고표시는 Warning 입니다.. [ 그림 2-51] Popup Alert 화면 3) Window 현재 MaxGauge 내에서팝업되어있는메뉴의 Window List 를관리하며신속하게이동할수있도록도 와줍니다. 58
4) Help 현재 MaxGauge 의버전을알려줍니다. 이는향후기술지원을받을때제공을하여도움이되는정보입 니다. [ 그림 2-52] 버전정보확인화면 59
Maxgauge for SQL Server User's Guide Volume I 3. Logging Controller 3-1. 개요 실시간성능관리의한계는실시간에문제진단과처방이이루어져야한다는점입니다. 그러나 DBA 가하루 24 시간항상단말기앞에서실시간감시및진단업무를수행할수없으며, 실시간감시중에성능문제가발생하더라도데이터베이스의재구동, Session 의강제종료, 또는프로그램의원천적인차단으로대처하는경우에는성능문제의근본적인원인과해결책을찾기위한근거데이터가소멸되므로사후에성능문제에대한상세분석이어렵게됩니다. 일반적으로데이터베이스운영중발생했던일들은사후에다시재현을하기가상당히어렵습니다. 때문에데이터베이스시스템에문제가발생했다거나배치작업의수행시간이이전에비해상당히지연되는경우그원인이무엇이었는지를사후에파악하기위한재현이불가능한경우가많습니다. MaxGauge for SQL Server 는 SQL Server 로부터수집된각종성능정보를안전한저장소에기록함으로써사후에성능문제를분석하는기능을지원하여, 로그분석을통해서실시간모니터링이라는시간적제약을보완할수있게됩니다. 특히과거시점의수행상황을실시간처럼재생하고, 과거의특정시점대로이동하여그당시수행중이던세션들과 SQL 을분석하는기능은그당시의문제의원인과해결책을수립하는데도움이됩니다. 또한수일에걸쳐서기록된데이터를이용한추이 (Trend) 분석기능을통해시스템의과부하추이분석및용량 (Capacity) 계획수립에도움이됩니다. DBA 는 Logging Controller 프로그램을이용하여로깅주기, 로깅데이터를선택하여클라이언트 PC 로전송한후 Performance Analyzer 프로그램을이용하여분석업무를수행할수있습니다. 클라이언트로전송된로그파일은 24 시간단위로자동화되어저장되므로정기적인백업을통해안전하게장기보관하는것이가능합니다. 시스템에서발생한성능저하및데이터베이스의장애현상을사후에확인하는것이가능합니다. 분석을원하는구간의데이터를 Log Controller 프로그램을이용하여클라이언트 PC 로전송한후로그파일을열어서분석하면성능지표의추이를확인할수있으므로시스템과부하시점을정확하고편리하게인지할수있으며, 그시점대로이동하면그당시에수행중이던세션과 SQL 을확인할수있습니다. MaxGauge for SQL Server Logging Controller 는클라이언트 PC 에서정보를취합하여성능분석프로그램인 Performance Analyzer 에서읽기가능한파일포맷으로저장작업을수행합니다. 그리고여러개의인스턴스를등록하여선별적으로로깅을할수있습니다. 60
[ 그림 2-53] Logging Controller 초기화면 항목 설명 Connection Name 로그를받을인스턴스명을지정한다. Log 로깅중인지를표시한다. Last Time 마지막로그를받은시각을표시한다 Status 로깅상태 (Logging, Idle) 를표시한다. Activity(min) 세션의활동내역을로깅할주기를표시한다.(Default 1 분 ) Session(sec) 세션의활동내역을로깅할주기를표시한다.(Default 5 초 ) Top SQL (min) Top SQL 을저장할주기를표시한다.. Top SQL Count 저장할 Top SQL 의개수를표시한다. Log Directory 로그파일저장위치를표시한다 Session Lists 세션리스트포함여부를표시한다. SQL Text 수행된쿼리문저장여부를표시한다. SQL Plan 수행된쿼리문의실행계획저장여부를표시한다. 61
Maxgauge for SQL Server User's Guide Volume I 3-2. 환경설정 1) 접속정보등록 시작 > 프로그램 > MaxGauge > Logging Controller 기동후아이콘창에서오른쪽마우스클릭 [ 그림 2-54] 접속정보등록화면 Create Connection 을클릭하면필요한정보를등록하는팝업창이뜹니다. [ 그림 2-55] 접속정보등록팝업화면 SQL Server Connection 영역의 Server Name 부분에모니터링할서버의 IP\ 인스턴스명 을입력하거나 좌측의화살표버튼을클릭하면연결가능한인스턴스목록이나타납니다. 로깅을지정할인스턴스를 62
지정한후인증모드에따라적절한인증을입력합니다. Windows 인증인경우 Windows Authentication 을선택하고 SQL Server Authentication 을사용할경우유효한 User Name 과 Password 를입력합니다. Process Monitoring 영역에서 Sysmon 을사용하는경우는사용자이름과비밀번호가필요하지않습니다. Sysmon 을사용하지못하는경우 WMI 방식으로운영이가능하지만, 이방식은 Query 속도가늦어권장하지않습니다. Logging Type 영역에서 Repository 는로깅데이터를 DB 로생성하여 PepositoryDB 서버에저장하겠다는의미이고 File 은파일로저장하겠다는의미이다. 마지막으로데이터로깅시간설정및로깅디렉토리를지정합니다. 기본적으로 Active Session 은분에 1 회, Top SQL Logging 은 6 시간에 1 회, Top SQL 개수는 60 개이며 SQL Text 를포함하여로깅하도록설정됩니다. 다음은데이터로깅항목에대한설명입니다. 항목 설명 Activity Logging (min.) Active Session Logging 주기 ( 분단위 ) Session Logging (sec.) Session 정보수집주기 ( 초단위 ) Top SQL Logging (min.) Top SQL Logging 주기 ( 분단위 ) Count 저장할 Top SQL 개수설정 Session Lists Active Session 목록포함여부 SQL Text SQL Text 포함여부 SQL Plan SQL 문의실행계획포함여부 Use DashBoard DashBoard 사용여부 2) Data Logging Logging 을시작하기위해서는인스턴스아이콘을선택한후마우스오른쪽버튼을눌러 [Logging On] 을선택하면됩니다. Logging 중일때는 [Logging Off] 만활성화됩니다. 지정한시간간격마다 Logging 이수행이되며, Logging 중일때는아이콘색이변경됩니다. 해당인스턴스가 Logging 중 해당인스턴스정보를 Logging 중이지않음 63
Maxgauge for SQL Server User's Guide Volume I 다음은데이터로깅에대한기본설정주기입니다. 항목 주기 Active Session 5 초 SQL ServerStat 정보 1 분 OS Stat 정보 1 분 Wait 정보 1 분 Session Wait 정보 1 분 Memory 사용정보 1 분 Process List 1 분 Top SQL 6 시간 (360 분 ) File IO Stat 정보 1 회 OS 및인스턴스정보 1 회 Database 구성정보 1 회 Lock Tree 1 분 Alert 정보 1 분 Logging 의상태는 [Logging Log] 탭을통해확인할수있습니다. 64
3) 접속정보수정 LoggingConnection 정보를수정하기위해서는인스턴스아이콘을선택한후마우스오른쪽버튼을눌러 [Edit] 를선택하면됩니다. 현재 [Logging On] 상태라면 [Logging Off] 를하셔야 Edit 버튼이활성화됩니다. [ 그림 2-56] 접속정보수정팝업화면 4) 접속정보삭제 LoggingConnection 정보를삭제하기위해서는인스턴스아이콘을선택한후마우스오른쪽버튼을눌러 [Delete] 를선택하면됩니다. 현재 [Logging On] 상태라면 [Logging Off] 를하셔야 Delete 버튼이활성화됩니다. [ 그림 2-57] 접속정보아이콘속성화면 65
Maxgauge for SQL Server User's Guide Volume I 5) 로그유지계획 [File] - [Log Management] [ 그림 2-58] Log Management 1 Backup log after [n] Days (repository only) : 로그생성기준 n 일후 Backup 후원본로그제거 ( 참고 : File 모드에서는사용되지않음 / 압축백업미지원에디션은일반백업사용 ) 2 Delete log after [n] Days - File 모드 : 로그생성기준 n 일후원본로그삭제 - Repository 모드 : 로그백업본생성기준 n 일후백업파일삭제 66
6) DashBoard 정보 [File] - [Alert Server Connection Info] [ 그림 2-59] Alert Server Connection Info Sample 에서원하는 DB 샘플을누르게되면 Connection String 에샘플문장이나오게됩니다. 샘플문장 에 <ID>, <PASSWORD>, <SERVER> 정보를입력해주고 [Test Connection] 을누르게되면다음과같이 EVENT_HISTORY 테이블생성여부를물어봅니다.( 주의사항으로 DB 는생성되어있는 DB 여야합니다.) [ 그림 2-60] EVENT_HISTORY 테이블생성확인 67
Maxgauge for SQL Server User's Guide Volume I 4. Maxgauge for SQL Server Performance Analyzer 4-1. Performance Analyzer 개요 Performance Analyzer 는 Logging Controller 에의해로깅된데이터를이용하여인스턴스에대한성능지표, Active 세션, SQL 문장및 CPU 지표를실시간과동일하게재생하여인스턴스에대한분석작업을수행하는역할을합니다. Performance Analyzer 는하루단위의인스턴스의수행상황을나타냅니다. 모든지표들은 24 시간추이그래프로표시되므로 Peak 시점을쉽게인식할수있으며분석을원하는시점을마우스클릭만으로쉽게찾아갈수있습니다. 성능지표, Session 정보, SQL Text 등을유기적으로연계함으로써 Peak 시점및장애시점에대한정확한분석이가능합니다. Performance Analyzer 는일반적으로다음과같은경우많이활용됩니다. - 시스템전반에걸친문제에대한원인분석 - 특정일자의 Peak Time 분석, Session, SQL 추적 - 시스템자원사용유형분석및추이분석 - 인스턴스의 Hang 원인분석 - 특정시점의성능저하원인분석 - 일자간성능지표의상호비교 해당로그파일정보 주요지표영역 세부지표영역 해당시간의 Active Session 정보 [ 그림 2-61] PA 화면 68
다음은 Performance Analyzer 전체항목에대한설명입니다. 항목 설명 Current Time TextBox 현재분석시점이어느시점 ( 시간 ) 에로깅된정보인지를나타냅니다. Active Session 정보선택시점의 Active Session 들을확인할수있습니다. 주요지표표시영역 세부지표표시영역 주요성능지표와대기지표의그래프가표시되는영역입니다. 상세지표의 Stat 와 Wait 항목과다른점은상세지표의그래프는사용자가다른지표로변경이가능하나주요지표표시부분의그래프는사용자가변경할수없습니다상세정보표시창은성능지표및대기지표를비롯한여러가지항목으로나누어표시되며각각의자세한설명은아래의해당항목을참고하시기바랍니다. 다음은 Performance Analyzer 개별상세지표항목에대한설명입니다. 항목 설명 Stat Counter Wait Session Wait Database Size Info Memory Info Instance Group Lock Tree All Day Lock Top SQL CPU 를포함한데이터베이스모든 Stat 내역에대해추이그래프형식으로표시합니다. 한번에한화면에서 4 개의추이그래프를비교분석할수있습니다. 인스턴스에서발생한모든 Counter Value 를한화면에서볼수있습니다. 대기가발생한정보에대해대기유형별확인이가능합니다 Session 레벨에서발생한대기에대해대기유형별확인이가능합니다각각의 Database 에대해데이터및로그사이즈, 최종백업시간, 가상로그파일개수및복구모델을확인할수있습니다 System 전반적인 Memory 현황및 Buffer Pool 의 Memory 상태를시점별로확인이가능합니다. 자식 Instance 가있는 Counter 에대해해당 Counter 및 Instance 정보를한눈에확인할수있습니다. 사용자가선택한특정시점별로 Lock 이발생한현황을트리구조로분석할수있습니다. 로깅된모든구간에발생된모든 Lock 현황을트리구조형태로보여줍니다인스턴스가시작한이후로수행되었던쿼리들중리소스사용률, 수행시간, 수행횟수등의기준으로상위쿼리를확인할수있습니다. OS And Instace Info OS 및인스턴스에대한상세정보를보여줍니다. Process List 특정시점에수행된프로세스의상세정보를보여줍니다. Configuration 인스턴스의구성정보를보여줍니다. Alert List 인스턴스에발생했던에러로그를보여줍니다. File IO Stat 인스턴스에존재하는모든데이터및로그파일의 IO 상태를 보여줍니다. 69
Maxgauge for SQL Server User's Guide Volume I 1) Logging 확인 Logging Controller 프로그램에의해클라이언트 PC 에저장되는로그파일은 MaxGauge 클라이언트프로그램설치디렉토리의하위디렉토리 ( 기본디렉토리는 C:\Program Files\MaxGauge for SQL Server) 인 LOG 디렉토리에위치합니다. MaxGauge 로그는다른디렉토리나다른 PC 로복사와이동이자유롭습니다. 로깅된파일만복사를하면 Performance Analyzer 가설치된어느 PC 에서나분석이가능합니다. [ 그림 2-62] Main Menu Change Service 4-2. Active Session 영역 화면에그려진성능지표들의추이를보고수집기간사이의자원의사용유형과인스턴스사용의 Peak 시점을알수있으며세션및프로세스창에서는각지표의 Column Header 를클릭하여값을정렬할수있으므로어느세션때문에많은자원을사용했는지를쉽게파악할수있습니다. 일반적으로과다한자원의사용은문제의소지가있는것이므로그세션의 SQL 문에대한실행계획을검사하여사후에적절한조치를취할수있습니다. 해당 Session 을더블클릭하면 Session 에대한자세한정보를얻을수있는 Session Details 창으로연결되며, Session 에서수행했던 SQL 에대하여확인이가능하다 [ 그림 2-63] Active Session 영역 70
항목 설명 Elapsed Time(s) Session ID KPID ECID Status Database Name Command Type Blocking Session ID Last Wait Type Wait Type 수행시간 SQL Server Session ID Microsoft Windows Thread ID 단일프로세스대신작업하고있는하위스레드를고유하게식별하는데사용하는실행컨텍스트 ID 실행중및중지중과같은가능한값은아래와같습니다. dormant = SQL Server 에서세션을다시설정하고있습니다. running = 세션에서일괄처리를하나이상실행하고있습니다. MARS(Multiple Active Result Sets) 를설정하면세션에서여러개의일괄처리를실행할수있습니다. background = 세션에서교착상태감지와같은백그라운드작업을실행하고있습니다. rollback = 세션에서트랜잭션롤백을진행하고있습니다. pending = 세션이작업스레드를사용할수있을때까지기다리고있습니다. runnable = 세션의작업은시간퀀텀을얻기위해기다리는동안스케줄러의실행가능한큐에있습니다. spinloop = 세션의작업이 spinlock 을사용할수있을때까지기다리고있습니다. suspended = 세션이 IO 와같은이벤트가완료되기를기다리고있습니다. 프로세스가현재사용하고있는데이터베이스의이름현재실행중인명령블락킹을유발하고있는 Session ID 마지막또는현재대기유형의이름을나타내는문자열대기유형 Wait Time(ms) 현재대기시간 ( 밀리초 ) Wait Resource CPU Time Logical Reads Physical Reads SQL Text CPU Time(Sigma) Logical Reads(Sigma) Physical Reads(Sigma) Host Name Host Process Program Name Login Name Login Time 잠금리소스를텍스트로표시프로세스의 CPU 사용시간메모리에서읽어온페이지수프로세스에대한디스크읽기 / 쓰기수수행중인 SQL 문프로세스의누적 CPU 시간프로세스의메모리누적읽기수프로세스의디스크누적읽기수세션에연결된 WorkStation 이름세션에연결된 WorkStation Process ID 응용프로그램이름로그인이름클라이언트가서버에로그인한시간 71
Maxgauge for SQL Server User's Guide Volume I 4-3. 주요지표표시영역 주요지표표시영역은 O/S CPU, Active Session 및 MS SQL Server 에서제공하는중요성능지표를표시 합니다. [ 그림 2-64] 주요지표표시영역 다음은주요지표표시영역항목에대한설명입니다. 항목 설명 CPU 해당시점 CPU 사용률을표시합니다. Active Sessions 해당시점수행중인 Session 수를표시합니다 Batch Requests/ssec 해당시점초당쿼리수행횟수를표시합니다. Page Lookups/ssec 해당시점초당읽기수를표시합니다. Physical IO 해당시점발생한 Physical IO 수를표시합니다. Lock Waiting 해당시점 Lock 으로인해대기중인세션의개수를나타냅니다 Logon Current 해당시점로그온한유저수를표시합니다. Total Wait Time 해당시점에발생한전체대기시간을표시합니다. SQL Compilations/sec 해당시점의쿼리의 Compilation 수를표시합니다. 72
4-4. 개별상세지표영역 상세지표표시영역은여러가지탭으로나누어져있으며각각의탭은다음과같은내용을담고있습니 다. 항목 설명 Stat Counter Wait Session Wait Database Database Size Info Memory Info Instance Group Lock Tree All Day Lock Top SQL CPU 를포함한데이터베이스모든 Stat 내역에대해추이그래프형식으로표시합니다. 한번에한화면에서 4 개의추이그래프를비교분석할수있습니다. 인스턴스에서발생한모든 Counter Value 를한화면에서볼수있습니다. 대기가발생한정보에대해대기유형별확인이가능합니다 Session 레벨에서발생한대기에대해대기유형별확인이가능합니다각각의 Database 에대해발생한트랜잭션의수와데이터파일의크기, 로그파일의사용률을알수있습니다. 각각의 Database 에대해데이터및로그사이즈, 최종백업시간, 가상로그파일개수및복구모델을확인할수있습니다 System 전반적인 Memory 현황및 Buffer Pool 의 Memory 상태를시점별로확인이가능합니다. 자식 Instance 가있는 Counter 에대해해당 Counter 및 Instance 정보를한눈에확인할수있습니다. 사용자가선택한특정시점별로 Lock 이발생한현황을트리구조로분석할수있습니다. 로깅된모든구간에발생된모든 Lock 현황을트리구조형태로보여줍니다인스턴스가시작한이후로수행되었던쿼리들중리소스사용률, 수행시간, 수행횟수등의기준으로상위쿼리를확인할수있습니다. OS And Instace Info OS 및인스턴스에대한상세정보를보여줍니다. Process List 특정시점에수행된프로세스의상세정보를보여줍니다. Configuration 인스턴스의구성정보를보여줍니다. Alert List 인스턴스에발생했던에러로그를보여줍니다. File IO Stat Alarm 인스턴스에존재하는모든데이터및로그파일의 IO 상태를보여줍니다. RTM 에서설정한인스턴스의 Alert 수치를초과했을경우 ( 미만시 ) 나타나는경고를보여줍니다. 73
Maxgauge for SQL Server User's Guide Volume I 1) Stat 탭 Stat 탭은구간사이에발생한성능지표의초당변화치를이용하여추이그래프를나타내며 Active Session 에대한목록을나타냅니다. 또한 lock 대기상황이발생한경우 lock 의 holder Session 는 Inactive 이더라도 Session 목록에나타나게됩니다. Stat 화면을통해인스턴스의 Peak 시점이언제인지쉽게인지하는것이가능하며, 해당시점으로의이동은더블클릭을통하여가능합니다. Session 목록에나타난 Active Session 들의자원사용량을통해 Peak 시점을유발한 Session 들을쉽게찾는것이가능합니다. [ 그림 2-65] Stat 탭 화면에표시된 4 개의지표는사용자가원하는지표로변경할수있습니다. 변경하는방법은지표의오 른쪽에위치한성능지표이름을더블클릭한후바꾸고자하는지표명을선택하고 OK 버튼을누르면됩 니다. 74
2) Counter 탭 Counter 탭은수집기간중구간사이에발생한통계지표의이름과그양을표시해주는영역입니다. 다음은 Counter 탭항목에대한설명입니다. 항목 설명 Name Counter 이름입니다. Current 해당 Counter 의현재수집된값입니다. Delta 해당 Counter 의이전값과의차이즉, 변화량입니다. Delta/s 해당 Counter 의초당변화량입니다. [ 그림 2-66] Counter 탭 75
Maxgauge for SQL Server User's Guide Volume I 3) Wait 탭 Wait 탭은해당시간에발생한대기에대한정보를보여줍니다. [ 그림 2-67] Wait 탭 다음은 Wait 탭항목에대한설명입니다. 항목 설명 Name Wait Type 의이름입니다. Wakting Tasks Count 해당대기유형의대기수입니다. 이카운터는각대기가시작될때 증가합니다. Delta Waiting Tasks Count 의이전값과의차이즉, 변화량입니다. Delta/s Waiting Tasks Count 의초당변화량입니다. Wait Time(ms) 해당대기유형의총대기시간 ( 밀리초 ) 입니다. 이시간은 signal_wait_time_ms 를포함합니다. Delta Wait Time 의이전값과의차이즉, 변화량입니다. Delta/s Wait Time 의초당변화량입니다. Signal Wait Time(ms) 대기스레드가신호를받은시간과실행을시작한시간간의차이입니다. Delta Signal Wait Time 의이전값과의차이즉, 변화량입니다. Delta/s Signal Wait Time 의초당변화량입니다. 76
4) Session Wait 탭 Session Wait 탭은 Session Level 에서의대기정보를대기유형별로보여줍니다. [ 그림 2-68] Session Wait 탭 특정시점을선택하였을때그시점에발생했던대기중 Session 수준에서의대기에대힌상세한정보를 확인할수있습니다. 5) Database 탭 Database 탭은각각의 Database 에대한 Transaction 및데이터파일, 로그파일의정보를보여줍니다. [ 그림 2-69] Database 탭 특정 DB 탭을선택하였을때그 DB 에대한상세한정보를확인할수있습니다. 77
Maxgauge for SQL Server User's Guide Volume I 6) Database Size Info 탭 Database Size Info 탭은각데이터베이스별데이터및로그사이즈, 가상로그파일개수, 최종백업시간, 복구모델정보를보여줍니다. 다음은 Database Size Info 화면항목에대한설명입니다 항목 설명 DB ID 해당데이터베이스 ID 입니다. DB Name 해당데이터베이스이름입니다. Total Size(MB) 해당데이터베이스데이터파일전체크기입니다. 단위는 MB 입니다. Data Used(%) 해당데이터베이스데이터파일사용량에대한백분율입니다. Total Log Size(MB) 해당데이터베이스로그파일전체크기입니다. 단위는 MB 입니다. Log Used(%) 해당데이터베이스로그파일사용량에대한백분율입니다. Last Backuped 해당데이터베이스마지막백업시간입니다. 전체백업, 증분백업, 로그 백업등이포함됩니다. Log Count 해당데이터베이스로그파일에대한가상로그파일개수를표시합니다. 권장개수는 30 개미만입니다. Recovery Type 해당데이터베이스의복구모델을표시합니다. 다음은특정데이터베이스를선택하는경우보여지는화면항목에대한설명입니다. 항목 설명 Owner 해당데이터베이스소유자입니다. Total Size(MB) 해당데이터베이스전체크기입니다. 로그파일크기를포함한크기입니다. Creation Time 해당데이터베이스가생성된시간입니다. Status 해당데이터베이스에설정된데이터베이스옵션의값을쉼표로분리하여나열한것입니다. 부울값옵션은활성화된경우에만나열됩니다. 부울값이아닌옵션은 option_name=value 형식을사용하여해당값과함께나열됩니다. Compatibility Level 해당데이터베이스의호환성수준을나타내며 70(SQL Server 7), 80(SQL Server 2000), 90(SQL Server 2005), 100(SQL Server 2008) 등으로표시됩니다. 78
다음은특정데이터베이스를선택하는경우보여지는두번째화면항목에대한설명입니다. 항목 설명 File ID 해당데이터베이스에속한파일의 ID 입니다. File Name 해당데이터베이스에속한파일의논리적이름입니다. Full File Path 해당데이터베이스에속한파일의물리적인경로입니다. File Group 해당데이터베이스에속한파일이속한파일그룹이름입니다. File Size 해당데이터베이스에속한파일의크기입니다. Max Size 해당데이터베이스에속한파일의최대크기입니다. Growth 해당데이터베이스에속한파일의자동증가속성설정값입니다. Usage 해당데이터베이스에속한파일의용도입니다. [ 그림 2-70] Database Size Info 탭 79
Maxgauge for SQL Server User's Guide Volume I 7) Memory Info 탭 Memory Info 탭은해당시점에전체메모리사용현황과 Buffer Pool 사용현황을바로확인할수있으며 Buffer Cache 에올라와있는오브젝트중메모리사용량이가장많은오브젝트및 Procedure Cache 사용현황을확인할수있습니다. 왼편아래는시스템전체메모리크기, SQL Server Buffer Pool 크기및 Tread Stack 의크기를보여주며, 왼쪽위는 Buffer Pool 에대한상세내용 (Buffer Cache 크기, Procedure Cache 크기, 기타, 여유공간및할당되지않은크기 ) 을보여줍니다. 오른편의그리드에는 Procedure Cache 의상세정보및 Buffer Cache 의상세정보를보여줍니다. [ 그림 2-71] Memory Info 탭 8) Instance Group 탭 Instance Group 화면은 Instance 가존재하는 Counter 에대해모든 Instance 에대한정보를보여줍니다. [ 그림 2-72] Instance Group 탭 80
9) Lock Tree 탭 Lock Tree 탭은 Lock 발생시점에대하여 Lock Holder Session 와대기 Session 와의관계를트리형태로표시하며, 락요청모드, Holder/Waiter SQL Text, 대기시간등의정보를나타낼뿐만아니라세션들간의 Lock 관계를빠른시간내에판별할수있습니다. 이화면은실시간 Lock Tree 화면과동일하게구성되어있습니다. 다음은 Lock Tree 화면항목에대한설명입니다. 항목 설명 Session ID Lock Owner 혹은 Lock Waiter 에해당하는 Session ID 를의미합니다. ECID 단일프로세스대신작업하고있는하위스레드를고유하게 식별하는데사용하는실행컨텍스트 ID 입니다. Resource Type 리소스유형을나타냅니다. 이값은 DATABASE, FILE, OBJECT, PAGE, KEY, EXTENT, RID, APPLICATION, METADATA, HOBT 또는 ALLOCATION_UNIT 중하나일수있습니다. Mode 요청모드입니다. 허용된요청의경우허용모드이고대기 중인요청의경우에는요청중인모드가됩니다. Type 요청유형입니다. 값은 LOCK 입니다. Wait Time 요청이차단된경우현재대기한시간을 ms 로보여줍니다. Transaction ID(Txn ID) 해당 Session 의 Transaction ID 입니다. Database 요청이수행되고있는데이터베이스이름입니다. SQL Text Session 에서수행중인 SQL Text 문입니다. Object Name 현재대기가발생한 Object 의이름입니다. [ 그림 2-73] Lock Tree 탭 81
Maxgauge for SQL Server User's Guide Volume I 10) All Day Lock 탭 All Day Lock 화면은전체로깅중발생한모든 Lock 에대한발생시간과 Lock Holder 및 Waiter, Lock Mode 를 Tree 형태로표시합니다. 화면항목은 Lock Tree 화면과동일합니다. [ 그림 2-74] All Day Lock 탭 11) Top SQL 탭 Top SQL 화면은지정한시간 ( 기본 360 분 ) 동안가장많이실행된 SQL 문을지정한카운트 ( 기본상위 60 개 ) 만큼기록해두는정보입니다.. [ 그림 2-75] Top SQL 탭 각 SQL 문을더블클릭하면실행계획등자세히볼수있습니다. 82
12) OS And Instance Info 탭 OS 및 Instance 에대한상세정보를제공합니다. OS 버전및서비스팩에대한정보뿐만아니라전체메모리크기및프로세스수, SQL Server 의버전, 서비스팩및 Collation 등다양한정보를제공합니다. 다음은 OS And Instance Info 화면항목에대한설명입니다. 항목 설명 Machine Name 해당인스턴스가실행중인서버이름입니다. Instance Name 해당인스턴스이름입니다. Edition 해당인스턴스의 Edition 입니다. Product Version 해당인스턴스제품의버전정보입니다.. Product Level 해당인스턴스의서비스팩정보입니다. RTM, SP1 등이표시됩니다. Collation 해당인스턴스의데이터정렬정보입니다. Language 해당인스턴스의언어버전입니다. Platform 해당인스턴스를실행하는컴퓨터의운영체제이름, 제조업체이름및칩 패밀리이름입니다. File Description 운영체제정보입니다. File Version 해당인스턴스의실행파일버전입니다. Windows Version 해당인스턴스를실행하는컴퓨터의운영체제이름입니다. Processor Count 해당인스턴스를실행하는컴퓨터의프로세서의개수입니다. Processor Active Mask 해당인스턴스를실행하는컴퓨터의프로세서중 Microsoft Windows 에서 시작되어사용가능한프로세서를나타냅니다. Physical Memory 해당인스턴스를실행하는컴퓨터에설치된메모리크기 (MB) 입니다. Root Directory 해당인스턴스가설치된경로입니다. Process ID 해당인스턴스가실행되고있는 OS 에서의프로세스 ID 입니다. Cluster 해당인스턴스의클러스터링구성여부입니다. FullTextInstalled 해당인스턴스에전체텍스트검색설치여부입니다. Authentication 해당인스턴스에설정된인증방식입니다. Single User Mode 해당인스턴스의단일사용자모드여부입니다. 83
Maxgauge for SQL Server User's Guide Volume I Version Windows 및 SQL Server 버전정보입니다. [ 그림 2-76] OS And Instance Info 탭 84
13) Process List 탭해당시점에서 OS 상에서수행되었던 Process 에대한정보를제공합니다. CPU 사용량이높은경우어떤 Process 가 CPU 를가장많이사용하고있는지를손쉽게확인할수있습니다. 다음은 Process List 화면항목에대한설명입니다. 항목 설명 PID 해당프로세스의 ID 입니다. Process Name 해당프로세스의이름입니다. CPU Usage 해당프로세스가사용중인 CPU 사용량입니다. CPU Time 해당프로세스가점유한 CPU 시간입니다. User Name 해당프로세스를실행한사용자이름입니다. Virtual Memory(KB) 해당프로세스가사용중인가상메모리량입니다. Used memoty(kb) 해당프로세스가사용중인메모리량입니다. [ 그림 2-77] Process List 탭 85
Maxgauge for SQL Server User's Guide Volume I 14) Configuration 탭 Configuration 정보는설정된로깅주기에맞추어서로깅을합니다. 따라서 Configuration 이변경이되 었다면전후비교를통해변경된내역을찾을수있습니다. [ 그림 2-78] Configuration 탭 15) Alert List 탭 SQL Server 로그중에서경고메시지발생시발생시간과경고메시지가기록되어손쉽게확인할수있 습니다. 86
14) File IO Stat 탭인스턴스전체에서사용되고있는데이터파일및로그파일에대한 IO 현황을확인할수있는화면입니다. 각파일의현재크기, 최대파일사이즈, 자동증가설정을비롯하여파일에발생한읽기및쓰기수, 읽기및쓰기에소요된바이트수및대기에대한정보까지확인할수있습니다. 이를확인하여데이터파일및로그파일에대한재배치를고려해볼수있습니다. 항목 설명 DB Name 데이터베이스이름입니다. File Name 데이터베이스파일의논리이름입니다. Full File Path 해당파일의물리적인경로입니다. File Group 해당파일이속해있는파일그룹의이름입니다. Size 해당파일의크기입니다. Max Size 최대파일크기입니다. Growth 자동증가로설정되어져있는크기입니다. Usage 데이터파일인지로그파일인지를보여줍니다. Number Reads 해당파일에대해읽기가발생한수입니다. Number Writes 해당파일에대해쓰기가발생한수입니다. Bytes Reads 해당파일에읽기가발생한 byte 양입니다. Bytes Written 해당파일에쓰기가발생한 byte 양입니다. IO Stall Reads(ms) 해당파일을읽기중발생한대기시간입니다. 단위는 ms 입니다. IO Stall Write(ms) 해당파일을쓰기중발생한대기시간입니다. 단위는 ms 입니다. IO Stall(ms) IO Stall Read + IO Stall Write 입니다. 단위는 ms 입니다. 87
Maxgauge for SQL Server User's Guide Volume I [ 그림 2-79] File IOStat 탭 15) Alarm 탭 RTM 에서설정한 Alert 에대한결과를확인할수있는화면입니다. 각시점에해당 Alert 이발생한경우발생한 Stat 명과 Warning 인지 Critical 인지확인할수있고발생한수치까지도알수있습니다. 이를확인하여자주 Alert 이발생하는 Stat 에대한조치를고려해볼수있습니다. 항목 설명 LOGTIME Alert 이발생한시간입니다. Alarm Level Warning 과 Critical 중하나를나타냅니다 Stat Name Alert 이발생한 Stat 명입니다.. Value Alert 이발생했을때의수치를나타냅니다. [ 그림 2-80] Alarm 탭 88
[ 그림 2-81] Alert 발생시확인되는그래프화면 4-5. Trend Day Analysis Trend Day Analysis 는하루의로그가아닌여러날의로그를한번에지표별로추이를확인할수있는기능입니다. 전월대비내지는한달동안의서버의사용률및성능추이를한화면에서확인가능합니다. Stat 별로 Average, Total 값을하루단위로계산하여그래프로확인가능합니다. File Trend Day Analysis 로그날짜옆의체크박스를체크 OK 버튼을통해실행합니다. [ 그림 2-82] Trend Day Analysis 수행을위한로그파일선택화면 89
Maxgauge for SQL Server User's Guide Volume I [ 그림 2-83] Trend Day Analysis 수행화면 90
4-6. Print Report 인스턴스별레포트를제공합니다. 레포트에는 HW 와 OS 및 SQL Server 명세, 인스턴스환경설정, 주요 지표에대한지난달과이번달의성능카운터비교, 데이터베이스정보를포함하고있습니다. 인스턴스를선택하고 OK 버튼을선택하면 HTML 페이지로레포트가작성되어확인할수있습니다. [ 그림 2-84] File > Print Report 수행시인스턴스선택화면 91
Maxgauge for SQL Server User's Guide Volume I 4-7. 기타 1) Help - About Performance Analyzer 의버전정보를확인합니다. [ 그림 2-85] About 화면 2) Exit Performance Analyzer 를종료합니다. [ 그림 2-86] Exit 92
APPENDIX 에서는 Maxgauge for SQL Server 에서활용되는주요지표에대해설명합니다. 본장에서설 명되지않은지표및용어에대해서는 SQL Server 매뉴얼을참조하시길바랍니다. Maxgauge for SQL Server 주요지표해설 93
Maxgauge for SQL Server User's Guide Volume I APPENDIX Maxgauge for SQL Server 주요지표해설 이지표는 Maxgauge for SQL Server RealTime Monitor 의 Main 화면의그래프를구성하는지표들입니 다. 이지표는보통 5 초마다한번씩갱신되며인스턴스별로수집됩니다. Active Sessions Sleeping 상태가아닌 User Session 의수입니다. Locks Waiting Lock 에의해대기중인 Session 의수입니다. CPU Hardware : Avg. Disk Queue Length % Processor Time 은프로세서가작업중인스레드를실행하는데걸리는시간의백분율입니다. 이시간은프로세서가유휴스레드를실행하는데걸리는시간의백분율을측정한다음 100% 에서이값을빼서계산합니다. 각프로세서에는스레드가실행되지않아도사이클을소비하는유휴스레드가있습니다. 이카운터는프로세서동작의주요표시기이며샘플간격중에관찰되는사용시간의평균백분율을표시합니다. 프로세서가유휴상태인지에대한계정계산은시스템시계의내부샘플간격 (10ms) 으로수행해야합니다. 그러므로오늘날의빠른프로세스에서 % Processor Time 은프로세서가시스템시계샘플간격사이의스레드를서비스하는데너무많은시간을소비할수있으므로프로세서이용을과소평가할수있습니다. 타이머응용프로그램기반의작업부하는샘플이실행된직후에타이머가신호를받기때문에더부정확하게측정될수있는응용프로그램의한예입니다. Avg. Disk Queue Length 은샘플간격동안선택된디스크에대해큐에있는읽기및쓰기요청의평균수입니다. Physical IO/sec 디스크 IO 와관련된통계입니다. Buffer Manager:Page lookups/sec SQL Statistics : Batch Requests/sec Wait Statistics : Page IO latch waits 평균대기시간 ( 밀리초 ) Wait Statistics : Page Latch waits 평균대기시간 ( 밀리초 ) 버퍼풀에서페이지를찾기위한요청수입니다. 서버에의해수신된 SQL 일괄처리요청수입니다. 페이지 IO 래치와관련된통계입니다. IO 래치를제외한페이지래치와관련된통계입니다. 94
그외주요지표들 Page reads/sec Page life expectancy 발급한실제데이터베이스페이지읽기수입니다. (Physical Read) Page 가참조없이버퍼풀 (Buffer Pool) 에머무르는시간입니다. ( 즉 Memory Buffer Pool 에 Page 가얼마나오래남아있는지를나타낸값 ) 값이낮을수록 Physical I/O 가많이발생한다는것을의미합니다. Transactions/sec 데이터베이스에대해시작된트랜잭션수입니다. User Connections 시스템에연결된사용자수입니다. Number of Deadlocks/sec Target Server Memory(KB) Total Server Memory(KB) Page reads/sec 교착상태를일으킨잠금요청수입니다. 서버가사용할이상적인메모리양입니다. 서버가현재사용하는총동적메모리양입니다. 발급한실제데이터베이스페이지읽기수입니다. (Physical Read) Transactions/sec 데이터베이스에대해시작된트랜잭션수입니다. User Connections 시스템에연결된사용자수입니다. SQL Compilations/sec SQL Re- Compilations/sec SQL 컴파일횟수입니다. SQL 재컴파일횟수입니다. 95
Maxgauge for SQL Server User's Guide Volume I C Class Method Dependency... 86 Client... 14 D DB Trend... 69 I InterMax... 6 InterMax Real-Time Monitor... 28 J JSPD... 8 L Long Transaction... 70, 85 P Performance Analyzer... 57, 65 R Repository... 13 RTS... 9 T Trend... 67 96
97
Maxgauge for SQL Server User's Guide Volume I Copyright 2007-2010. EXEM Co., Ltd. All rights reserved. 12 th Floor, Woorim Business Center.,240-21, Yeomchang-dong, Kangseo-gu, Seoul, Korea Phone +82-2-6203-6300 Fax +82-2-6203-6301 www.ex-em.com 98