리소스 관리자 상태

SQL Server에서 리소스 관리자는 사용과 사용 안 함의 두 가지 상태를 갖습니다. 이러한 상태는 구성을 변경할 때 기본 작업뿐 아니라 작업 처리에도 영향을 줍니다. 이 항목에서는 다음과 같이 경우에 따라 리소스 관리자 상태가 어떻게 설정되고 어떤 동작이 발생하는지에 대해 설명합니다.

  • 리소스 관리자가 설치될 때의 초기 구성 및 상태

  • 리소스 관리자를 사용하거나 사용하지 않도록 설정합니다.

  • 리소스 관리자 구성을 변경합니다.

초기 구성

리소스 관리자를 설치하면 다음과 같은 작업 그룹과 해당 리소스 풀이 만들어집니다.

  • 내부 그룹 및 내부 풀

  • 기본 그룹 및 기본 풀

이때 리소스 관리자는 사용할 수 없습니다.

리소스 관리자 사용 또는 사용 안 함

다음은 리소스 관리자를 사용하거나 사용하지 않도록 설정할 때 일반적으로 수행되는 동작입니다.

리소스 관리자 사용

리소스 관리자를 사용하도록 설정하려면 ALTER RESOURCE GOVERNOR RECONFIGURE를 실행합니다. 리소스 관리자를 사용하도록 설정하면 다음과 같은 결과가 나타납니다.

  • 작업 그룹에 해당 작업을 할당할 수 있도록 새 연결에 대해 분류자 함수가 실행됩니다.

  • 리소스 관리자 구성에 지정된 리소스 제한이 강제로 적용됩니다.

  • 리소스 관리자를 사용하도록 설정하기 전부터 있던 요청이 리소스 관리자가 사용되지 않을 때 수행된 변경 내용의 영향을 받습니다.

리소스 관리자 사용 안 함

리소스 관리자를 사용하지 않도록 설정하려면 ALTER RESOURCE GOVERNOR DISABLE을 실행합니다. 리소스 관리자를 사용하지 않도록 설정하면 다음과 같은 결과가 나타납니다.

  • 분류자 함수가 실행되지 않습니다.

  • 모든 새 연결이 자동으로 기본 그룹으로 분류됩니다.

  • 시스템에서 시작한 요청이 내부 작업 그룹으로 분류됩니다.

  • 기존의 모든 작업 그룹 및 리소스 풀 설정이 해당 기본값으로 다시 설정됩니다. 이 경우 제한에 도달해도 이벤트가 발생하지 않습니다.

  • 정상적인 시스템 모니터링은 영향을 받지 않습니다.

  • 리소스 관리자를 사용하지 않을 때 리소스 관리자 구성을 변경할 수는 있지만 리소스 관리자를 사용하도록 설정할 때까지는 변경 내용이 적용되지 않습니다.

  • SQL Server를 다시 시작할 때 리소스 관리자는 구성을 로드하지 않고 대신 기본 및 내부 그룹과 풀만 사용합니다.

리소스 관리자 구성 변경

리소스 관리자 구성 변경 내용은 즉시 적용되지 않습니다. 구성 변경은 다음 두 단계로 수행됩니다.

  1. 적절한 ALTER 문을 실행하여 리소스 풀 또는 작업 그룹 설정을 변경합니다. 이렇게 하면 구성 메타데이터가 업데이트됩니다.

  2. ALTER RESOURCE GOVERNOR 문을 실행합니다. 이렇게 하면 업데이트된 메타데이터가 메모리 내 구성에 복사됩니다. 다음 표에서는 구성 변경 내용이 리소스 관리자 세션에 적용되고 표시되는 시기에 대해 설명합니다.

구성 요소

설명

사용자 정의 분류

새 세션이 연결될 때마다 변경 내용이 적용됩니다.

리소스 풀

장기 실행 세션이 변경 내용의 영향을 받을 수 있으므로 변경 내용이 적용되기 전에 장기 실행 세션이 종료될 수 있습니다.

작업 그룹

현재 세션은 변경 내용의 영향을 받지 않지만 새 연결은 영향을 받습니다.

리소스 관리자 DDL 문을 실행할 때의 일반적인 세션 동작 외에도 리소스 풀 또는 작업 그룹의 개별 설정에 예측 가능한 결과가 포함되고 이러한 설정을 변경하면 처리에 구체적인 영향을 줍니다.

리소스 풀 설정

리소스 풀을 구성하는 데 네 가지 설정을 사용할 수 있습니다. 이러한 설정은 다음과 같습니다.

  • 최소 및 최대 CPU 사용 비율

  • 최소 및 최대 메모리 사용 비율

리소스 풀 구성에 변경 내용을 적용하면 활성 또는 대기 중인 요청을 처리하는 전환 기간이 발생합니다. 다음 표에서는 리소스 풀 설정에 변경 내용을 적용할 때의 세션 요구 사항과 세션 동작에 대해 설명합니다.

설정

동작

설명

최소 백분율

증가 또는 감소

  • 증가: 다른 모든 리소스 풀이 해당 유효한 최대 설정으로 감소합니다. 모든 최소 설정이 더해져 100%가 되면 다른 리소스 풀에 있는 최소 설정을 일부 줄인 다음 현재 리소스 풀의 최소 설정을 올려야 합니다.

  • 감소: 유효한 최대값이 최소값과 같을 경우 리소스 풀에서 할당되지 않은 메모리가 나오고 큐에 대기 중인 요청이 실패할 수 있습니다. 할당된 메모리는 활성 요청이 완료될 때까지 리소스 풀에서 나오지 않습니다.

최대 백분율

증가 또는 감소

  • 증가: 설정을 변경해도 아무 동작도 발생하지 않습니다.

  • 감소: 새 값이 실제 사용량보다 크면 아무 동작도 발생하지 않고, 새 값이 실제 사용량보다 작으면 전환 기간이 발생합니다. 기존 요청은 변경 작업을 수행할 수 있기 전에 완료되고 새 요청은 실패할 수 있습니다.

작업 그룹 설정

작업 그룹을 구성하는 데 일곱 가지 설정을 사용할 수 있습니다. 이러한 설정은 다음과 같습니다.

  • 요청에 대한 최대 메모리 할당

  • 요청에 대한 최대 CPU 시간

  • 요청에 대한 리소스 제한 시간

  • 요청의 상대적 중요도 설정

  • 요청 수에 대한 작업 그룹 제한

  • 최대 병렬 처리 수준

  • 지정된 리소스 풀

설정

동작

설명

최대 메모리

증가 또는 감소

  • 증가: 활성 쿼리에는 영향을 주지 않으며, 이러한 활성 쿼리로 사용 가능한 메모리가 있을 경우 메모리를 더 확보할 수 있습니다.

  • 감소: 활성 쿼리는 영향을 받지 않지만 새 요청의 메모리는 줄어듭니다.

최대 CPU 시간

증가 또는 감소

  • 증가: 활성 쿼리에는 영향을 주지 않습니다.

  • 감소: 제한을 초과한 쿼리에 대해 이벤트를 발생시키지만 이러한 쿼리는 계속 실행됩니다.

리소스 제한 시간

증가 또는 감소

큐에 이미 대기 중인 쿼리는 영향을 받지 않습니다. 새 쿼리는 새 설정을 사용합니다.

중요도

증가 또는 감소

작업 그룹에 있는 쿼리에 대한 CPU 배포에만 영향을 줍니다.

최대 요청 수

증가 또는 감소

  • 증가: 기존 쿼리에는 영향을 주지 않습니다.

  • 감소: 기존 쿼리는 영향을 받지 않지만 새 쿼리는 대기하다가 시간 초과될 수 있습니다.

최대 병렬 처리 수준

증가 또는 감소

새 쿼리의 컴파일 및 실행에만 영향을 줍니다.

지정된 리소스 풀

변경

활성 요청은 기존 리소스 풀과 해당 설정을 계속 사용하고 새 요청은 새 풀과 해당 설정을 사용합니다.

리소스 관리자 설정

리소스 관리자 구성을 변경하거나 리소스 관리자의 현재 상태를 변경하는 것 외에도 ALTER RESOURCE GOVERNOR RECONFIGURE 문을 사용하면 분류자 함수를 만들거나 변경할 수 있습니다.

새 분류자 함수를 등록하면 새 연결을 다른 작업 그룹에 라우팅하는 데 사용되는 규칙이 변경됩니다. 이 변경 내용은 이미 분류된 쿼리에는 영향을 주지 않고 새 쿼리에만 영향을 줍니다.