다음을 통해 공유


리소스 관리자

적용 대상:SQL ServerAzure SQL Managed Instance

리소스 관리자를 사용하여 데이터베이스 엔진 리소스 소비를 관리하고 사용자 워크로드에 대한 정책을 적용할 수 있습니다. 리소스 관리자를 사용하면 사용자 쿼리 워크로드에서 사용할 수 있는 CPU, 메모리 및 물리적 I/O의 양을 예약하거나 제한할 수 있습니다. 병렬 처리 수준 또는 메모리 부여 크기와 같은 각 쿼리의 리소스 사용 동작을 수정할 수도 있습니다.

구성 및 모니터링 예제 및 리소스 관리자 모범 사례를 알아보려면 자습서: 리소스 관리자 구성 예제 및모범 사례를 참조하세요.

참고 항목

Azure SQL Database는 리소스 관리자 활용하여 리소스를 관리하지만 Azure SQL Database에서 리소스 풀 및 워크로드 그룹의 사용자 구성은 지원되지 않습니다.

Azure Synapse Analytics에는 워크로드 분류 기능통해 유사한 리소스 거버넌스 동작의 다른 구현이 있습니다.

리소스 관리자의 이점

리소스 관리자를 사용하면 요청별로 리소스 사용량에 대한 예약 및 제한을 지정하여 데이터베이스 엔진 워크로드 및 리소스를 관리할 수 있습니다. 리소스 관리자 컨텍스트에서 워크로드는 단일 엔터티로 처리할 수 있고 처리해야 하는 쿼리(요청) 집합입니다. 예를 들어 특정 애플리케이션에서 실행하는 모든 쿼리는 워크로드로 간주될 수 있습니다. 이는 요구 사항은 아니지만 워크로드의 리소스 사용 패턴이 균일할수록 리소스 관리자로부터 더 많은 이점을 얻을 수 있습니다.

동일한 서버에 여러 고유 워크로드가 있는 경우 리소스 관리자를 사용하면 지정한 제한에 따라 리소스를 다른 워크로드에 다르게 할당할 수 있습니다.

리소스 관리자가 지원하는 사용 시나리오 중 일부는 다음과 같습니다.

  • 여러 클라이언트 작업을 처리하는 단일 SQL Server 인스턴스에서 다중 테넌트 지원 및 리소스 격리를 제공합니다. 서버의 사용 가능한 리소스를 여러 작업으로 분산하여 작업 간 리소스 경합이 발생할 때 야기되는 문제를 최소화할 수 있습니다.
  • 다중 워크로드 및 다중 사용자 환경에서 워크로드에 대해 예측 가능한 성능 및 지원 SLA를 제공합니다.
  • 제어 불능 쿼리를 격리하고 제한하거나, I/O 하위 시스템을 포화시켜 다른 워크로드에 부정적인 영향을 줄 수 있는 I/O 집약적인 작업에 대한 I/O 리소스를 제한합니다.
  • 리소스 사용량 청구에 대한 세분화된 리소스 추적을 추가하고 서버 리소스 소비자에게 예측 가능한 청구를 제공합니다.

리소스 관리자 제한 사항

리소스 관리자에는 다음과 같은 제한 사항이 있습니다.

  • 리소스 관리는 SQL Server 데이터베이스 엔진 제한됩니다. Resource Governor는 Analysis Services, Integration Services 및 Reporting Services에 사용할 수 없습니다.
  • 리소스 관리자는 여러 SQL Server 인스턴스에서 워크로드 모니터링 또는 워크로드 관리를 제공하지 않습니다.
  • 일부 OLTP 워크로드의 쿼리와 같이 매우 짧은 쿼리는 CPU 대역폭 컨트롤을 적용할 만큼 CPU를 충분히 오래 사용하지 않을 수 있습니다. 이렇게 하면 CPU 사용량 통계가 왜곡되고 CPU 리소스 거버넌스의 효율성이 제한될 수 있습니다.
  • 물리적 I/O를 제어하는 기능은 시스템 작업이 아닌 사용자 작업에만 적용됩니다. 시스템 작업은 트랜잭션 로그, 검사점 및 지연 쓰기 처리기 I/O를 수행합니다. 리소스 관리자는 사용자 물리적 읽기 I/O를 제어하지만 시스템 작업에서 수행하는 쓰기 I/O는 제어하지 않습니다.
  • internal 리소스 풀 및 워크로드 그룹에 대한 리소스 거버넌스 컨트롤은 수정할 수 없습니다.
  • 리소스 관리자는 인스턴스 수준에서 작동합니다. 포함된 가용성 그룹 있는 리소스 관리자는 해당되지 않습니다.

리소스 개념

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

  • 리소스 풀. 리소스 풀은 CPU, 메모리 및 I/O와 같은 서버의 물리적 리소스에 대한 컨테이너를 나타냅니다. internaldefault두 개의 기본 제공 리소스 풀이 항상 존재합니다. 리소스 관리자는 사용자 정의 리소스 풀도 지원합니다. 구성에 따라 리소스 풀의 리소스를 다른 풀과 공유하거나 예약할 수 있습니다. 자세한 내용은 Resource Governor 리소스 풀을 참조하십시오.
  • 워크로드 그룹 . 워크로드 그룹은 동일한 방식으로 분류되는 세션의 컨테이너를 나타냅니다. 워크로드 그룹은 세션 및 요청 리소스 소비에 대한 집계 모니터링을 허용하고 요청 정책을 정의합니다. 각 작업 그룹은 리소스 풀에 있습니다. internaldefault두 기본 제공 워크로드 그룹은 항상 존재하며 각각 internaldefault 리소스 풀에 매핑됩니다. 리소스 관리자는 사용자 정의 워크로드 그룹도 지원합니다. 자세한 내용은 Resource Governor 워크로드 그룹을 참고하세요.
  • 분류. 분류 프로세스는 사용자 지정 분류 논리를 사용하여 로그인 이름 또는 프로그램 이름과 같은 세션의 특성에 따라 들어오는 세션을 워크로드 그룹에 할당합니다. 세션이 워크로드 그룹으로 분류되면 해당 세션에서 실행되는 모든 요청에는 워크로드 그룹 정책이 적용됩니다. 분류자 함수라고 하는 스칼라 사용자 정의 함수를 작성하여 분류 논리를 정의합니다. 자세한 내용은 리소스 거버너 분류자 함수를 참조하세요.

참고 항목

리소스 관리자는 전용 DAC(관리자 연결)제어를 적용하지 않습니다. DAC 쿼리는 항상 internal 워크로드 그룹 및 리소스 풀에서 실행됩니다.

다음 그림에서는 리소스 관리자 구성 요소와 데이터베이스 엔진 내에서 서로의 관계를 보여 줍니다. 처리 관점에서 간소화된 흐름은 다음과 같습니다.

  • 세션(n의 세션 1)에 대한 연결이 들어오고 있습니다.
  • 세션은 기밀입니다.
  • 분류 결과를 사용하여 세션은 워크로드 그룹에 할당됩니다(예: Group 4).
  • 워크로드 그룹은 모든 요청에 정책을 적용하고 연결된 리소스 풀(예: Pool 2)을 사용합니다.
  • 리소스 풀은 애플리케이션에 필요한 리소스(예: Application 3)를 제공하고 제한합니다.

리소스 관리자 구성 요소 및 들어오는 세션의 처리를 보여 주는 다이어그램

리소스 관리자 작업

작업 설명 기사
구성 예제 보기 Resource Governor 구성 예제 및 모범 사례
리소스 관리자 활성화 리소스 관리자 사용하도록 설정
리소스 거버너 비활성화 리소스 거버너 사용 중지
리소스 풀 만들기, 변경 및 삭제 리소스 관리자 리소스 풀
워크로드 그룹 만들기, 변경, 이동 및 삭제 Resource Governor 워크로드 그룹
분류자 사용자 정의 함수 만들기 및 테스트 리소스 거버너 분류 함수
템플릿을 사용하여 리소스 관리자 구성 템플릿 사용하여 리소스 관리자 구성
리소스 관리자 속성 보기 리소스 관리자 속성 보기 및 수정