Analytics Platform System의 워크로드 관리

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

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

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

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

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

워크로드 관리 기본 사항

주요 용어

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

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

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

현재 리소스 사용률 이해

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

리소스 할당 조정

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

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

ALTER SERVER ROLE largerc ADD MEMBER Anna;  

리소스 클래스 설명

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

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

리소스 클래스에 로그인을 추가 하면 새 클래스가 우선적으로 적용 됩니다. 모든 리소스 클래스에서 로그인을 삭제 하면 해당 로그인은 기본 리소스 할당으로 돌아갑니다.
MediumRC 중간 1200 M B 3 중간 리소스 클래스가 필요할 수 있는 요청의 예는 다음과 같습니다.

해시 조인이 많은 CTAS 작업

디스크로의 캐싱을 방지 하기 위해 더 많은 메모리가 필요한 작업을 선택 합니다.

클러스터형 columnstore 인덱스에 데이터를 로드 하는 중입니다.

10-15 개의 열이 있는 작은 테이블에 대 한 클러스터형 columnstore 인덱스를 작성, 다시 작성 및 다시 구성 합니다.
Largerc 높음 2.8 GB 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 개의 대량 요청 처리를 시작 하 고 두 개의 대량 요청을 큐에 유지 합니다.

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

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

각 리소스 클래스 내에서 요청은 FIFO (선입 선출) 순서 대로 실행 됩니다.

일반적인 주의 사항

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

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

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

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

  • CREATE REMOTE TABLE AS 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

워크로드 관리 작업