분석 플랫폼 시스템의 워크로드 관리

SQL Server PDW의 워크로드 관리 기능을 사용하면 사용자와 관리자가 메모리의 사전 설정 구성 및 동시성에 대한 요청을 할당할 수 있습니다. 워크로드 관리를 사용하여 요청이 요청을 영원히 굶주리지 않고 적절한 리소스를 가질 수 있도록 하여 일관되거나 혼합된 워크로드의 성능을 향상시킵니다.

예를 들어 SQL Server PDW의 워크로드 관리 기술을 사용하면 다음을 수행할 수 있습니다.

  • 로드 작업에 많은 수의 리소스를 할당합니다.

  • columnstore 인덱스를 작성하기 위한 추가 리소스를 지정합니다.

  • 성능이 느린 해시 조인 문제를 해결하여 더 많은 메모리가 필요한지 확인하고 더 많은 메모리를 제공합니다.

워크로드 관리 기본 사항

주요 용어

워크로드 관리
워크로드 관리는 동시 요청에 대한 최상의 성능을 달성하기 위해 시스템 리소스 사용률을 이해하고 조정하는 기능입니다.

리소스 클래스
SQL Server PDW 에서 리소스 클래스 는 메모리 및 동시성에 대해 미리 할당된 제한이 있는 기본 제공 서버 역할입니다. SQL Server PDW는 요청을 제출하는 로그인의 리소스 클래스 서버 역할 멤버 자격에 따라 요청에 리소스를 할당합니다.

컴퓨팅 노드에서 리소스 클래스의 구현은 SQL Server의 Resource Governor 기능을 사용합니다. 리소스 관리자에 대한 자세한 내용은 MSDN의 Resource Governor를 참조하세요.

현재 리소스 사용률 이해

현재 실행 중인 요청에 대한 시스템 리소스 사용률을 이해하려면 SQL Server PDW 동적 관리 뷰를 사용합니다. 예를 들어 DMV를 사용하여 느리게 실행되는 큰 해시 조인이 더 많은 메모리를 보유하여 이점을 얻을 수 있는지 이해할 수 있습니다.

리소스 할당 조정

리소스 사용률을 조정하려면 요청을 제출하는 로그인의 리소스 클래스 멤버 자격을 변경합니다. 리소스 클래스 서버 역할의 이름은 mediumrc, largercxlargerc입니다. 각각 중간, 대형 및 초대형 리소스 할당을 나타냅니다.

예를 들어 요청에 많은 양의 시스템 리소스를 할당하려면 더 큰 서버 역할에 요청을 제출하는 로그인을 추가합니다. 다음 ALTER SERVER ROLE 문은 더 큰 서버 역할에 로그인 Anna를 추가합니다.

ALTER SERVER ROLE largerc ADD MEMBER Anna;  

리소스 클래스 설명

다음 표에서는 리소스 클래스 및 해당 시스템 리소스 할당에 대해 설명합니다.

리소스 클래스 요청 중요도 최대 메모리 사용량* 동시성 슬롯(최대 = 32) 설명
default Medium 400MB 6 기본적으로 각 로그인에는 소량의 메모리와 해당 요청에 대한 동시성 리소스가 허용됩니다.

리소스 클래스에 로그인이 추가되면 새 클래스가 우선합니다. 모든 리소스 클래스에서 로그인이 삭제되면 로그인은 기본 리소스 할당으로 되돌아갑니다.
MediumRC 중간 1200MB 3 중간 리소스 클래스가 필요할 수 있는 요청의 예:

큰 해시 조인이 있는 CTAS 작업입니다.

디스크에 캐싱하지 않도록 메모리가 더 필요한 SELECT 작업입니다.

클러스터형 columnstore 인덱스에 데이터 로드

열이 10~15개인 작은 테이블에 대해 클러스터형 columnstore 인덱스를 빌드, 다시 빌드 및 다시 구성합니다.
Largerc 높음 2.8GB 7 대규모 리소스 클래스가 필요할 수 있는 요청의 예:

대규모 해시 조인이 있거나 큰 ORDER BY 또는 GROUP BY 절과 같은 큰 집계를 포함하는 매우 큰 CTAS 작업입니다.

해시 조인과 같은 작업 또는 ORDER BY 또는 GROUP BY 절과 같은 집계에 매우 많은 양의 메모리가 필요한 SELECT 작업

클러스터형 columnstore 인덱스에 데이터 로드

열이 10~15개인 작은 테이블에 대해 클러스터형 columnstore 인덱스를 빌드, 다시 빌드 및 다시 구성합니다.
xlargerc 높음 8.4GB 22 초대형 리소스 클래스는 런타임에 추가적인 대규모 리소스 사용이 필요할 수 있는 요청에 대한 것입니다.

*최대 메모리 사용량은 근사치입니다.

요청 중요도

요청 중요도는 컴퓨팅 노드에서 실행되는 SQL Server가 요청에 제공할 CPU 시간에 매핑됩니다. 우선 순위가 높은 요청은 더 많은 CPU 시간을 받습니다.

최대 메모리 사용량

최대 메모리 사용량은 요청이 각 처리 공간 내에서 사용할 수 있는 최대 사용 가능한 메모리 양입니다. 예를 들어 mediumrc 요청은 각 배포 내에서 처리에 최대 1200MB를 사용할 수 있습니다. 대부분의 작업을 수행하는 몇 가지 배포를 방지하기 위해 데이터가 왜곡되지 않도록 하는 것이 여전히 중요합니다.

동시성 슬롯

1, 3, 7 및 22 동시성 슬롯을 할당하는 목표는 대규모 프로세스가 실행될 때 작은 프로세스를 차단하지 않고 크고 작은 프로세스를 동시에 실행할 수 있도록 하는 것입니다. 예를 들어 SQL Server PDW는 최대 32개의 동시성 슬롯을 할당하여 1개의 추가 큰 요청(22개 슬롯), 1개의 큰 요청(7개 슬롯) 및 1개의 중간 요청(3개의 슬롯)을 동시에 실행할 수 있습니다.

동시 요청에 최대 32개의 동시성 슬롯을 할당하는 예제:

  • 슬롯 28개 = 4개 큰 슬롯

  • 슬롯 30개 = 중간 크기 10개

  • 슬롯 32개 = 기본값 32개

  • 슬롯 32개 = 초대형 1개 + 큰 슬롯 1개 + 중간 크기 1개

  • 슬롯 32개 = 큰 슬롯 2개 + 중간 크기 4개 + 기본값 6개

6개의 큰 요청이 SQL Server PDW에 제출된 다음 10개의 기본 요청이 제출되었다고 가정합니다. SQL Server PDW는 다음과 같이 우선 순위 순서로 요청을 처리합니다.

  • 28개의 동시성 슬롯을 할당하여 메모리를 사용할 수 있게 되면 4개의 큰 요청 처리를 시작하고 2개의 큰 요청을 큐에 유지합니다.

  • 4개의 동시성 슬롯을 할당하여 4개의 기본 요청 처리를 시작하고 6개의 기본 요청을 대기 큐에 유지합니다.

요청이 완료되고 동시성 슬롯을 사용할 수 있게 되면 SQL Server PDW는 사용 가능한 리소스 및 우선 순위에 따라 나머지 요청을 할당합니다. 예를 들어 7개의 동시성 슬롯이 열려 있는 경우 큰 요청을 기다리는 경우 중간 요청을 기다리는 것보다 7개 슬롯에 대한 우선 순위가 더 높습니다. 6개의 슬롯이 열리면 SQL Server PDW는 기본 크기 요청 6개 이상을 할당합니다. 그러나 SQL Server PDW가 요청을 실행하도록 허용하기 전에 메모리 및 동시성 슬롯을 모두 사용할 수 있어야 합니다.

각 리소스 클래스 내에서 요청은 FIFO(First out) 순서로 먼저 실행됩니다.

일반적인 주의 사항

로그인이 둘 이상의 리소스 클래스의 멤버인 경우 리소스가 가장 많은 클래스가 우선합니다.

리소스 클래스에 로그인을 추가하거나 리소스 클래스에서 삭제하면 변경 내용이 향후 모든 요청에 즉시 적용됩니다. 실행 중이거나 대기 중인 현재 요청은 영향을 받지 않습니다. 변경이 수행되려면 로그인의 연결을 끊고 다시 연결할 필요가 없습니다.

각 로그인에 대해 리소스 클래스 설정은 세션이 아닌 개별 문 및 작업에 적용됩니다.

SQL Server PDW는 문을 실행하기 전에 요청에 필요한 동시성 슬롯을 획득하려고 시도합니다. 충분한 동시성 슬롯을 획득할 수 없는 경우 SQL Server PDW는 요청을 실행 대기 상태로 이동합니다. 요청에 이미 할당된 모든 리소스 시스템은 시스템에 다시 반환됩니다.

대부분의 SQL 문은 항상 기본 리소스 할당이 필요하므로 리소스 클래스에 의해 제어되지 않습니다. 예를 들어 CREATE LOGIN에는 소량의 리소스만 필요하며 CREATE LOGIN을 호출하는 로그인이 리소스 클래스의 멤버인 경우에도 기본 리소스가 할당됩니다. 예를 들어 Anna가 largerc 리소스 클래스의 멤버이고 CREATE LOGIN 문을 제출하는 경우 CREATE LOGIN 문은 기본 리소스 수로 실행됩니다.

리소스 클래스에서 관리하는 SQL 문 및 작업:

  • ALTER INDEX REBUILD

  • ALTER INDEX REORGANIZE

  • ALTER TABLE REBUILD

  • 클러스터형 인덱스 만들기

  • CREATE CLUSTERED COLUMNSTORE INDEX

  • CREATE TABLE AS SELECT

  • SELECT로 원격 테이블 만들기

  • dwloader를 사용하여 데이터 로드

  • INSERT-SELECT

  • UPDATE

  • Delete

  • 더 많은 컴퓨팅 노드가 있는 어플라이언스로 복원할 때 RESTORE DATABASE.

  • SELECT( DMV 전용 쿼리 제외)

제한 사항

리소스 클래스는 메모리 및 동시성 할당을 제어합니다. 입력/출력 작업은 제어하지 않습니다.

메타데이터

리소스 클래스 및 리소스 클래스 멤버에 대한 정보를 포함하는 DMV입니다.

요청 상태 및 필요한 리소스에 대한 정보가 포함된 DMV:

컴퓨팅 노드의 SQL Server DMV에서 노출되는 관련 시스템 뷰입니다. MSDN에서 이러한 DMV에 대한 링크는 SQL Server 동적 관리 뷰를 참조하세요.

  • sys.dm_pdw_nodes_resource_governor_resource_pools

  • sys.dm_pdw_nodes_resource_governor_workload_groups

  • sys.dm_pdw_nodes_resource_governor_resource_pools

  • sys.dm_pdw_nodws_resource_governor_workload_groups

  • sys.dm_pdw_nodes_exec_sessions

  • sys.dm_pdw_nodes_exec_requests

  • sys.dm_pdw_nodes_exec_query_memory_grants

  • sys.dm_pdw_nodes_exec_query_resource_semaphores

  • sys.dm_pdw_nodes_os_memory_brokers

  • sys.dm_pdw_nodes_os_memory_cache_entries

  • sys.dm_pdw_nodes_exec_cached_plans

관련 작업

워크로드 관리 작업