SQL Server를 운영하다보면

 

SQL Server has encountered 3 occurrence(s) of I/O requests taking longer than 15 seconds to complete on file [D:\************.MDF] in database [**********] (18). The OS file handle is 0x00000CE8. The offset of the latest long I/O is: 0x000066f16b0000

 

이런 에러가 발생하는 경우가 있다.

 

최악의 경험으로는 백업하다 에러가 발생해서 Database가 내려간 경험도 있다.

( 새벽에 IDC로 뛰어 갔다... ㅠㅠ )

 

여러 가지 원인이 있는 것 같다. 검색을 해보면 하드웨어 문제라는 것이 대부분의 글들이다.

 

아래의 URL은 해당 에러에 대한 글이다.

 

http://blogs.msdn.com/b/sqlsakthi/archive/2011/02/09/troubleshooting-sql-server-i-o-requests-taking-longer-than-15-seconds-i-o-stalls-amp-disk-latency.aspx

 

내가 해결(?)한 방법으로는

 

1. SAN 의 컨트롤러 교체 - 하나의 컨트롤러가 문제가 발생하고 교체를 하였지만 나머지 하나도 문제가 발생해서 교체 후에 해당 15 I/O가 사라졌다.

2. Table Scan이 발생하는 쿼리 수정 - Perfmon으로 해당 DB의 Table Scan을 측정하자 평균 400 ~ 500 정도가 발생.

임시테이블 사용을 제외한 쿼리의 Table Scan을 Seek로 변경. 200 ~ 300 로 내려가자 15 I/O가 사라짐.

 

경험의 결론은 하드웨어 문제 일수도 있고 디스크 사용량이 너무 많은 경우도 문제가 발생할 수 있다.

 

+ Recent posts