Compartilhar via


Solucionar problemas de alto uso da CPU em um servidor WSUS

Este artigo apresenta vários procedimentos para solucionar problemas de alto uso da CPU no Windows Server Update Service (WSUS).

Observação

Usuários domésticos: este artigo destina-se apenas a agentes de suporte técnico e profissionais de TI. Se você estiver procurando ajuda com um problema, pergunte à Comunidade da Microsoft.

Versão original do produto: Configuration Manager (branch atual)
Número original do KB: 4489045

O alto uso da CPU pode ocorrer se o banco de dados do WSUS (SUSDB) não estiver limpo. Depois que o servidor for executado por um tempo, pode haver muitas atualizações para o servidor WSUS fornecer aos clientes.

Nessa situação, se ocorrer uma falha ou um novo servidor WSUS for instalado ou um problema não relacionado impedir que os clientes verifiquem por alguns dias, todos os clientes poderão iniciar a verificação e continuar a verificar constantemente e nunca concluir uma verificação ou instalar atualizações.

Para corrigir o problema, você precisa limpar o servidor WSUS e recusar as atualizações substituídas. Siga as etapas na ordem abaixo como uma rotina de limpeza mensal. No entanto, se você estiver solucionando problemas de alta CPU, recomendamos que você execute a etapa 4 primeiro e depois a etapa 3. Você deve adiar as etapas 1 e 2 até que o nível de uso da CPU diminua.

Etapa 1: Fazer backup do banco de dados do WSUS

Fazer backup do banco de dados do WSUS pode melhorar um pouco o desempenho.

Etapa 2: Executar o Assistente de Limpeza do Servidor WSUS

A execução do Assistente de Limpeza do Servidor WSUS pode melhorar o desempenho do banco de dados. No entanto, isso não reduz o número de atualizações que os clientes estão verificando. Além disso, pode levar muitas horas ou dias para que o assistente seja executado sem necessariamente resolver o problema.

Etapa 3: Reindexar o banco de dados do WSUS

A reindexação do banco de dados do WSUS pode melhorar o desempenho do banco de dados se ele estiver fragmentado. Para fazer isso, execute os seguintes comandos.

  1. Atualize o statistics usando a FULLSCAN opção.

    Use <dbname>
    Go
    Exec sp_msforeachtable 'update statistics ? with fullscan'
    Go
    
  2. Recompile os índices.

    Use <dbname>
    Go
    Exec sp_msforeachtable 'DBCC DBREINDEX (''?'')'
    Go
    

Etapa 4: Recusar atualizações substituídas

A recusa de atualizações substituídas reduz imediatamente o número de atualizações que estão sendo verificadas.

Para recusar atualizações substituídas ou executar qualquer ação do WSUS em uma situação em que o pool de aplicativos do WSUS é reciclado muito rapidamente, você pode primeiro impedir que os clientes se conectem ao pool de aplicativos do WSUS. Para fazer isso, conecte-se ao servidor WSUS usando o console do WSUS e sincronize o servidor WSUS com o servidor upstream e com o Configuration Manager (se ele for usado). Se você estiver usando o Configuration Manager, é importante sincronizar com a versão mais recente da atualização no console do Configuration Manager para que os clientes vejam que o WSUS tem atualizações atuais e válidas.

Para desconectar os clientes, use um dos métodos a seguir.

Método 1: Criar um pool de aplicativos de teste

  1. Clique com o botão direito do mouse em Pools de aplicativos na área Gerenciador dos Serviços de Informações da Internet (IIS) e selecione Adicionar Pool de Aplicativos para criar um pool de aplicativos de teste.

  2. Selecione Serviço>Web do cliente Gerenciar configurações avançadas do aplicativo>e altere o pool de aplicativos para o pool de aplicativos de teste que você criou.

Método 2: Alterar a porta do site do WSUS

  1. Selecione Associações de edição do site>de administração do WSUS.

  2. Altere o console do WSUS para se conectar à nova porta, executar o script e sincronizar com o USS.

    Observação

    Esse método fará com que a sincronização com o Configuration Manager falhe.

Método 3: Use regras de firewall para bloquear todos os endereços IP do cliente ou permitir apenas conexões de entrada do USS e do servidor do site

Depois que os clientes forem desconectados do servidor WSUS, você poderá executar o script do PowerShell usando os -skipdecline parâmetros (e -exclusion period, se necessário) para determinar o número total de atualizações substituídas que podem ser recusadas. Em seguida, execute o script novamente usando -skipdecline para realmente recusar as atualizações.

Em casos extremos em que o script do PowerShell não pode ser executado devido a tempos limite, você pode adicionar a coluna de substituição ao console do WSUS quando todas as atualizações forem exibidas e, em seguida, recusar as atualizações manualmente seguindo estas etapas:

  1. Abra o MMC (Console de Gerenciamento Microsoft) do Windows Update Services.
  2. Selecione o modo de exibição Todas as atualizações. Para fazer isso, defina a exibição para mostrar o status de Aprovação de Qualquer, exceto Recusado , com um status de Qualquer e clique em Atualizar.
  3. Clique com o botão direito do mouse nos cabeçalhos das colunas e selecione Substituição.
  4. Clique com o botão esquerdo do mouse na coluna Substituição para classificar por substituição.
  5. Selecione e recuse as atualizações substituídas.

O problema de desempenho normalmente pode ser resolvido depois que a atualização válida é reduzida para menos de 7.000 conexões (mas menos de 5.000 é preferível). Talvez seja necessário restringir as conexões com o site de administração do WSUS por alguns dias para permitir que os clientes concluam todas as verificações. Também recomendamos que você reindexe o banco de dados depois de recusar as atualizações substituídas. Se você estiver usando o Configuration Manager, execute também uma sincronização entre o WSUS e o Configuration Manager enquanto os clientes não estiverem se conectando.

Depois de concluir essas etapas, você deve limitar as conexões se o uso da CPU ainda estiver muito alto. Para fazer isso, siga estas etapas:

  1. Abrir o Gerenciador>dos Serviços de Informações da Internet (IIS) Site de Administração do WSUS Gerenciar>site>Configurações>avançadas Limites>Máximo de conexões simultâneas.

  2. Defina o valor como 50 ou 100.

  3. Monitore o processo W3Wp no Gerenciador de Tarefas e a CPU total no servidor.

  4. Abra o Monitor de Recursos do Gerenciador >de Tarefas e anote o PID do pool de aplicativos do WSUS. Se você não tiver certeza de qual processo w3wp está executando o pool de aplicativos do WSUS, poderá usar o Appcmd (Método 2) para identificar o PID facilmente.

Por padrão, o PID deve ser alterado apenas uma vez a cada 29 horas. Se ele for alterado com mais frequência, o limite de conexão poderá ser muito alto para a configuração atual de CPU e memória do pool de aplicativos do WSUS.

Monitore a memória w3wp estável e o uso geral estável da CPU de menos de 90%. À medida que o uso de CPU e memória de estado estável diminui, você pode aumentar lentamente os limites de conexão com o site de administração do WSUS. Dependendo do tipo de situação em que você se encontra, o uso de memória pode levar vários dias para retornar a um estado estável. O aumento dos limites de conexão pode precisar ocorrer em pequenos incrementos e ao longo de vários dias.

Referência

Alta CPU/Alta Memória no WSUS após as Terças-Feiras de Atualização