분석 플랫폼 시스템의 워크 로드 관리Workload management in Analytics Platform System

SQL Server PDW의 워크 로드 관리 기능을 사용 하 여 사용자와 관리자는 미리 설정 된 메모리 구성 및 동시성에 대 한 요청을 할당할 수 있습니다.SQL Server PDW's workload management capabilities allow users and administrators to assign requests to pre-set configurations of memory, and concurrency. 작업 관리를 사용 하 여 요청을 함으로써 하지 않고 적절 한 리소스를 요청에 포함 하 여 일관 되거나 혼합 된 작업의 성능을 향상 시킬 수 있습니다.Use workload management to improve performance of your workload, either consistent or mixed, by allowing requests to have the appropriate resources without starving any requests forever.

예를 들어 SQL Server PDW의 워크 로드 관리 기술을 사용 하 여 다음을 할 수 있습니다.For example, with the workload management techniques in SQL Server PDW, you could:

  • 많은 수의 리소스를 로드 작업에 할당 합니다.Allocate a large number of resources to a load job.

  • Columnstore 인덱스를 빌드하기 위한 추가 리소스를 지정 합니다.Specify more resources for building a columnstore index.

  • 속도가 느려지는 해시 조인 문제를 해결 하 여 더 많은 메모리가 필요한 경우이를 확인 하 고 더 많은 메모리를 제공 합니다.Troubleshoot a slow-performing hash join to see if it needs more memory, and then give it more memory.

워크 로드 관리 기본 사항Workload Management Basics

주요 용어Key Terms

워크로드 관리Workload Management
워크 로드 관리 는 동시 요청에 대 한 최상의 성능을 얻기 위해 시스템 리소스 사용률을 이해 하 고 조정 하는 기능입니다.Workload Management is the ability to understand and adjust system resource utilization in order to achieve the best performance for concurrent requests.

리소스 클래스Resource Class
SQL Server PDW에서 리소스 클래스 는 메모리 및 동시성에 대해 미리 할당 된 제한을 포함 하는 기본 제공 서버 역할입니다.In SQL Server PDW, a resource class is a built-in server role that has pre-assigned limits for memory and concurrency. SQL Server PDW은 요청을 전송 하는 로그인의 리소스 클래스 서버 역할 멤버 자격에 따라 요청에 리소스를 할당 합니다.SQL Server PDW allocates resources to requests according to the resource class server role membership of the login that submits the requests.

계산 노드에서 리소스 클래스의 구현은 SQL Server의 Resource Governor 기능을 사용 합니다.On the Compute nodes, the implementation of resource classes uses the Resource Governor feature in SQL Server. Resource Governor에 대 한 자세한 내용은 MSDN의 Resource Governor 를 참조 하십시오.For more information about Resource Governor, see Resource Governor on MSDN.

현재 리소스 사용률 이해Understand Current Resource Utilization

현재 실행 중인 요청에 대 한 시스템 리소스 사용률을 이해 하려면 SQL Server PDW 동적 관리 뷰를 사용 합니다.To understand system resource utilization for the currently running requests, use the SQL Server PDW dynamic management views. 예를 들어 Dmv를 사용 하 여 더 많은 메모리를 사용 하 여 느리게 실행 되는 큰 해시 조인이 이점을 얻을 수 있는지 파악할 수 있습니다.For example, you can use DMVs to understand if a slow-running large hash join could benefit by having more memory.

리소스 할당 조정Adjust Resource Allocations

리소스 사용률을 조정 하려면 요청을 제출 하는 로그인의 리소스 클래스 멤버 자격을 변경 합니다.To adjust resource utilization, change the resource class membership of the login that is submitting the request. 리소스 클래스 서버 역할의 이름은 mediumrc, largercxlargerc입니다.The resource class server roles are named mediumrc, largerc, and xlargerc. 중간, 대형 및 초대형 리소스 할당을 각각 나타냅니다.They represent medium, large, and extra large resource allocations respectively.

예를 들어 요청에 많은 양의 시스템 리소스를 할당 하려면 largerc 서버 역할에 요청을 제출 하는 로그인을 추가 합니다.For example, to allocate a large amount of system resources to a request, add the login that is submitting the request to the largerc server role. 다음 ALTER SERVER ROLE 문은 로그인 Anna을 largerc 서버 역할에 추가 합니다.The following ALTER SERVER ROLE statement adds the login Anna to the largerc server role.

ALTER SERVER ROLE largerc ADD MEMBER Anna;  

리소스 클래스 설명Resource Class Descriptions

다음 표에서는 리소스 클래스 및 해당 시스템 리소스 할당에 대해 설명 합니다.The following table describes the resource classes and their system resource allocations.

리소스 클래스Resource Class 요청 중요도Request Importance 최대 메모리 사용량 *Maximum Memory Usage* 동시성 슬롯 (최대값 = 32)Concurrency Slots (Maximum = 32) 설명Description
defaultdefault 중간Medium 400 MB400 MB 11 기본적으로 각 로그인은 적은 양의 메모리와 해당 요청에 대 한 동시성 리소스를 허용 합니다.By default, each login is allowed a small amount of memory, and concurrency resources for its requests.

리소스 클래스에 로그인을 추가 하면 새 클래스가 우선적으로 적용 됩니다.When a login is added to a resource class, the new class takes precedence. 모든 리소스 클래스에서 로그인을 삭제 하면 해당 로그인은 기본 리소스 할당으로 돌아갑니다.When a login is dropped from all resource classes, the login reverts back to the default resource allocation.
MediumRCMediumRC 중간Medium 1200 M B1200 MB 33 중간 리소스 클래스가 필요할 수 있는 요청의 예는 다음과 같습니다.Examples of requests that might need the medium resource class:

해시 조인이 많은 CTAS 작업CTAS operations that have large hash joins.

디스크로의 캐싱을 방지 하기 위해 더 많은 메모리가 필요한 작업을 선택 합니다.SELECT operations that need more memory to avoid caching to disk.

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

10-15 개의 열이 있는 작은 테이블에 대 한 클러스터형 columnstore 인덱스를 작성, 다시 작성 및 다시 구성 합니다.Building, rebuilding, and reorganizing clustered columnstore indexes for smaller tables that have 10-15 columns.
LargercLargerc 높음High 2.8 GB2.8 GB 77 대량 리소스 클래스가 필요할 수 있는 요청의 예는 다음과 같습니다.Examples of requests that might need the large resource class:

매우 큰 해시 조인이 있거나 큰 ORDER BY 또는 GROUP BY 절과 같은 대규모 집계를 포함 하는 매우 큰 CTAS 작업Very large CTAS operations that have huge hash joins, or contain large aggregations, such as large ORDER BY or GROUP BY clauses.

해시 조인과 같은 작업에 대해 매우 많은 양의 메모리가 필요한 작업 또는 ORDER BY 또는 GROUP BY 절과 같은 집계를 선택 합니다.SELECT operations that require very large amounts of memory for operations such as hash joins, or aggregations such as ORDER BY or GROUP BY clauses

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

10-15 개의 열이 있는 작은 테이블에 대 한 클러스터형 columnstore 인덱스를 작성, 다시 작성 및 다시 구성 합니다.Building, rebuilding, and reorganizing clustered columnstore indexes for smaller tables that have 10-15 columns.
xlargercxlargerc 높음High 8.4 GB8.4 GB 2222 추가 대형 리소스 클래스는 런타임에 추가 리소스 소비가 필요할 수 있는 요청에 대 한 것입니다.The extra large resource class is for requests that could require extra large resource consumption at run time.

*최대 메모리 사용량은 근사값입니다.*Maximum memory usage is an approximation.

요청 중요도Request Importance

요청 중요도는 계산 노드에서 실행 되는 SQL Server이 요청에 제공 하는 CPU 시간의 양에 매핑됩니다.The request importance maps to the amount of CPU time that SQL Server, running on the Compute nodes, will give to the requests. 우선 순위가 더 높은 요청은 더 많은 CPU 시간을 받습니다.Requests with higher priority receive more CPU time.

최대 메모리 사용량Maximum Memory Usage

최대 메모리 사용량은 요청에서 각 처리 공간 내에 사용할 수 있는 최대 메모리 양입니다.Maximum memory usage is the maximum amount of available memory a request can use within each processing space. 예를 들어 mediumrc 요청은 각 배포 내에서 처리 하는 데 최대 1200 MB를 사용할 수 있습니다.For example a mediumrc request can use up to 1200 MB for processing within each distribution. 대부분의 작업을 수행 하는 몇 가지 배포가 발생 하지 않도록 하기 위해 데이터가 왜곡 되지 않도록 하는 것도 중요 합니다.It is still important to ensure data is not skewed in order to avoid having a few distributions performing most of the work.

동시성 슬롯Concurrency Slots

1, 3, 7 및 22 동시성 슬롯을 할당 하는 목표는 대량 프로세스가 실행 중일 때 작은 프로세스를 차단 하지 않고 크고 작은 프로세스를 동시에 실행할 수 있도록 하는 것입니다.The goal of allocating 1, 3, 7, and 22 concurrency slots is to allow both large and small processes to run at the same time, without blocking small process when a large process is running. 예 SQL Server PDW를 들어 최대 32 개의 동시성 슬롯을 할당 하 여 1 개의 추가 대량 요청 (22 개 슬롯), 1 개의 대량 요청 (7 개 슬롯) 및 1 개의 중간 요청 (3 개 슬롯)을 동시에 실행할 수 있습니다.For example, SQL Server PDW can allocate maximum of 32 concurrency slots to run 1 extra large request (22 slots), 1 large request (7 slots), and 1 medium request (3 slots) at the same time.

동시 요청에 최대 32의 동시성 슬롯을 할당 하는 예제:Examples of allocating up to 32 concurrency slots to concurrent requests:

  • 28 슬롯 = 4 큼28 slots = 4 large

  • 30 개 슬롯 = 10medium30 slots = 10 medium

  • 32 슬롯 = 32 기본값32 slots = 32 default

  • 32 슬롯 = 1 매우 큼 + 1 큼 + 1 중간32 slots = 1 extra large + 1 large + 1 medium

  • 32 슬롯 = 2 큼 + 4 중간 + 6 기본값32 slots = 2 large + 4 medium + 6 default

6 개의 대량 요청이 SQL Server PDW 전송 된 다음 10 개의 기본 요청이 전송 된다고 가정 합니다.Suppose 6 large requests are submitted to SQL Server PDW, and then 10 default requests are submitted. SQL Server PDW는 다음과 같이 요청을 우선 순위 순서 대로 처리 합니다.SQL Server PDW will process the requests in priority order as follows:

  • 메모리를 사용할 수 있게 되 면 28 개의 동시성 슬롯을 할당 하 여 4 개의 대량 요청 처리를 시작 하 고 두 개의 대량 요청을 큐에 유지 합니다.Allocate 28 concurrency slots to start processing 4 large requests as memory becomes available, and keep 2 large requests in the queue.

  • 4 개의 동시성 슬롯을 할당 하 여 4 개의 기본 요청 처리를 시작 하 고 대기 큐에 6 개의 기본 요청을 유지 합니다.Allocate 4 concurrency slots to start processing 4 default requests and keep 6 default requests in the wait queue.

요청을 완료 하 고 동시성 슬롯을 사용할 수 있게 되 면 사용 가능한 리소스 및 우선 순위에 따라 남은 요청을 할당 SQL Server PDW 합니다.As requests finish and concurrency slots become available, SQL Server PDW will allocate the remaining requests according to available resources and priority. 예를 들어 동시성 슬롯이 7 개 열려 있는 경우 대기 중인 큰 요청은 중간 요청을 대기 하는 것 보다 7 개 슬롯의 우선 순위가 높습니다.For example, when there are 7 concurrency slots open, waiting large requests will have higher priority for the 7 slots than waiting medium requests. 6 개의 슬롯이 열리면 SQL Server PDW은 6 개 이상의 기본 크기 요청을 할당 합니다.If 6 slots open, then SQL Server PDW will allocate 6 more default-sized requests. 그러나 SQL Server PDW 요청을 실행 하려면 메모리 및 동시성 슬롯을 모두 사용할 수 있어야 합니다.However, memory and concurrency slots must all be available before SQL Server PDW allows a request to run.

각 리소스 클래스 내에서 요청은 FIFO (선입 선출) 순서 대로 실행 됩니다.Within each resource class, the requests run in first in first out (FIFO) order.

일반적인 주의 사항General Remarks

로그인이 둘 이상의 리소스 클래스의 멤버인 경우 리소스가 가장 많은 클래스가 우선적으로 적용 됩니다.If a login is a member of more than one resource class, the class with the most resources takes precedence.

리소스 클래스에서 로그인을 추가 하거나 삭제 하면 이후의 모든 요청에 대해 변경 내용이 즉시 적용 됩니다. 실행 중이거나 대기 중인 현재 요청은 영향을 받지 않습니다.When a login is added to or dropped from a resource class, the change takes effect immediately for all future requests; current requests that are running or waiting are not affected. 변경 내용을 발생 시키려면 로그인의 연결을 끊고 다시 연결 해야 합니다.The login does not need to disconnect and reconnect in order for the change to occur.

각 로그인에 대해 리소스 클래스 설정은 세션이 아닌 개별 문과 작업에 적용 됩니다.For each login, the resource class settings are applied to individual statements and operations, and not to the session.

SQL Server PDW 문을 실행 하기 전에 요청에 필요한 동시성 슬롯을 가져오려고 시도 합니다.Before SQL Server PDW runs a statement, it tries to acquire the concurrency slots needed for the request. 충분 한 동시성 슬롯을 획득할 수 없는 경우 SQL Server PDW은 요청을 실행 대기 중 상태로 이동 합니다.If it cannot acquire enough concurrency slots, SQL Server PDW moves the request into a waiting-to-be-executed state. 요청에 이미 할당 된 모든 리소스 시스템은 시스템으로 다시 반환 됩니다.All resources system that were already allocated to the request are returned back to the system.

대부분의 SQL 문에는 항상 기본 리소스 할당이 필요 하므로 리소스 클래스에 의해 제어 되지 않습니다.Most of the SQL statements always need the default resource allocations, and therefore are not controlled by resource classes. 예를 들어 CREATE login은 적은 양의 리소스만 필요 하며, CREATE LOGIN을 호출 하는 로그인이 리소스 클래스의 멤버인 경우에도 기본 리소스가 할당 됩니다.For example, CREATE LOGIN only needs a small amount of resources, and is allocated the default resources even if the login calling CREATE LOGIN is a member of a resource class. 예를 들어 Anna가 largerc 리소스 클래스의 멤버이 고 CREATE LOGIN 문을 전송 하는 경우 CREATE LOGIN 문은 기본 리소스 수로 실행 됩니다.For example, if Anna is a member of the largerc resource class and she submits a CREATE LOGIN statement, the CREATE LOGIN statement will run with the default number of resources.

리소스 클래스에 의해 제어 되는 SQL 문 및 작업:SQL statements and operations governed by resource classes:

  • ALTER INDEX REBUILDALTER INDEX REBUILD

  • ALTER INDEX REORGANIZEALTER INDEX REORGANIZE

  • ALTER TABLE REBUILDALTER TABLE REBUILD

  • 클러스터형 인덱스 만들기CREATE CLUSTERED INDEX

  • CREATE CLUSTERED COLUMNSTORE INDEXCREATE CLUSTERED COLUMNSTORE INDEX

  • CREATE TABLE AS SELECTCREATE TABLE AS SELECT

  • CREATE REMOTE TABLE AS SELECTCREATE REMOTE TABLE AS SELECT

  • Dwloader를 사용 하 여 데이터를 로드 하는 중입니다.Loading data with dwloader.

  • INSERT-SELECTINSERT-SELECT

  • UPDATEUPDATE

  • DeleteDELETE

  • 더 많은 계산 노드를 사용 하 여 어플라이언스로 복원할 때 데이터베이스를 복원 합니다.RESTORE DATABASE when restoring into an appliance with more Compute nodes.

  • DMV 전용 쿼리를 제외 하 고 선택SELECT, excluding DMV-only queries

제한 사항Limitations and Restrictions

리소스 클래스는 메모리 및 동시성 할당을 제어 합니다.The resource classes govern memory and concurrency allocations. 이러한 작업은 입/출력 작업을 제어 하지 않습니다.They do not govern input/output operations.

메타데이터Metadata

리소스 클래스 및 리소스 클래스 멤버에 대 한 정보를 포함 하는 Dmv입니다.DMVs that contain information about resource classes and resource class members.

요청 상태와 필요한 리소스에 대 한 정보를 포함 하는 Dmv:DMVs that contain information about the state of requests and the resources they require:

계산 노드의 SQL Server Dmv에서 노출 되는 관련 시스템 뷰입니다.Related system views exposed from the SQL Server DMVs on the Compute nodes. MSDN의 이러한 Dmv에 대 한 링크는 SQL Server 동적 관리 뷰 를 참조 하세요.See SQL Server Dynamic Management Views for links to these DMVs on MSDN.

  • sys.dm_pdw_nodes_resource_governor_resource_poolssys.dm_pdw_nodes_resource_governor_resource_pools

  • sys.dm_pdw_nodes_resource_governor_workload_groupssys.dm_pdw_nodes_resource_governor_workload_groups

  • sys.dm_pdw_nodes_resource_governor_resource_poolssys.dm_pdw_nodes_resource_governor_resource_pools

  • sys. dm_pdw_nodws_resource_governor_workload_groupssys.dm_pdw_nodws_resource_governor_workload_groups

  • sys.dm_pdw_nodes_exec_sessionssys.dm_pdw_nodes_exec_sessions

  • sys.dm_pdw_nodes_exec_requestssys.dm_pdw_nodes_exec_requests

  • sys.dm_pdw_nodes_exec_query_memory_grantssys.dm_pdw_nodes_exec_query_memory_grants

  • sys.dm_pdw_nodes_exec_query_resource_semaphoressys.dm_pdw_nodes_exec_query_resource_semaphores

  • sys.dm_pdw_nodes_os_memory_brokerssys.dm_pdw_nodes_os_memory_brokers

  • sys.dm_pdw_nodes_os_memory_cache_entriessys.dm_pdw_nodes_os_memory_cache_entries

  • sys.dm_pdw_nodes_exec_cached_planssys.dm_pdw_nodes_exec_cached_plans

작업 관리 작업Workload Management Tasks