Administración de cargas de trabajo de Python y R con Resource Governor en SQL Server Machine Learning Services

Se aplica a: SQL Server 2016 (13.x) y versiones posteriores

Obtenga información sobre cómo usar Resource Governor para administrar la asignación de recursos de CPU, E/S físicas y memoria para cargas de trabajo de Python y R en SQL Server Machine Learning Services.

Los algoritmos de aprendizaje automático en Python y R usan una gran cantidad de recursos de proceso. Según sus prioridades de cargas de trabajo, puede que necesite incrementar o reducir los recursos disponibles para Machine Learning Services.

Para obtener información general, vea Resource Governor.

Nota:

Resource Governor es una característica de Enterprise Edition.

Asignaciones predeterminadas

De forma predeterminada, los tiempos de ejecución de scripts externos para aprendizaje automático están limitados a un máximo del 20 % del total de memoria de la máquina. Aunque depende del sistema, este límite suele ser inadecuado para tareas de aprendizaje automático importantes, como entrenar un modelo o realizar una predicción en varias filas de datos.

Administración de recursos con Resource Governor

De forma predeterminada, los procesos externos usan hasta un 20 % del total de memoria del host en el servidor local. Puede modificar el grupo de recursos predeterminado para realizar cambios en todo el servidor, de forma que los procesos de R y Python usen la capacidad que configure como disponible para procesos externos.

Como opción, puede crear grupos de recursos externos personalizados, con clasificadores y grupos de cargas de trabajo asociados, para determinar la asignación de recursos de las solicitudes originadas desde programas o hosts específicos, o bien otros criterios que proporcione. Un grupo de recursos externos es un tipo de grupo de recursos introducido en SQL Server 2016 (13.x) para facilitar la administración de procesos de R y Python externos al motor de base de datos.

  1. Habilite la gobernanza de recursos (está desactivada de forma predeterminada).

  2. Ejecute CREATE EXTERNAL RESOURCE POOL para crear y configurar el grupo de recursos, seguido de ALTER RESOURCE GOVERNOR para implementarlo.

  3. Cree un grupo de cargas de trabajo para asignaciones granulares (por ejemplo, entre entrenamiento y puntuación).

  4. Cree un clasificador para interceptar las llamadas de procesos externos.

  5. Ejecute consultas y procedimientos con los objetos que ha creado.

Para ver un tutorial, consulte Crear un grupo de recursos para SQL Server Machine Learning Services para obtener instrucciones paso a paso.

Para obtener información general sobre la terminología y los conceptos generales, vea Grupo de recursos de Resource Governor.

Procesos en gobernanza de recursos

Puede usar un grupo de recursos externos para administrar los recursos usados por los siguientes ejecutables en una instancia del motor de la base de datos:

  • Rterm.exe, cuando se llama localmente desde SQL Server o de forma remota con SQL Server como el contexto de procesos remotos.
  • Python.exe, cuando se llama localmente desde SQL Server o de forma remota con SQL Server como el contexto de procesos remotos.
  • BxlServer.exe y procesos satélite
  • Procesos satélites iniciados por Launchpad, como PythonLauncher.dll

Nota:

Aun así, no se admite la administración directa del servicio Launchpad mediante Resource Governor. Launchpad es un servicio de confianza que solo puede hospedar iniciadores proporcionados por Microsoft. Los iniciadores de confianza se configuran de manera explícita para evitar un uso excesivo de recursos.

Pasos siguientes