Administración de cargas de trabajo en Analytics Platform SystemWorkload management in Analytics Platform System

Las capacidades de administración de cargas de trabajo de PDW de SQL Server permiten a los usuarios y administradores asignar solicitudes a configuraciones predefinidas de memoria y simultaneidad.SQL Server PDW's workload management capabilities allow users and administrators to assign requests to pre-set configurations of memory, and concurrency. Use la administración de cargas de trabajo para mejorar el rendimiento de la carga de trabajo, ya sea coherente o mixta, permitiendo que las solicitudes tengan los recursos adecuados sin privar las solicitudes de manera indefinida.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.

Por ejemplo, con las técnicas de administración de cargas de trabajo en PDW de SQL Server, puede:For example, with the workload management techniques in SQL Server PDW, you could:

  • Asigne un gran número de recursos a un trabajo de carga.Allocate a large number of resources to a load job.

  • Especifique más recursos para crear un índice de almacén de columnas.Specify more resources for building a columnstore index.

  • Solucionar problemas de una combinación hash de rendimiento lento para ver si necesita más memoria y, a continuación, asignarle más memoria.Troubleshoot a slow-performing hash join to see if it needs more memory, and then give it more memory.

Aspectos básicos de la administración de cargas de trabajoWorkload Management Basics

Términos claveKey Terms

Administración de cargas de trabajoWorkload Management
La Administración de cargas de trabajo es la capacidad de comprender y ajustar el uso de recursos del sistema para lograr el mejor rendimiento para las solicitudes simultáneas.Workload Management is the ability to understand and adjust system resource utilization in order to achieve the best performance for concurrent requests.

Clase de recursoResource Class
En PDW de SQL Server, una clase de recurso es un rol de servidor integrado que tiene límites asignados previamente para la memoria y la simultaneidad.In SQL Server PDW, a resource class is a built-in server role that has pre-assigned limits for memory and concurrency. PDW de SQL Server asigna recursos a las solicitudes según la pertenencia al rol de servidor de clase de recurso del inicio de sesión que envía las solicitudes.SQL Server PDW allocates resources to requests according to the resource class server role membership of the login that submits the requests.

En los nodos de proceso, la implementación de clases de recursos utiliza la característica Resource Governor en SQL Server.On the Compute nodes, the implementation of resource classes uses the Resource Governor feature in SQL Server. Para obtener más información acerca de Resource Governor, vea Resource Governor en MSDN.For more information about Resource Governor, see Resource Governor on MSDN.

Comprender el uso de recursos actualUnderstand Current Resource Utilization

Para comprender el uso de recursos del sistema para las solicitudes que se están ejecutando actualmente, use el PDW de SQL Server vistas de administración dinámica.To understand system resource utilization for the currently running requests, use the SQL Server PDW dynamic management views. Por ejemplo, puede usar DMV para saber si una combinación de hash grande de ejecución lenta podría beneficiarse de una mayor cantidad de memoria.For example, you can use DMVs to understand if a slow-running large hash join could benefit by having more memory.

Ajustar asignaciones de recursosAdjust Resource Allocations

Para ajustar el uso de recursos, cambie la pertenencia a la clase de recurso del inicio de sesión que envía la solicitud.To adjust resource utilization, change the resource class membership of the login that is submitting the request. Los roles de servidor de clase de recurso se denominan mediumrc, largercy xlargerc.The resource class server roles are named mediumrc, largerc, and xlargerc. Representan asignaciones de recursos de tamaño medio, grande y extra, respectivamente.They represent medium, large, and extra large resource allocations respectively.

Por ejemplo, para asignar una gran cantidad de recursos del sistema a una solicitud, agregue el inicio de sesión que envía la solicitud al rol de servidor 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. La siguiente instrucción ALTER SERVER ROLE agrega el inicio de sesión Anna al rol de servidor largerc.The following ALTER SERVER ROLE statement adds the login Anna to the largerc server role.

ALTER SERVER ROLE largerc ADD MEMBER Anna;  

Descripciones de clases de recursosResource Class Descriptions

En la tabla siguiente se describen las clases de recursos y sus asignaciones de recursos del sistema.The following table describes the resource classes and their system resource allocations.

Clase de recursoResource Class Importancia de la solicitudRequest Importance Uso máximo de memoria *Maximum Memory Usage* Espacios de simultaneidad (máximo = 32)Concurrency Slots (Maximum = 32) DescripciónDescription
defaultdefault MediaMedium 400 MB400 MB 11 De forma predeterminada, se permite a cada inicio de sesión una pequeña cantidad de memoria y recursos de simultaneidad para sus solicitudes.By default, each login is allowed a small amount of memory, and concurrency resources for its requests.

Cuando se agrega un inicio de sesión a una clase de recurso, la nueva clase tiene prioridad.When a login is added to a resource class, the new class takes precedence. Cuando se quita un inicio de sesión de todas las clases de recursos, el inicio de sesión vuelve a la asignación de recursos predeterminada.When a login is dropped from all resource classes, the login reverts back to the default resource allocation.
MediumRCMediumRC MediaMedium 1200 MB1200 MB 33 Ejemplos de solicitudes que podrían necesitar la clase de recursos Medium:Examples of requests that might need the medium resource class:

Operaciones CTAS que tienen combinaciones hash de gran tamaño.CTAS operations that have large hash joins.

Seleccione operaciones que necesiten más memoria para evitar el almacenamiento en caché en disco.SELECT operations that need more memory to avoid caching to disk.

Carga de datos en índices de almacén de columnas en clúster.Loading data into clustered columnstore indexes.

Compilar, recompilar y reorganizar índices de almacén de columnas en clúster para tablas más pequeñas que tienen 10-15 columnas.Building, rebuilding, and reorganizing clustered columnstore indexes for smaller tables that have 10-15 columns.
LargercLargerc AltoHigh 2,8 GB2.8 GB 77 Ejemplos de solicitudes que podrían necesitar la clase de recursos grandes:Examples of requests that might need the large resource class:

Operaciones CTAS muy grandes que tienen combinaciones de hash enormes o que contienen agregaciones de gran tamaño, como las cláusulas ORDER BY o GROUP BY de gran tamaño.Very large CTAS operations that have huge hash joins, or contain large aggregations, such as large ORDER BY or GROUP BY clauses.

Seleccione operaciones que requieran grandes cantidades de memoria para operaciones como combinaciones hash o agregaciones como cláusulas ORDER BY o 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

Carga de datos en índices de almacén de columnas en clúster.Loading data into clustered columnstore indexes.

Compilar, recompilar y reorganizar índices de almacén de columnas en clúster para tablas más pequeñas que tienen 10-15 columnas.Building, rebuilding, and reorganizing clustered columnstore indexes for smaller tables that have 10-15 columns.
xlargercxlargerc AltoHigh 8,4 GB8.4 GB 2222 La clase de recursos extra grande es para las solicitudes que podrían requerir un mayor consumo de recursos en tiempo de ejecución.The extra large resource class is for requests that could require extra large resource consumption at run time.

*El uso máximo de memoria es una aproximación.*Maximum memory usage is an approximation.

Importancia de la solicitudRequest Importance

La importancia de la solicitud se asigna a la cantidad de tiempo de CPU que SQL Server, que se ejecuta en los nodos de proceso, proporcionará a las solicitudes.The request importance maps to the amount of CPU time that SQL Server, running on the Compute nodes, will give to the requests. Las solicitudes con mayor prioridad reciben más tiempo de CPU.Requests with higher priority receive more CPU time.

Uso máximo de memoriaMaximum Memory Usage

El uso de memoria máximo es la cantidad máxima de memoria disponible que puede usar una solicitud dentro de cada espacio de procesamiento.Maximum memory usage is the maximum amount of available memory a request can use within each processing space. Por ejemplo, una solicitud mediumrc puede usar hasta 1200 MB para el procesamiento dentro de cada distribución.For example a mediumrc request can use up to 1200 MB for processing within each distribution. Todavía es importante asegurarse de que los datos no se sesgan con el fin de evitar que algunas distribuciones realicen la mayor parte del trabajo.It is still important to ensure data is not skewed in order to avoid having a few distributions performing most of the work.

Espacios de simultaneidadConcurrency Slots

El objetivo de asignar 1, 3, 7 y 22 espacios de simultaneidad es permitir que los procesos grandes y pequeños se ejecuten al mismo tiempo, sin bloquear el proceso pequeño cuando se está ejecutando un proceso grande.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. Por ejemplo, PDW de SQL Server puede asignar un máximo de 32 ranuras de simultaneidad para ejecutar una solicitud extra grande (22 ranuras), una solicitud de gran tamaño (7 ranuras) y una solicitud de 1 medio (3 ranuras) al mismo tiempo.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.

Ejemplos de asignación de hasta 32 ranuras de simultaneidad a solicitudes simultáneas:Examples of allocating up to 32 concurrency slots to concurrent requests:

  • 28 ranuras = 4 grandes28 slots = 4 large

  • 30 ranuras = 10 medianas30 slots = 10 medium

  • 32 ranuras = 32 valor predeterminado32 slots = 32 default

  • 32 ranuras = 1 extra grande + 1 grande + 1 medio32 slots = 1 extra large + 1 large + 1 medium

  • 32 ranuras = 2 grandes + 4 medio + 6 predeterminado32 slots = 2 large + 4 medium + 6 default

Supongamos que se envían 6 solicitudes grandes a PDW de SQL Server y, a continuación, se envían 10 solicitudes predeterminadas.Suppose 6 large requests are submitted to SQL Server PDW, and then 10 default requests are submitted. PDW de SQL Server procesará las solicitudes en orden de prioridad como se indica a continuación:SQL Server PDW will process the requests in priority order as follows:

  • Asigne 28 ranuras de simultaneidad para iniciar el procesamiento de 4 solicitudes grandes a medida que la memoria esté disponible y mantenga 2 solicitudes grandes en la cola.Allocate 28 concurrency slots to start processing 4 large requests as memory becomes available, and keep 2 large requests in the queue.

  • Asigne 4 espacios de simultaneidad para iniciar el procesamiento de 4 solicitudes predeterminadas y mantener 6 solicitudes predeterminadas en la cola de espera.Allocate 4 concurrency slots to start processing 4 default requests and keep 6 default requests in the wait queue.

A medida que finalicen las solicitudes y estén disponibles los espacios de simultaneidad, PDW de SQL Server asignará las solicitudes restantes en función de los recursos disponibles y la prioridad.As requests finish and concurrency slots become available, SQL Server PDW will allocate the remaining requests according to available resources and priority. Por ejemplo, cuando hay 7 ranuras de simultaneidad abiertas, la espera de solicitudes grandes tendrá mayor prioridad para las 7 ranuras que las solicitudes medianas en espera.For example, when there are 7 concurrency slots open, waiting large requests will have higher priority for the 7 slots than waiting medium requests. Si hay 6 ranuras abiertas, PDW de SQL Server asignará 6 solicitudes más de tamaño predeterminado.If 6 slots open, then SQL Server PDW will allocate 6 more default-sized requests. Sin embargo, todos los espacios de memoria y simultaneidad deben estar disponibles antes de que PDW de SQL Server permita la ejecución de una solicitud.However, memory and concurrency slots must all be available before SQL Server PDW allows a request to run.

Dentro de cada clase de recurso, las solicitudes se ejecutan en el orden FIFO (primero en salir).Within each resource class, the requests run in first in first out (FIFO) order.

Notas generalesGeneral Remarks

Si un inicio de sesión es miembro de más de una clase de recurso, la clase con la mayoría de los recursos tiene prioridad.If a login is a member of more than one resource class, the class with the most resources takes precedence.

Cuando se agrega o se quita un inicio de sesión en una clase de recurso, el cambio surte efecto inmediatamente en todas las solicitudes futuras; las solicitudes actuales que se están ejecutando o en espera no se ven afectadas.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. El inicio de sesión no necesita desconectarse y volver a conectarse para que se produzca el cambio.The login does not need to disconnect and reconnect in order for the change to occur.

En cada inicio de sesión, los valores de la clase de recursos se aplican a instrucciones y operaciones individuales, y no a la sesión.For each login, the resource class settings are applied to individual statements and operations, and not to the session.

Antes de que PDW de SQL Server ejecute una instrucción, intenta adquirir los espacios de simultaneidad necesarios para la solicitud.Before SQL Server PDW runs a statement, it tries to acquire the concurrency slots needed for the request. Si no puede adquirir suficientes espacios de simultaneidad, PDW de SQL Server mueve la solicitud a un estado en espera de ejecución.If it cannot acquire enough concurrency slots, SQL Server PDW moves the request into a waiting-to-be-executed state. Todo el sistema de recursos que ya se asignó a la solicitud se devuelve al sistema.All resources system that were already allocated to the request are returned back to the system.

La mayoría de las instrucciones SQL siempre necesitan las asignaciones predeterminadas de recursos y, por tanto, las clases de recursos no las controlan.Most of the SQL statements always need the default resource allocations, and therefore are not controlled by resource classes. Por ejemplo, crear inicio de sesión solo necesita una pequeña cantidad de recursos y se le asignan los recursos predeterminados incluso si el inicio de sesión que llama a CREATE LOGIN es miembro de una clase de recurso.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. Por ejemplo, si Anna es miembro de la clase de recursos largerc y envía una instrucción CREATE LOGIN, la instrucción CREATE LOGIN se ejecutará con el número predeterminado de recursos.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.

Instrucciones y operaciones SQL regidas por clases de recursos:SQL statements and operations governed by resource classes:

  • ALTER INDEX REBUILDALTER INDEX REBUILD

  • ALTER INDEX REORGANIZEALTER INDEX REORGANIZE

  • ALTER TABLE REBUILDALTER TABLE REBUILD

  • CREAR ÍNDICE CLÚSTERCREATE CLUSTERED INDEX

  • CREATE CLUSTERED COLUMNSTORE INDEXCREATE CLUSTERED COLUMNSTORE INDEX

  • CREATE TABLE AS SELECTCREATE TABLE AS SELECT

  • CREAR TABLA REMOTA COMO SELECTCREATE REMOTE TABLE AS SELECT

  • Carga de datos con dwloader.Loading data with dwloader.

  • INSERT-SELECTINSERT-SELECT

  • UPDATEUPDATE

  • DeleteDELETE

  • RESTAURe la base de datos al restaurar en un dispositivo con más nodos de proceso.RESTORE DATABASE when restoring into an appliance with more Compute nodes.

  • SELECT, excluidas las consultas solo de DMVSELECT, excluding DMV-only queries

Limitaciones y restriccionesLimitations and Restrictions

Las clases de recursos rigen las asignaciones de memoria y simultaneidad.The resource classes govern memory and concurrency allocations. No controlan las operaciones de entrada/salida.They do not govern input/output operations.

MetadatosMetadata

DMV que contienen información sobre las clases de recursos y los miembros de clase de recurso.DMVs that contain information about resource classes and resource class members.

DMV que contienen información sobre el estado de las solicitudes y los recursos que necesitan:DMVs that contain information about the state of requests and the resources they require:

Vistas del sistema relacionadas que se exponen desde el SQL Server DMV en los nodos de proceso.Related system views exposed from the SQL Server DMVs on the Compute nodes. Vea SQL Server vistas de administración dinámica para obtener vínculos a estas DMV en MSDN.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

Tareas de administración de cargas de trabajoWorkload Management Tasks