Compartilhar via


Agrupamento de host de serviço no Windows 10

O Host de Serviço (svchost.exe) é um processo de serviço compartilhado que serve como um shell para carregar serviços de arquivos DLL. Os serviços são organizados em grupos de host relacionados e cada grupo é executado dentro de uma instância diferente do processo do Host de Serviço. Dessa forma, um problema em uma instância não afeta outras instâncias. Os grupos de Host de Serviço são determinados combinando os serviços com requisitos de segurança correspondentes. Por exemplo:

  • Serviço Local
  • Serviço Local Sem Rede
  • Rede de serviço local restrita
  • Sistema Local
  • Rede do sistema local restrita
  • Serviço de Rede

Separando serviços SvcHost

Começando com Atualização do Windows 10 para Criadores (versão 1703), os serviços que foram agrupados anteriormente serão separados – cada um será executado em seu próprio processo SvcHost. Essa alteração é automática para sistemas com mais de 3,5 GB de RAM executando a SKU da Área de Trabalho do Cliente. Em sistemas com 3,5 GB ou menos RAM, continuaremos agrupando serviços em um processo SvcHost compartilhado.

Os benefícios dessa alteração de design incluem:

  • Aumento da confiabilidade isolando os serviços de rede críticos da falha de outro serviço que não é de rede no host e adicionando a capacidade de restaurar a conectividade de rede perfeitamente quando os componentes de rede falham.
  • Reduziu os custos de suporte eliminando a sobrecarga de solução de problemas associada ao isolamento de serviços de mau comportamento no host compartilhado.
  • Maior segurança fornecendo mais isolamento entre serviços
  • Aumento da escalabilidade permitindo configurações e privilégios por serviço
  • Melhor gerenciamento de recursos por meio de CPU por serviço, gerenciamento de E/S e memória e aumentar dados de diagnóstico claros (CPU de relatório, E/S e uso de rede por serviço).

Experimente Isso

Para ver o comportamento de refatoração, crie uma VM Windows 10 versão 1703 e configure as configurações de memória da seguinte maneira:

  1. Para ver processos agrupados, defina a RAM como 3484 MB ou menos. Reinicie a VM e abra o Gerenciador de Tarefas.
  2. Para ver processos separados, defina a RAM como 3486 MB ou superior. Reinicie a VM e abra o Gerenciador de Tarefas.

A refatoração também facilita a exibição de processos em execução no Gerenciador de Tarefas. Você pode examinar o Gerenciador de Tarefas e saber exatamente qual serviço está usando quais recursos, sem precisar expandir muitos grupos de host separados.

Por exemplo, aqui estão os processos em execução exibidos no Gerenciador de Tarefas no Windows 10 versão 1607:

Executando processos no Gerenciador de Tarefas, versão 1607.

Compare isso com a mesma exibição de execução de processos no Windows 10 versão 1703:

Executando processos no Gerenciador de Tarefas, versão 1703.

Exceções

Alguns serviços continuarão a ser agrupados em PCs em execução com 3,5 GB ou RAM superior. Por exemplo, o Mecanismo de Filtragem de Base (BFE) e o Firewall do Windows (Mpssvc) serão agrupados em um único grupo de host, assim como os serviços RPC Endpoint Mapper e Remote Procedure Call.

Se você precisar identificar serviços que continuarão a ser agrupados, além de vê-los no Gerenciador de Tarefas e usar ferramentas de linha de comando, você poderá procurar o valor SvcHostSplitDisable em suas respectivas chaves de serviço em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services.

O valor padrão de 1 impede que o serviço seja dividido.

Por exemplo, a configuração da chave do registro para BFE é: exemplo de um serviço que não pode ser separado.

Pegada de memória

Separar serviços aumenta o número total de instâncias SvcHost, o que aumenta a utilização da memória. (O agrupamento de serviços proporcionou uma redução modesta à pegada geral de recursos dos serviços envolvidos.)

Considere o exemplo a seguir:

Serviços agrupados (< 3,5 GB) Serviços divididos (3,5 GB+)
Utilização de memória para serviços agrupados. Utilização de memória para serviços separados

Observação

O acima representa os valores observados no pico.

O número total de instâncias de serviço e a utilização de memória resultante variam dependendo da atividade. As contagens de instâncias normalmente podem variar de aproximadamente 17 a 21 para serviços agrupados e 67 a 74 para serviços separados.

Experimente Isso

Para determinar o impacto da divisão de serviços hospedados em um computador Windows 10 versão 1703, execute o seguinte cmdlet Windows PowerShell antes e depois de alternar as configurações de memória:

Get-Process SvcHost | Group-Object -Property ProcessName | Format-Table Name, Count, @{n='Mem (KB)';e={'{0:N0}' -f (($_.Group|Measure-Object WorkingSet -Sum).Sum / 1KB)};a='right'} -AutoSize