Gerenciar cargas de trabalho do Python e do R com o Resource Governor nos Serviços de Machine Learning do SQL Server

Aplica-se a: SQL Server 2016 (13.x) e versões posteriores

Saiba como usar o Resource Governor para gerenciar a alocação de CPU, E/S física e recursos de memória para cargas de trabalho de Python e R nos Serviços de Machine Learning do SQL Server.

Os algoritmos de aprendizado de máquina em Python e R têm uso intensivo de computação. Dependendo de suas prioridades de carga de trabalho, talvez seja necessário aumentar ou diminuir os recursos disponíveis para os Serviços de Machine Learning.

Para ver informações mais gerais, confira Resource Governor.

Observação

O Resource Governor é um recurso da Edição Enterprise.

Alocações padrão

Por padrão, os runtimes de script externo para aprendizado de máquina são limitados a não mais do que 20% da memória total do computador. Isso depende do seu sistema, mas, em geral, você pode achar esse limite inadequado para tarefas de aprendizado de máquina sérias, como treinar um modelo ou prever muitas linhas de dados.

Gerenciar recursos com o Resource Governor

Por padrão, os processos externos usam até 20% da memória total do host no servidor local. É possível modificar o pool de recursos padrão para fazer alterações em todo o servidor com processos de R e Python e usando qualquer capacidade que você disponibilizar para processos externos.

Como opção, você pode criar pools de recursos externos personalizados, com grupos de carga de trabalho e classificadores associados, a fim de determinar a alocação de recurso para solicitações provenientes de programas, hosts ou outros critérios específicos que você definir. Um pool de recursos externos é um tipo de pool de recursos introduzido no SQL Server 2016 (13.x) para ajudar a gerenciar os processos de R e Python externos ao mecanismo de banco de dados.

  1. Habilite a governança de recursos (ela está desativada por padrão).

  2. Execute CREATE EXTERNAL RESOURCE POOL para criar e configurar o pool de recursos, seguido por ALTER RESOURCE GOVERNOR para implementá-lo.

  3. Crie um grupo de carga de trabalho para alocações granulares, por exemplo, entre treinamento e pontuação.

  4. Crie um classificador para interceptar chamadas para processamento externo.

  5. Execute consultas e procedimentos usando os objetos que você criou.

Para ver as instruções do passo a passo, confira Criar um pool de recursos para os Serviços de Machine Learning do SQL Server.

Para ver uma introdução à terminologia e conceitos gerais, confira Pool de recursos do Resource Governor.

Processos sob governança de recursos

Você pode usar um pool de recursos externos para gerenciar os recursos usados pelos seguintes executáveis em uma instância do mecanismo de banco de dados:

  • Rterm.exe quando chamado localmente do SQL Server ou chamado remotamente com o SQL Server como o contexto de computação remota
  • Python.exe quando chamado localmente do SQL Server ou chamado remotamente com o SQL Server como o contexto de computação remota
  • BxlServer.exe e processos satélite
  • Processos de satélite iniciados pelo Launchpad, como PythonLauncher.dll

Observação

Não há suporte para o gerenciamento direto do serviço Launchpad por meio do Resource Governor. O Launchpad é um serviço confiável que só pode hospedar iniciadores desenvolvidos pela Microsoft. Inicializadores confiáveis também são configurados explicitamente para evitar o consumo excessivo de recursos.

Próximas etapas