Share via


Conversión de las 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 estos. 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 opcional de tiempo de espera de la consulta.

Nota

Vea la sección Combinación de asignaciones de clase de recursos con clasificadores del documento del concepto Clasificación de la carga de trabajo para obtener una guía 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 para las clases de recursos se realiza mediante la asignación de espacios de simultaneidad. Para determinar el valor que se va a especificar para REQUEST_MIN_RESOURCE_GRANT_PERCENT, use el conjunto DMV de sys.dm_workload_management_workload_groups_stats. Por ejemplo, la consulta siguiente devuelve un valor que puede usar el parámetro REQUEST_MIN_RESOURCE_GRANT_PERCENT 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 operan según el porcentaje de recursos generales del sistema.

Dado que los grupos de cargas de trabajo operan en función del porcentaje de recursos generales del sistema, a medida que se escala y se reduce verticalmente, se cambia el porcentaje de recursos asignados a las clases de recursos estáticos en relación con los recursos generales del sistema. Por ejemplo, staticrc40 en DW1000c asigna el 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.

Creación de un grupo de cargas de trabajo

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

Usando mediumrc como base para un ejemplo, el código siguiente establece el valor MIN_PERCENTAGE_RESOURCE para dedicar el 10 % de los recursos del sistema a wgDataLoads y se garantiza que se podrá ejecutar una consulta todas las horas. Además, CAP_PERCENTAGE_RESOURCE se establece en el 40 % y limita este grupo de cargas de trabajo a cuatro solicitudes simultáneas. Al establecer el parámetro QUERY_EXECUTION_TIMEOUT_SEC en 3600, las consultas que se ejecuten durante más de 1 hora se cancelarán 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 las clases de recursos se realizaba con sp_addrolemember. Para lograr la misma funcionalidad y asignar las solicitudes a los grupos de cargas de trabajo, use la sintaxis CREATE WORKLOAD CLASSIFIER. El uso de sp_addrolemember solo permite asignar recursos a una solicitud basada en un inicio de sesión. Además del inicio de sesión, un clasificador proporciona otras opciones, como: - label - session - time. En el ejemplo siguiente se asignan consultas del inicio de sesión de AdfLogin que también tienen la ETIQUETA DE OPCIÓN establecida en factloads al grupo de cargas 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 DMV para garantizar que el grupo de cargas de trabajo y el clasificador se configuran 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