리소스 관리자

적용 대상:SQL ServerAzure SQL Managed Instance

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

참고 항목

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

리소스 관리자의 이점

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

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

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

  • 여러 클라이언트 작업을 처리하는 단일 SQL Server 인스턴스에서 다중 테넌트 지원 및 리소스 격리를 제공합니다. 즉, 서버에서 사용 가능한 리소스를 워크로드 간에 나누고 워크로드가 리소스를 위해 경쟁할 때 발생할 수 있는 문제를 최소화할 수 있습니다.

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

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

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

리소스 관리자 제약 사항

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

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

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

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

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

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

리소스 개념

다음 세 가지 개념은 Resource Governor를 이해하고 사용하는 데 기본적인 개념입니다.

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

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

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

참고 항목

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

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

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

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

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

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

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

Resource Governor Functional Components

리소스 관리자 태스크

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

참고 항목

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