'Tool'에 해당되는 글 23건

  1. VMMap 메모리 분석 도구
  2. 기본 PerfMon에 대한 기본 카운터 커스트 마이징
  3. ClearTrace2012 BETA (Build 42)
  4. 데이타 모델링 툴
  5. Process Explorer
  6. IOPS 계산기~ 얼~~
  7. (펌) SQL Server 2012 에서 Extended Events 를 통해 call stack 확인
  8. (펌) pssdiag 또는 sqldiag를 이용하여 sp_blocker_pss파일로 남기기
  9. Process Monitor
  10. (펌) TPC-C Base 성능 테스트 방법

VMMap 메모리 분석 도구

VMMap 툴은 프로세스의 가상 및 물리 메모리 분석 유틸 도구이다.

   

관련 링크

VMMAP 다운로드 경로 : http://technet.microsoft.com/en-us/sysinternals/dd535533.aspx

   

Sqlservr.exe 프로세스를 선택합니다.

   

Working set : 프로세스가 사용하는 실제 메모리 크기… 대략 402M 정도 사용하고 있네요.

Private Bytes : 프로세스가 독점적으로 할당되는 메모리 크기. 즉 자신만의 가상 메모리입니다. 대략 709M

Commmitted : 프로세스는 메모리에만 존재하는 것이 아니고 가상 메모리에도 존재한다.

'Tool' 카테고리의 다른 글

Contig v1.7  (0) 2013.08.21
T-SQL Formatter  (0) 2013.07.22
기본 PerfMon에 대한 기본 카운터 커스트 마이징  (0) 2013.06.20
ClearTrace2012 BETA (Build 42)  (0) 2013.06.13
데이타 모델링 툴  (0) 2013.05.22

원본링크 : http://www.sqlskills.com/blogs/erin/customizing-the-default-counters-for-performance-monitor/

   

금일 Daily News 정리하면서 알게 된 팁입니다. Erin Stellato가 알려준 Tip인데요. 이 팁은 Windows 2008+ 그리고 vista 이상만 가능한 설정임을 먼저 알려드릴께요.

   

먼저, 자신의 PC에 Start | Run 명령어 창에 perfmon /sys 명령어를 입력합니다.

   

그러면, 기본 성능 모니터의 카운터 정보를 보게 됩니다.

   

(+) 녹색 버튼을 선택하여 추가하고 싶은 카운터 정보를 등록 합니다. 추가 후 종료합니다.

   

다시 Start | Run 명령어 창에 perfmon /sys 명령어를 실행합니다. 추가한 카운터가 그대로 이죠?

   

내 PC의 PefMon 구성 파일(Perfmon.PerfmonCfg)을 Users\<username>\AppData\Local 저장합니다.

예) \users\judydba\appdata\Local

   

저장을 하게 되면 교체가 되는 거죠~^^. Pefmon을 종료하고 다시 실행해봅니다. 똑같죠~ 만약 동일하게 성능 모니터를 보고자 한다면은 이 파일을 위와 같은 경로에 Copy해서 사용하면 끝!!

   

   

   

   

'Tool' 카테고리의 다른 글

T-SQL Formatter  (0) 2013.07.22
VMMap 메모리 분석 도구  (0) 2013.06.25
ClearTrace2012 BETA (Build 42)  (0) 2013.06.13
데이타 모델링 툴  (0) 2013.05.22
Process Explorer  (0) 2013.05.07

ClearTrace2012 BETA (Build 42)

Trace File을 분석할 때 개인적으로 자주 쓰던 툴입니다.

SQL2012용으로 베타 버전으로 나와 있었네요 ClearTrace2012 BETA (Build 42.)

   

다운로드 경로 : http://www.scalesql.com/cleartrace/download.aspx

   

Trace 정보를 저장할 DB를 TOOLS 메뉴에서 설정하고,

   

TRACE 파일 경로와 이후 생성된 파일을 연속되게 읽을 수 있도록 체크 박스를 선택 한다.

   

실행 결과는 아래와 같이 옵션 설정에 따라 확인이 가능하다^^..

'Tool' 카테고리의 다른 글

VMMap 메모리 분석 도구  (0) 2013.06.25
기본 PerfMon에 대한 기본 카운터 커스트 마이징  (0) 2013.06.20
데이타 모델링 툴  (0) 2013.05.22
Process Explorer  (0) 2013.05.07
IOPS 계산기~ 얼~~  (0) 2013.05.06

데이타 모델링 툴

http://www.exerd.com/#download-section


개인에게는 무료이다. 옷..ㅋㅋ

Process Explorer

안녕하세요. 주디아줌마입니다.

Process Explorer 툴을 이용해서 SQL서버 프로세스를 모니터링 할 수 있는 툴 소개하겠습니다.

   

관련 링크

   

먼저, 툴을 사용하려면 다운로드 먼저 해야겠죠?

http://technet.microsoft.com/en-us/sysinternals/bb896653 링크 경로를 찾아가 Process Explorer v15.3을 다운로드 받습니다. 대략 크기는 1.1M 정도 작네요^^

   

다운로드~ 시작~~~

   

다운로드 하면 아래와 같이 바로 가기 버튼이 생성됩니다.

   

자, Process Explorer를 실행합니다. 아래와 같은 화면이 나옵니다. 제 환경은 SQL2012 서비스가 되고 있습니다.

   

성능 그래프 보이는 부분을 더블 클릭을 하면, 현 시스템에 대한 성능 요약을 볼 수 있으며 이외 CPU, Memory, I/O, GPU 정보를 볼수 있다.

   

여기서 빨간색으로 성능 이슈를 보이는 그래프 위에 마우스 오버하면 그때 문제되는 프로세스 정보를 보여준다. 처음 Process explorer를 띄우게 되면 CPU 6.1%리소스를 사용하는게 보이네요.

   

CPU의 핸들수, 쓰레드 수, 프로세스

   

물리적인 메모리량, 커널 메모리, 페이징 정보

   

   

   

자~ 이제 SQL Server 프로세스를 모니터링 해봅시다.

Sqlservr.exe 프로세스를 더블 클릭합니다.

   

Image> SQL Server 프로세스 버전, 경로, 서비스하는 유저 계정

   

성능> SQL Server CPU/Memory/I/O

   

성능 > Disk and Network

   

Service > SQL Server 시작계정

   

Security> 시작 계정, SID, 정책

   

Environment> 환경 변수

   

Threads> SQL Server에 생성된 쓰레드 정보를 확인 가능하다.

148개의 스레드가 생성되고 있으며, 각각의 스레드 마다 상태, context switches 횟수 모니터링 가능.

   

여기서 가장 CPU를 많이 먹고 문제되는 스레드의 스택을 확인해 보자. 문제되는 스레드를 더블 클릭한다.

스레드의 스택 정보를 보인다. 다중객체 대개에 걸려 있구만~ 스핀락도 살짝 보이고~ ㅋㅋ

   

모듈 정보 보이고.

   

해당 스레드를 Kill과 suspend도 가능해 보인다 ~

오호~

   

Process Explorer를 통해서 다양한 장애 이슈를 제어가 가능해보인다~ @.@

관련 링크를 참고해 보면서 SQL Server Trouble shooting 처리할 때 사용해 보자.

   

참고, 틀린 내용 있으면 댓글 달려주세요.

그럼, 좋은 하루 보내세요~

   

IOPS 계산기~ 얼~~

http://cafe.naver.com/sqlmvp/3846

SQL Server 2012 에서 Extended Events 를 통해 call stack 확인 - 고성민



오랜 만에 심야 세미나 재밌었습니다. :)

SQL Server 2012 에서 Call stack 이 보이지 않았던 부분에 대해서 확인된 사항 업데이트 해 봤습니다~

 

아래 링크과 같이 Jonathan Kehayias의 An XEvent a Day 포스팅 자료에서 Extended Events 를 사용하여 call stack 을 확인하는 방법이 포스팅 되어 있습니다만 SQL Server 2012 에서는 call stack 이 정상적으로 나타나지 않습니다.

 

An XEvent a Day (24 of 31) – What is the package0.callstack Action? 
http://sqlblog.com/blogs/jonathan_kehayias/archive/2010/12/24/an-xevent-a-day-24-of-31-what-is-the-callstack-Action.aspx


 

위 포스팅 예제와 같이 SQL Server 2008 R2에서는 sqlservr.pdb 파일만을 사용하여 Call stack 을 확인하지만 SQL Server 2012 에서는 추가적으로 더 필요한 pdb 파일들이 있습니다. 간단히 아래 예제로 확인해 보실 수 있습니다.

 

1. SQL Server mini dump 생성
C:\Program Files\Microsoft SQL Server\110\Shared> sqldumper 980 0 0x0120

-- sqlservr.exe PID : 980

-- SQLDmpr001.dmp 파일이 해당 폴더에 생성됩니다.

 

2. windbg 실행 
 가. 심볼 설정 : SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
 나. SQLDmpr0001.dmp 파일을 windbg 로 불러옵니다. 아래와 같이 심볼 로딩이 완료되면 windbg 를 종료합니다.

Loading unloaded module list
................
Automatically loaded SOS Extension
ntdll!NtWaitForSingleObject+0xa:
000007ff`04962c2a c3              ret
0:000>

 

 

3. 심볼 복사 
c:\symbols 폴더에 있는 sqldk.pdb, sqllang.pdb, sqlmin.pdb, sqlservr.pdb 4개의 파일을 BIN 폴더로 복사합니다.
C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Binn

 

4. 오류 발생
RAISERROR(50001, 20, 1, 'This is an Error!') WITH LOG

 

5. Extended Event 를 사용하여 Call stack 확인

 

SELECT n.query('.') AS callstack
FROM
(
    SELECT CAST(target_data as xml)
    FROM sys.dm_xe_sessions AS s 
    INNER JOIN sys.dm_xe_session_targets AS t
        ON s.address = t.event_session_address
    WHERE s.name = 'system_health'
      AND t.target_name = 'ring_buffer'
) AS src (target_data)
CROSS APPLY target_data.nodes('RingBufferTarget/event/action[@name="callstack"]') as q(n)

 

[결과]

<action name="callstack" package="package0">
  <type name="callstack" package="package0" />
  <value>XeSqlPkg::CollectSqlText&lt;XE_ActionForwarder&gt;+ec [ @ 0+0x0
XeSqlPkg::CollectSqlTextActionInvoke+29 [ @ 0+0x0
XeSqlPkg::CollectTSqlStack&lt;XE_ActionForwarder&gt;+2fa [ @ 0+0x0
XeSqlPkg::CollectTSqlStackActionInvoke+29 [ @ 0+0x0
XeSqlPkg::error_reported::Publish+138 [ @ 0+0x0
ErrorReportedAutoPublish::Publish+2d3 [ @ 0+0x0
CErrorReportingManager::CwchFormatAndPrint+a7e [ @ 0+0x0
CXStmtError::XretExecute+7e1 [ @ 0+0x0
CMsqlExecContext::ExecuteStmts&lt;1,1&gt;+400 [ @ 0+0x0
CMsqlExecContext::FExecute+a33 [ @ 0+0x0
CSQLSource::Execute+866 [ @ 0+0x0
process_request+73c [ @ 0+0x0
process_commands+51c [ @ 0+0x0
SOS_Task::Param::Execute+21e [ @ 0+0x0
SOS_Scheduler::RunTask+a8 [ @ 0+0x0
SOS_Scheduler::ProcessTasks+299 [ @ 0+0x0
SchedulerManager::WorkerEntryPoint+261 [ @ 0+0x0
SystemThread::RunWorker+8f [ @ 0+0x0
SystemThreadDispatcher::ProcessWorker+3c8 [ @ 0+0x0
SchedulerManager::ThreadEntryPoint+236 [ @ 0+0x0
BaseThreadInitThunk+1a [ @ 0+0x0
RtlUserThreadStart+21 [ @ 0+0x0</value>
</action>

 

 

라이고 블로그 : http://laigo.kr/739

'Tool' 카테고리의 다른 글

Process Explorer  (0) 2013.05.07
IOPS 계산기~ 얼~~  (0) 2013.05.06
(펌) pssdiag 또는 sqldiag를 이용하여 sp_blocker_pss파일로 남기기  (0) 2013.04.29
Process Monitor  (0) 2013.04.24
(펌) TPC-C Base 성능 테스트 방법  (0) 2013.04.23


http://cafe.naver.com/sqlmvp/3839

pssdiag 또는 sqldiag를 이용하여 sp_blocker_pss파일로 남기기 - 안인옥




pssdiag는 SQLServer 7.0과 2000에서 사용하는 성능진단을 위한 수집툴이고요.

따로 다운을 받으셔야 합니다.

http://www.microsoft.com/en-us/download/details.aspx?id=11886

pssdiag는 현재 테스트 및 확인을 할 수가 없어서 아래 사항을 잘 맞게 적용하시면 됩니다.~~ㅡㅡ;

 

sqldiag는 2005부터 2012까지 사용할 수 있는 성능진단을 위한 수집툴입니다.

SQLServer를 설치하면 기본적으로

C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqldiag.exe가 제공됩니다.

(폴더명 110은 버전별로 바뀝니다)

 

처음에는 C:\Program Files\Microsoft SQL Server\100\Tools\Binn\에 설정 파일이 없습니다.

sqldiag를 실행하면 생깁니다. (SQLDiag.XML, SD_General.XML, SD_Detailed.XML 기타 둥둥~~)

주의할 점은 실행할때 마다 설정파일이 새로 생기니, 같은 이름에 설정을 해놓으면 뭐 되는수가 있습니다.~ㅡㅡ;

 

 

실제로 해보기~!!

1. 첨부파일 : checkblk.sql, sqldiag.bat --> C:\Program Files\Microsoft SQL Server\110\Tools\Binn\로 카피

2. 시작의 실행에서 cmd 엔터

3. cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ 엔터

4. sqldiag.exe엔터 실행 후, ctrl+c로 중지

(C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLDIAG폴더에 로그파일수집 필요없으면 삭제)

5. SQLDiag.XML이 생김

6. SQLDiag_Test.XML로 파일 이름 변경 후, Text Edit에서 파일 오픈 아래 빨간부분 추가 후, 저장.

<CustomDiagnostics>
<CustomGroup name="msinfo" enabled="true" />
<CustomTask enabled="true" groupname="MsInfo" taskname="Get MSINFO32" type="Utility" point="Startup" wait="OnlyOnShutdown" cmd="start /B /WAIT MSInfo32.exe /computer %server% /report &quot;%output_path%%server%_MSINFO32.TXT&quot; /categories +SystemSummary+ResourcesConflicts+ResourcesIRQS+ComponentsNetwork+ComponentsStorage+ComponentsProblemDevices+SWEnvEnvVars+SWEnvNetConn+SWEnvServices+SWEnvProgramGroup+SWEnvStartupPrograms" />
<CustomTask enabled="true" groupname="MsInfo" taskname="Get default traces" type="Copy_File" point="Startup" wait="OnlyOnShutdown" cmd="&quot;%sspath%log\log*.trc&quot; &quot;%output_path%&quot;" />
<CustomTask enabled="true" groupname="MsInfo" taskname="Get SQLDumper log" type="Copy_File" point="Startup" wait="OnlyOnShutdown" cmd="&quot;%sspath%log\SQLDUMPER_ERRORLOG*.*&quot; &quot;%output_path%&quot;" />
<CustomTask enabled="true" groupname="sp_blocker_pss80" taskname="Gather the sp_blocker_pss80 output" type="Utility" point="Startup" wait="No" cmd="sqlcmd -E -S%server_instance% -icheckblk.sql -o&quot;%output_path%sp_blocker_pss80.out&quot; -w2000" />
</CustomDiagnostics>

--> 하위 버전에서는 다음과 같이 사용하세요

<CustomTask enabled="true" groupname="sp_blocker_pss80" taskname="Gather the sp_blocker_pss80 output" type="Utility" point="Startup" wait="No" cmd="osql -E -S%server_instance% -icheckblk.sql -o&quot;%output_path%sp_blocker_pss80.out&quot; -w2000" />

7. sqldiag.bat 엔터 수집 후, ctrl+c

(7번을 실행할 때 마다, tempdb에 아래와 같은 프로시저가 생김. 이것도 항상 다시 생기므로 주의해야 합니다. 

SQLServer2005버전 이하는 master에 생겼었던 것 같아요~~ㅡㅡ; (확인 가능하신 분들은 확인해서 알려주삼~~@@))

 

8. sp_blocker_pss80.out 확인 (보기가 쉽지는 않으나, 중요한 정보들이 많이 남아있기 때문에 유용한 것 같아요~~^^;)

 

checkblk.sql 구문

 

WHILE 1=1
BEGIN
   EXEC tempdb.dbo.sp_blocker_pss08
   -- Or for fast mode 
   -- EXEC master.dbo.sp_blocker_pss80 @fast=1
   -- Or for latch mode 
   -- EXEC master.dbo.sp_blocker_pss80 @latch=1
   WAITFOR DELAY '00:00:15' --> 시간 알아서 조정
END
GO

 

sqldiag.bat 구문

 

@echo off
set date1=%date:-=%
set time1=%time::=%
set time2=%time1:~0,1%
set time3=%time1:~1,5%

if "%time2%" == " " set time2=0

sqldiag /I "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SQLDiag_Test.XML" /O "C:\spaceahn\sqldiag\%date1%_%time2%%time3%"

--> /I 설정파일, /O 수집로그파일경로 알아서 조정

checkblk.sql


sqldiag.bat


'Tool' 카테고리의 다른 글

IOPS 계산기~ 얼~~  (0) 2013.05.06
(펌) SQL Server 2012 에서 Extended Events 를 통해 call stack 확인  (0) 2013.04.29
Process Monitor  (0) 2013.04.24
(펌) TPC-C Base 성능 테스트 방법  (0) 2013.04.23
Xperf을 이용한 troubleshooting  (0) 2013.04.19

Process Monitor

원본 링크 http://blogs.msdn.com/b/sql_pfe_blog/archive/2013/03/14/dissecting-sql-server-physical-reads-with-extended-events-and-process-monitor.aspx


SQL Server read/write I/O 모니터링 


Process Monitor is an advanced monitoring tool for Windows that shows real-time file system, Registry and process/thread activity. It combines the features of two legacy Sysinternals utilities, Filemon and Regmon, and adds an extensive list of enhancements including rich and non-destructive filtering, comprehensive event properties such session IDs and user names, reliable process information, full thread stacks with integrated symbol support for each operation, simultaneous logging to a file, and much more. Its uniquely powerful features will make Process Monitor a core utility in your system troubleshooting and malware hunting toolkit.

필터 조건 설정
아래 두개 필터 조건 추가(process name, path)






 


http://hammerora.sourceforge.net/about.html

TPC-C 타입의 여러 벤더의 DB 성능 테스트해주는 도구입니다.


테스트 방법 잘 정리해주셨네요^^

http://bryans.tistory.com/71
http://bryans.tistory.com/72


'Tool' 카테고리의 다른 글

(펌) pssdiag 또는 sqldiag를 이용하여 sp_blocker_pss파일로 남기기  (0) 2013.04.29
Process Monitor  (0) 2013.04.24
Xperf을 이용한 troubleshooting  (0) 2013.04.19
DB 무료 모니터링 툴  (0) 2013.04.15
RML  (0) 2008.03.28