성능분석 4탄 – 디스크 및 IO 관련 대기 유형

 

  • Version : SQL Server 2005, 2008, 2008R2, 2012

 

SQL Server에서 발생하는 대기 유형 중 DISK 및 I/O 관련 대기 유형에 대해서 살펴 본다.

 

PAGEIOLATCH_*

전형적인 I/O 대기로 디스크에서 데이터를 읽고 쓰기 위한 대기이다. 데이터가 디스크에서 메모리로 캐시 (버퍼풀) 될 때까지 차단 작업이 발생 하면서 대기가 발생 한다. 대기 유형중 PAGELATCH_* 와 혼동하지 않도록 한다.

대기유형

설명

PAGEIOLATCH_DT

태스크가 I/O 요청에 있는 버퍼를 래치에서 기다리는 경우에 발생한다. 래치 요청이 삭제 모드에 있다. 대기 수가 많으면 디스크 하위 시스템에 문제가 있을 수 있다.

PAGEIOLATCH_EX

태스크가 I/O 요청에 있는 버퍼를 래치에서 기다리는 경우에 발생한다. 래치 요청이 배타 모드에 있습니다. 대기 수가 많으면 디스크 하위 시스템에 문제가 있을 수 있다.

PAGEIOLATCH_KP

태스크가 I/O 요청에 있는 버퍼를 래치에서 기다리는 경우에 발생한다. 래치 요청이 유지 모드에 있다. 대기 수가 많으면 디스크 하위 시스템에 문제가 있을 수 있다.

PAGEIOLATCH_NL

정보를 제공하기 위해서만 확인된다. 지원되지 않는다. 향후 호환성은 보장되지 않는다.

PAGEIOLATCH_SH

태스크가 I/O 요청에 있는 버퍼를 래치에서 기다리는 경우에 발생한다. 래치 요청이 공유 모드에 있다. 대기 수가 많으면 디스크 하위 시스템에 문제가 있을 수 있다.

PAGEIOLATCH_UP

태스크가 I/O 요청에 있는 버퍼를 래치에서 기다리는 경우에 발생한다. 래치 요청이 업데이트 모드에 있습니다. 대기 수가 많으면 디스크 하위 시스템에 문제가 있을 수 있다.

 

 

WRITELOG

COMMMIT 작업이 발생할 때 생기는 대기 유형이다. 디스크에 로그 레코드 기록이 완료 될 때까지 대기하는 동안 발생 한다. 로그 플러시를 발생시키는 일반적인 작업은 검사점(CHECKPOINT)와 트랜잭션 커밋이다.

 

 

IO_COMPLETION

이 대기 유형은 일반적으로 비데이터 페이지 I/O를 나타낸다(TEMPDB 정렬 파일 읽기 및 쓰기, DLL로드, 특정한 DBCC 데이터 읽기 등). 데이터 페이지 I/O 완료 대기는 PAGEIOLATCH_* 대기로 표시 된다.

 

 

ASYN_IO_COMPLETION

태스크가 I/O가 완료 될 때까지 대기하는 경우 발생한다. 주로 데이터베이스 백업, 복원, 데이터베이스 파일 작업과 관련이 있다.

 

 

대기 시간 분석 중 I/O 디스크 대기 유형이 발견된다면 디스크 활동을 분석하여 튜닝을 진행해야 한다.

 

 

[참고자료]

 

 



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

No. Subject Author Date Views
Notice SQL강좌: 챗GPT와 함께 배우는 SQL Server 무료 강좌 목차와 소개 (2023년 9월 업데이트) 코난(김대우) 2023.08.18 40012
Notice Python 무료 강좌 - 기초, 중급, 머신러닝(2023년 6월 업데이트) 코난(김대우) 2021.01.01 21950
1954 FileStream Garbage Collection jevida(강성욱) 2016.10.18 3512
1953 프로시저 캐시에서 중복 쿼리 계획 확인 jevida(강성욱) 2016.10.18 3755
1952 Sp_reset_connection jevida(강성욱) 2016.10.18 3845
1951 성능분석 17탄 – SQLServer 블록킹 / 네트워크 관련 성능 카운터 jevida(강성욱) 2016.10.15 3810
1950 성능분석 16탄 – 메모리 / CPU 관련 성능 카운터 jevida(강성욱) 2016.10.15 6280
1949 성능분석 15탄 – I/O 관련 성능 카운터 jevida(강성욱) 2016.10.15 4091
1948 성능분석 14탄 – SQL Server 사용 성능 카운터 jevida(강성욱) 2016.10.15 4075
1947 성능분석 13탄 – 누락된 인덱스(missing index) jevida(강성욱) 2016.10.15 2468
1946 성능분석 12탄 – 문제 쿼리 식별 jevida(강성욱) 2016.10.15 2289
1945 성능분석 11탄 – 실행 계획 분석 jevida(강성욱) 2016.10.15 4308
1944 성능분석 10탄 – 쿼리 실행 대기 시간 분석(xevent) jevida(강성욱) 2016.10.15 2025
1943 성능분석 9탄 – 쿼리 실행 분석 jevida(강성욱) 2016.10.15 4238
1942 성능분석 8탄 – IO 통계 (DISK 활동 분석) jevida(강성욱) 2016.10.15 1522
1941 성능분석 7탄 – 프로파일러 대기 유형 및 PREEMPTIVE_OS_WRITEFILEGATHER jevida(강성욱) 2016.10.15 1802
1940 성능분석 6탄 – CPU 경합 및 동시성 관련 대기 유형 jevida(강성욱) 2016.10.15 1978
1939 성능분석 5탄 – 메모리 및 네트워크 관련 대기 유형 jevida(강성욱) 2016.10.15 2164
» 성능분석 4탄 – 디스크 및 IO 관련 대기 유형 jevida(강성욱) 2016.10.15 2375
1937 성능분석 3탄 – 집계 대기 통계 jevida(강성욱) 2016.10.15 2025
1936 성능분석 2탄 – 실행 요청을 기다리는 작업 확인 및 분석 (병렬 처리 대기 확인) jevida(강성욱) 2016.10.15 1449
1935 성능분석 1탄 – 실행 요청을 기다리는 작업 확인 및 분석 jevida(강성욱) 2016.10.15 2151





XE Login