Compartir por


Conversión de clases de recursos en grupos de cargas de trabajo

Los grupos de cargas de trabajo proporcionan un mecanismo para aislar y contener recursos del sistema. Además, los grupos de cargas de trabajo permiten establecer reglas de ejecución para las solicitudes que se ejecutan en ellas. Una regla de ejecución de tiempo de expiración de la consulta permite la cancelación de consultas descontroladas sin intervención del usuario. En este artículo se explica cómo tomar una clase de recursos existente y crear un grupo de cargas de trabajo con una configuración similar. Además, se agrega una regla de tiempo de espera de consulta opcional.

Nota:

Consulte la sección Combinación de asignaciones de clases de recursos con clasificadores en el documento de concepto Clasificación de cargas de trabajo para obtener instrucciones sobre el uso de grupos de cargas de trabajo y clases de recursos al mismo tiempo.

Descripción de la configuración de la clase de recursos existente

Los grupos de cargas de trabajo requieren un parámetro denominado REQUEST_MIN_RESOURCE_GRANT_PERCENT que especifica el porcentaje de recursos generales del sistema asignados por solicitud. La asignación de recursos se realiza para las clases de recursos mediante la asignación de slots de concurrencia. Para determinar el valor que se va a especificar para REQUEST_MIN_RESOURCE_GRANT_PERCENT, use el sys.dm_workload_management_workload_groups_stats DMV. Por ejemplo, la consulta siguiente devuelve un valor que se puede usar para el REQUEST_MIN_RESOURCE_GRANT_PERCENT parámetro para crear un grupo de cargas de trabajo similar a staticrc40.

SELECT Request_min_resource_grant_percent = Effective_request_min_resource_grant_percent
  FROM sys.dm_workload_management_workload_groups_stats
  WHERE name = 'staticrc40'

Nota:

Los grupos de cargas de trabajo funcionan en función del porcentaje de recursos generales del sistema.

Dado que los grupos de cargas de trabajo funcionan en función del porcentaje de recursos generales del sistema, a medida que se escala hacia arriba o hacia abajo, el porcentaje de recursos asignados a las clases de recursos estáticos en relación con los recursos generales del sistema cambia. Por ejemplo, staticrc40 at DW1000c asigna 19.2% de los recursos generales del sistema. En DW2000c, se asigna el 9,6%. Este modelo es parecido si se quiere escalar verticalmente para la simultaneidad o si se quieren asignar más recursos por solicitud.

Crear grupo de cargas de trabajo

Con el conocido REQUEST_MIN_RESOURCE_GRANT_PERCENT, puede usar la sintaxis CREATE WORKLOAD GROUP para crear el grupo de cargas de trabajo. Opcionalmente, puede especificar un MIN_PERCENTAGE_RESOURCE que sea mayor que cero para aislar los recursos del grupo de cargas de trabajo. Además, opcionalmente, puede especificar un valor de CAP_PERCENTAGE_RESOURCE menor a 100 para limitar la cantidad de recursos que el grupo de cargas de trabajo puede consumir.

Con mediumrc como base para un ejemplo, el código siguiente establece el valor de MIN_PERCENTAGE_RESOURCE para dedicar 10% de los recursos del sistema a wgDataLoads y garantiza que una consulta podrá ejecutarse todas las veces. Además, CAP_PERCENTAGE_RESOURCE se establece en 40% y limita este grupo de cargas de trabajo a cuatro solicitudes simultáneas. Al establecer el QUERY_EXECUTION_TIMEOUT_SEC parámetro en 3600, cualquier consulta que se ejecute durante más de 1 hora se cancelará automáticamente.

CREATE WORKLOAD GROUP wgDataLoads WITH  
( REQUEST_MIN_RESOURCE_GRANT_PERCENT = 10
 ,MIN_PERCENTAGE_RESOURCE = 10
 ,CAP_PERCENTAGE_RESOURCE = 40
 ,QUERY_EXECUTION_TIMEOUT_SEC = 3600)

Creación del clasificador

Anteriormente, la asignación de consultas a clases de recursos se realizó con sp_addrolemember. Para lograr la misma funcionalidad y asignar solicitudes a grupos de cargas de trabajo, use la sintaxis CREATE WORKLOAD CLASSIFIER . El uso de sp_addrolemember solo le permite asignar recursos a una solicitud basada en un inicio de sesión. Un clasificador proporciona opciones adicionales además del acceso, tales como: - etiqueta - sesión - tiempo. El ejemplo siguiente asigna consultas desde el AdfLogin acceso que también tienen la OPTION LABEL establecida en factloads al grupo de carga de trabajo wgDataLoads creado anteriormente.

CREATE WORKLOAD CLASSIFIER wcDataLoads WITH  
( WORKLOAD_GROUP = 'wgDataLoads'
 ,MEMBERNAME = 'AdfLogin'
 ,WLM_LABEL = 'factloads')

Prueba con una consulta de ejemplo

A continuación se muestra una consulta de ejemplo y una consulta de DMV para asegurarse de que el grupo de cargas de trabajo y el clasificador están configurados correctamente.

SELECT SUSER_SNAME() --should be 'AdfLogin'

--change to a valid table AdfLogin has access to
SELECT TOP 10 *
  FROM nation
  OPTION (label='factloads')

SELECT request_id, [label], classifier_name, group_name, command
  FROM sys.dm_pdw_exec_requests
  WHERE [label] = 'factloads'
  ORDER BY submit_time DESC

Pasos siguientes