성능분석 15탄 – I/O 관련 성능 카운터
-
Version : SQL Server 2005, 2008, 2008R2, 2012
I/O와 관련된 성능 카운터에 대해서 알아본다.
Page reads/sec
[SQLServer:Buffer Manager] – [Page reads/sec]에 위치하며 실제 데이터베이스에서 읽은 페이지의 수를 나타낸다. 이 카운터의 성능은 디스크 IO 읽기의 중요한 지표이다. 일반적으로 데이터는 버퍼풀에 캐싱되어 있어 디스크에서는 적은 데이터만 읽어 부하를 줄인다. 이 수가 높게 나타난다면 누락된 인덱스 또는 메모리 부족일 가능성 있다.
Page writes/sec
[SQLServer:Buffer Manager] – [Page reads/sec]에 위치하며 실제 데이터베이스에서 쓰기 페이지의 수를 나타낸다. 일부 큰 데이터쓰기는 높은 I/O를 유발하고 성능 하락으로 이어질 수 있다. 또한 I/O가 느린 경우 로그 플러시 대기 지연이 발생할 수 있다.
Log Flushes/sec
[SQLServer:Databases] – [LogFlushes/sec]에 위치하며 해당 위치의 Log Flush Wait Time, Log Flush Waits/sec, Log Flush Write Time (ms)와 함께 로그를 기록하는 횟수와 로그를 쓰기위해 기다리는 커밋 수 등을 확인 할 수 있다. OLTP 시스템에서는 이 부분이 주요 병목이 되기도 한다.
Checkpoint pages/sec
[SQLServer:Buffer Manager] – [Checkpoint pages/sec]에 위치하며 체크포인트는 Page writes/sec 스파이크를 유발하는 원인이기도 하다. 체크포인트는 자동으로 실행되지만 write 성능에 따라 체크포인트 수준을 조절하기도 한다.
Log Write waits
[SQL Server:Wait Statistics] – [Log write waits]에 위치하며 이 성능 카운터는 로그 쓰기의 대기 정보를 알려준다. 로그 버퍼 작성을 기다리는 프로세스에 대한 통계이다.
Page IO latch waits
[SQL Server:Wait Statistics] – [Page IO latch waits]에 위치하며 페이지 IO 래치와 관련된 대기 정보이다. 이 카운터는 IO 값을 측정하지 않고 IO 블록킹이 발생한 경우만 측정한다. 또한 읽기 및 쓰기를 구분하지 않는다.
Backup/Restore Throughput/sec
[SQLServer:Databases] – [Backup/Restore Throughput/sec]에 위치하며 데이터베이스 백업/복원에 대한 읽기/쓰기 처리량을 나타낸다. 성능 분석을 할 때 종종 백업에 대한 IO의 요구 사항은 간과 되는 경우가 있다. 하지만 백업은 높은 IO를 요구하는 작업으로 실제 백업 시 IO에 대한 문제가 발생하는 경우가 많다. 백업 처리량을 모니터링 하여 IO 스파이크 현상이 발생 할 때 성능 상관관계를 이해해야 한다.
PhysicalDisk Object
[PhysicalDisk]에 위치한 오브젝트들은 IO동작을 모니터링 하기 위한 운영체제 카운터이다. 디스크이 큐 길이, 큐 시간, 디스크 처리량 등을 나타낸다. 물리적인 디스크 외에도 논리적인 드라이브 모니터링이 가능하다. SQL Server 자체의 IO 통계와 DMV 정보를 함께 활용하여 디스크 사용량에 대한 다양한 정보를 확인 할 수 있다.
IO Data Operations/sec
[Process] – [IO Data Operations/sec]에 위치하며 프로세스가 읽기 및 쓰기 I/O 연산을 요청하는 속도이다. 이 카운터는 프로세스가 파일, 네트워크 및 장치 I/O에서 만들어 내는 모든 I/O 동작을 계산한다. SQL 서버에 의해 보고된 값과 시스템 전체 IO 값이 일치하지 않을 경우를 분석할 때 매우 중요하다. 다른 프로세스에 의해 디스크가 바쁠 때 SQL 서버의 응답시간이 증가하는 것을 발견 할 수 있다.
[참고자료]
http://rusanu.com/2014/02/24/how-to-analyse-sql-server-performance/
2014-03-31 / 강성욱 / http://sqlmvp.kr
SQLSERVER, mssql, SQL튜닝, 강성욱, SQL강좌, DB튜닝, 쿼리튜닝, 데이터베이스튜닝, DMV, 성능모니터, Performance Counter, 윈도우 성능 모니터, 성능 카운터, 디스크 성능 모니터, IO 모니터, perfmon, disk io
'SQL Server > SQL Server Tip' 카테고리의 다른 글
성능분석 17탄 – SQLServer 블록킹 / 네트워크 관련 성능 카운터 (0) | 2015.07.23 |
---|---|
성능분석 16탄 – 메모리 / CPU 관련 성능 카운터 (0) | 2015.07.23 |
성능분석 14탄 – SQL Server 사용 성능 카운터 (0) | 2015.07.23 |
성능분석 13탄 – 누락된 인덱스(missing index) (0) | 2015.07.23 |
성능분석 12탄 – 문제 쿼리 식별 (0) | 2015.07.23 |