디스크 사용 모니터링

Microsoft SQL Server 는 Microsoft Windows 운영 체제 I/O(입/출력) 호출을 사용하여 디스크에서 읽기 및 쓰기 작업을 수행합니다. SQL Server 는 디스크 I/O가 수행되는 시간과 방법을 관리하지만 기본 I/O 작업은 Windows 운영 체제에서 수행합니다. I/O 하위 시스템에는 시스템 버스, 디스크 컨트롤러 카드, 디스크, 테이프 드라이브, CD-ROM 드라이브 및 기타 여러 I/O 장치가 있습니다. 디스크 I/O는 시스템에서 자주 병목 현상을 일으킵니다.

디스크 작업 모니터링은 다음 두 가지 핵심 영역으로 구성됩니다.

  • 디스크 I/O 모니터링 및 초과 페이징 검색
  • SQL Server 가 만드는 디스크 작업 격리

디스크 I/O 모니터링 및 초과 페이징 검색

디스크 작업을 확인하기 위해 모니터링할 수 있는 카운터는 다음 두 가지입니다.

  • PhysicalDisk: % Disk Time
  • PhysicalDisk: Avg. Disk Queue Length

시스템 모니터에서 PhysicalDisk:% Disk Time 카운터는 읽기/쓰기 작업에 사용 중인 디스크 시간의 비율을 모니터링합니다. 만약 PhysicalDisk: % Disk Time 카운터가 높으면(90% 이상) Physical Disk: Current Disk Queue Length 카운터를 통해 디스크 액세스를 기다리고 있는 시스템 요청의 개수를 확인하십시오. 기다리고 있는 I/O 요청의 개수는 실제 디스크를 구성하는 스핀들 개수의 1.5배에서 2배를 넘을 수 없습니다. 대부분의 디스크에는 하나의 스핀들이 있지만 RAID(redundant array of independent disk) 장치에는 일반적으로 둘 이상의 스핀들이 있습니다. 하드웨어 RAID 장치가 시스템 모니터에서 하나의 물리적 디스크로 나타납니다. 소프트웨어로 만든 RAID 장치는 시스템 모니터에서 여러 인스턴스로 나타납니다.

Current Disk Queue Length% Disk Time 카운터 값을 사용하면 디스크 하위 시스템 내의 병목 상태를 검색할 수 있습니다. Current Disk Queue Length% Disk Time 카운터 값이 계속 높을 경우 다음 작업 중 한 가지를 수행하십시오.

  • 더 빠른 디스크 드라이브 사용
  • 일부 파일을 추가 디스크 또는 서버로 이동
  • 사용 중인 경우 추가 디스크를 RAID 배열에 추가

RAID 장치를 사용하고 있다면 % Disk Time 카운터에 100% 이상의 값이 표시될 수 있습니다. 이럴 경우 PhysicalDisk: Avg. Disk Queue Length 카운터를 사용해 디스크 액세스를 기다리고 있는 시스템 요청의 평균 개수를 확인하십시오.

I/O 중심의 응용 프로그램 및 시스템에서는 디스크가 계속 활성화 상태로 유지될 수 있습니다.

디스크 작업의 원인이 페이징이 아닌 것을 확인하려면 Memory: Page Faults/sec 카운터를 모니터링하십시오. Windows에서 페이징이 발생하는 원인은 다음과 같습니다.

  • 메모리를 너무 많이 사용하도록 구성된 프로세스
  • 파일 시스템 작업

같은 하드 디스크에 논리 파티션이 둘 이상 있으면 Physical Disk 대신 Logical Disk 카운터를 사용하십시오. Logical Disk 카운터를 보면 자주 액세스하는 파일을 쉽게 확인할 수 있습니다. 최상 수준의 읽기/쓰기 작업을 하는 디스크를 찾은 후 읽기 및 쓰기 관련 카운터를 참조하여 각 논리 볼륨에 로드를 발생시키는 디스크 작업의 유형을 확인합니다. 예를 들어 Logical Disk: Disk Write Bytes/sec이 있습니다.

SQL Server로 만든 디스크 작업 격리

다음은 SQL Server 구성 요소로 생성된 I/O 양을 확인하기 위해 모니터링할 수 있는 두 개의 카운터입니다.

  • SQL Server:Buffer Manager:Page reads/sec
  • SQL Server:Buffer Manager:Page writes/sec

시스템 모니터에서 이 카운터가 다음 성능 영역을 검사하여 SQL Server 구성 요소로 생성된 I/O 양을 모니터링합니다.

  • 디스크에 페이지 쓰기
  • 디스크에서 페이지 읽기

이 카운터에 대한 값이 하드웨어 I/O 하위 시스템의 용량 제한에 가까워지면 응용 프로그램 또는 데이터베이스를 I/O 작업(인덱스 적용 범위, 더 정확한 인덱스 설정, 정규화 등) 수를 줄이도록 튜닝하거나 하드웨어의 I/O 용량을 늘리거나 메모리를 추가하여 이 값을 줄이십시오. 예를 들어 데이터베이스 엔진 튜닝 관리자를 사용하여 일반 SQL Server 작업을 분석할 수 있고 인덱스, 인덱싱된 뷰 및 파티션에 대한 권장 구성을 생성하여 서버 성능을 향상할 수 있습니다. 데이터베이스 엔진 튜닝 관리자에 대한 자세한 내용은 물리적 데이터베이스 디자인 튜닝을 참조하십시오.