다음을 통해 공유


Resource Governor

적용 대상: SQL Server Azure SQL Managed Instance

SQL Server 리소스 거버너는 SQL Server 워크로드 및 시스템 리소스 소비를 관리하는 데 사용할 수 있는 기능입니다. 리소스 관리자를 사용하면 CPU, 물리적 I/O, 들어오는 애플리케이션 요청에 사용할 수 있는 메모리 양의 한도를 지정할 수 있습니다.

참고 항목

Azure SQL Database는 리소스 관리자(다른 기술 중)를 활용하여 리소스를 관리하지만 Azure SQL Database에서 사용자 지정 리소스 풀 및 워크로드 그룹의 사용자 구성은 지원되지 않습니다. Azure Synapse Analytics는 워크로드 분류 기능을 통해 유사한 리소스 관리자 동작의 다른 구현을 포함합니다.

리소스 관리자의 이점

리소스 관리자를 통해 수신 요청의 리소스 소모량에 대한 한계를 지정함으로써 SQL Server 작업과 리소스를 관리할 수 있습니다. 리소스 관리자 컨텍스트에서 워크로드란 단일 엔터티로 취급해야 하거나 취급할 수 있는 비슷한 크기의 쿼리 또는 요청 세트입니다. 반드시 그래야 하는 것은 아니지만 작업의 리소스 사용 패턴이 균일할수록 리소스 관리자를 통해 얻을 수 있는 이점이 많아집니다. 리소스 제한은 실행 중인 작업에 미치는 영향을 최소화하면서 실시간으로 다시 구성할 수 있습니다.

같은 서버에 고유 작업이 여러 개 있는 환경에서 리소스 관리자를 사용하면 이러한 여러 작업을 구별할 수 있으며 지정한 제한에 따라 요청된 공유 리소스를 할당할 수 있습니다. CPU, 물리적 I/O 및 메모리가 이러한 리소스에 해당합니다.

리소스 관리자를 사용하면 다음을 수행할 수 있습니다.

  • 여러 클라이언트 작업을 처리하는 단일 SQL Server 인스턴스에서 다중 테넌트 지원 및 리소스 격리를 제공합니다. 서버의 사용 가능한 리소스를 여러 작업으로 분산하여 작업 간 리소스 경합이 발생할 때 야기되는 문제를 최소화할 수 있습니다.

  • 다중 작업 및 다중 사용자 환경에서 작업 테넌트에 대한 예측 가능한 성능 및 지원 SLA를 제공합니다.

  • I/O 하위 시스템을 포화 상태로 만들어 다른 워크로드의 성능을 저하시킬 수 있는 DBCC CHECKDB 등의 작업에 대해 I/O 리소스를 제한하거나 런어웨이 쿼리를 격리 및 제한합니다.

  • 리소스 사용 비용 환불을 위한 세분화된 리소스 추적 기능을 추가하고 서버 리소스 소비자에게 예측 가능한 요금 청구 기능을 제공합니다.

리소스 관리자 제약 사항

이 리소스 관리자 릴리스의 제약 사항은 다음과 같습니다.

  • 리소스 관리는 SQL Server 데이터베이스 엔진 제한됩니다. 리소스 관리자는 Analysis Services, Integration Services 및 Reporting Services에 사용할 수 없습니다.

  • SQL Server 인스턴스 간 워크로드 모니터링 또는 워크로드 관리가 없습니다.

  • 리소스 관리자는 OLTP 워크로드를 관리할 수 있지만 일반적으로 기간이 매우 짧은 이러한 유형의 쿼리는 대역폭 컨트롤을 적용할 만큼 CPU에 항상 있는 것은 아닙니다. 이로 인해 CPU 사용량(%)으로 반환되는 통계가 왜곡될 수 있습니다.

  • 물리적 I/O 관리 기능은 사용자 작업에만 적용되고 시스템 태스크에는 적용되지 않습니다. 시스템 작업에는 트랜잭션 로그에 대한 쓰기 작업 및 지연 기록기 I/O 작업이 포함됩니다. 대부분의 쓰기 작업은 일반적으로 시스템 태스크에 의해 수행되므로 리소스 관리자는 주로 사용자 읽기 작업에 적용됩니다.

  • 내부 리소스 풀에서 I/O 임계값을 설정할 수 없습니다.

리소스 개념

다음 세 가지 개념은 리소스 관리자를 이해하고 사용하는 데 기본적인 개념입니다.

  • 리소스 풀. 리소스 풀은 서버의 물리적 리소스를 나타냅니다. 풀은 SQL Server 인스턴스 내부의 가상 SQL Server 인스턴트로 간주할 수 있습니다. SQL Server가 설치될 때 두 개의 작업 그룹(내부 및 기본값)이 만들어집니다. 리소스 관리자는 사용자 정의 리소스 풀도 지원합니다. 자세한 내용은 리소스 관리자 리소스 풀을 참조하세요.

  • 작업 그룹. 작업 그룹은 분류 기준이 유사한 세션 요청에 대한 컨테이너의 역할을 합니다. 작업에서 세션의 집계 모니터링을 허용하고 세션에 대한 정책을 정의합니다. 각 작업 그룹은 리소스 풀에 있습니다. SQL Server가 설치될 때 두 개의 작업 그룹(내부 및 기본값)이 만들어지고 해당 리소스 풀에 매핑됩니다. 리소스 관리자는 사용자 정의 작업 그룹도 지원합니다. 자세한 내용은 리소스 관리자 작업 그룹을 참조하세요.

  • 분류. 분류 프로세스는 세션 특징에 기초하여 들어오는 세션을 세션의 특징에 따라 작업 그룹에 할당합니다. 분류자 함수라고 하는 사용자 정의 함수를 작성하여 분류 논리를 조정할 수 있습니다. 리소스 관리자는 분류 규칙을 구현하기 위한 분류자 사용자 정의 함수도 지원합니다. 자세한 내용은 리소스 관리자 분류자 기능을 참조하세요.

참고 항목

리소스 관리자는 전용 DAC(관리자 연결)에 대한 제어를 적용하지 않습니다. 내부 작업 그룹과 리소스 풀에서 실행되는 DAC 쿼리는 분류할 필요가 없습니다.

리소스 관리자의 컨텍스트에서 이전 개념을 구성 요소로 처리할 수 있습니다. 다음 그림에서는 이러한 구성 요소와 데이터베이스 엔진 환경에 존재하는 서로의 관계를 보여 줍니다. 처리 관점에서 간소화된 흐름은 다음과 같습니다.

  • 세션에 대한 들어오는 연결이 있습니다(n의 세션 1).

  • 세션이 분류됩니다(분류).

  • 세션 워크로드는 작업 그룹(예: 그룹 4)으로 라우팅됩니다.

  • 워크로드 그룹은 연결된 리소스 풀(예: 풀 2)을 사용합니다.

  • 리소스 풀은 애플리케이션에 필요한 리소스(예: 애플리케이션 3)를 제공하고 제한합니다.

리소스 관리자 기능 구성 요소

리소스 관리자 태스크

작업 설명 항목
리소스 관리자를 사용하도록 설정하는 방법에 대해 설명합니다. 리소스 관리자 사용
리소스 관리자를 사용하지 않도록 설정하는 방법에 대해 설명합니다. 리소스 관리자 사용 안 함
리소스 풀을 만들고, 변경하고, 삭제하는 방법을 설명합니다. 리소스 관리자 리소스 풀
작업 그룹을 생성, 변경, 이동, 삭제하는 방법에 대해 설명합니다. 리소스 관리자 작업 그룹
분류자 사용자 정의 함수를 만들고 테스트하는 방법에 대해 설명합니다. 리소스 관리자 분류자 함수
템플릿을 사용하여 리소스 관리자를 구성하는 방법에 대해 설명합니다. 템플릿을 사용하여 리소스 관리자 구성
리소스 관리자 속성을 보는 방법을 설명합니다. 리소스 관리자 속성 보기

참고 항목

데이터베이스 엔진 인스턴스(SQL Server)