Escalar a execução simultânea de scripts externos em SQL Server Machine Learning Services

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

Aprenda sobre contas de trabalhadores para SQL Server Machine Learning Services e como alterar a configuração padrão para escalar o número de execuções simultâneas de scripts externos.

Como parte do processo de instalação do Machine Learning Services, é criado um novo pool de contas de utilizador Windows para suportar a execução de tarefas pelo serviço SQL Server Launchpad. O objetivo destas contas de trabalhadores é isolar a execução simultânea de scripts externos por diferentes utilizadores do SQL Server.

Note

No SQL Server 2019, o SQLRUserGroup tem apenas um membro, que agora é a única conta do serviço SQL Server Launchpad em vez de várias contas de trabalhadores. Este artigo descreve as contas de trabalhadores para o SQL Server 2016 e 2017.

Grupo de contas de trabalhadores

Um grupo de contas do Windows é criado pela configuração do SQL Server para cada instância onde o machine learning é instalado e ativado.

  • Numa instância padrão, o nome do grupo é SQLRUserGroup. O nome é o mesmo quer uses Python, R ou ambos.
  • Numa instância nomeada, o nome predefinido do grupo recebe como sufixo o nome da instância: por exemplo, SQLRUserGroupMyInstanceName.

Por predefinição, o grupo de contas de utilizador contém 20 contas de utilizador. Na maioria dos casos, 20 é mais do que suficiente para suportar tarefas de aprendizagem automática, mas pode alterar o número de contas. O número máximo de contas é 100.

  • Numa instância por defeito, as contas individuais são nomeadas MSSQLSERVER01 até MSSQLSERVER20.
  • Para uma instância nomeada, as contas individuais são nomeadas a partir do nome da instância: por exemplo, MyInstanceName01 até MyInstanceName20.

Se mais do que uma instância usar aprendizagem automática, o computador terá múltiplos grupos de utilizadores. Um grupo não pode ser partilhado entre instâncias.

Número de contas de trabalhadores

Para modificar o número de utilizadores no pool de contas, deve editar as propriedades do serviço SQL Server Launchpad conforme descrito abaixo.

As palavras-passe associadas a cada conta de utilizador são geradas aleatoriamente, mas podes alterá-las mais tarde, depois de as contas terem sido criadas.

  1. Abra o Gestor de Configuração do SQL Server e selecione SQL Server Services.
  2. Clique duas vezes no serviço SQL Server Launchpad e pare o serviço se estiver a correr.
  3. No separador de Serviço , certifique-se de que o Modo Início está definido como Automático. Scripts externos não podem arrancar quando o Launchpad não está a correr.
  4. Clique no separador Avançado e edite o valor de Contagem de Utilizadores Externos, se necessário. Esta definição controla quantos utilizadores SQL diferentes podem executar sessões de script externas em simultâneo. O padrão é 20 contas. O número máximo de utilizadores é 100.
  5. Opcionalmente, pode definir a opção Redefinir Palavra-passe de Utilizadores Externos para Sim , caso a sua organização tenha uma política que exija a alteração regular. Fazer isto irá regenerar as palavras-passe encriptadas que o Launchpad mantém para as contas de utilizador. Para mais informações, consulte Aplicação da Política de Palavra-passe.
  6. Reinicie o serviço Launchpad.

Gerir cargas de trabalho

O número de contas neste pool determina quantas sessões de script externas podem estar ativas simultaneamente. Por defeito, são criadas 20 contas, o que significa que 20 utilizadores diferentes podem ter sessões Python ou R ativas ao mesmo tempo. Podes aumentar o número de contas de trabalhadores, se esperares correr mais de 20 scripts simultâneos.

Quando o mesmo utilizador executa múltiplos scripts externos em simultâneo, todas as sessões executadas por esse utilizador usam a mesma conta de trabalhador. Por exemplo, um único utilizador pode ter 100 scripts diferentes em Python ou R a correr em simultâneo, desde que os recursos o permitam, mas todos os scripts funcionariam usando uma única conta de trabalhador.

O número de contas de trabalhadores que pode suportar, e o número de sessões simultâneas que qualquer utilizador pode executar, é limitado apenas pelos recursos do servidor. Normalmente, a memória é o primeiro gargalo que vais encontrar ao usar o runtime em Python ou R.

Os recursos que podem ser usados por scripts Python ou R são governados pelo SQL Server. Recomendamos que monitorize o uso de recursos usando os DMVs do SQL Server, ou que analise os contadores de desempenho no objeto job Windows associado, e ajuste o uso da memória do servidor em conformidade. Se tiveres SQL Server Enterprise Edition, podes alocar recursos usados para executar scripts externos configurando um pool de recursos externo.