2015-03-16 04:37:45 +0000 2015-03-16 04:37:45 +0000
123
123
Advertisement

Porque é que a verificação do Windows Update é tão lenta?

Advertisement

Tenho PCs com Windows 7 que têm a actualização automática desligada. Faço actualizações em lote uma vez por mês, aproximadamente. Mas cada vez que “verificar a actualização” demora de 15 a 30 minutos. Não percebo porque é que a verificação de actualizações pode ser tão lenta? Eu tenho que me perguntar o que está acontecendo em segundo plano. Será computação de haxixe? Será que os meus PCs com actualizações automáticas estão sempre com o mesmo destino sempre que arranca (só que eu não estava ciente)?

Advertisement

Respostas (12)

103
103
103
2015-07-02 04:25:06 +0000

A parte checking for updates é tão lenta porque:

  • Windows 7 usa Component-Based Servicing , o que significa que o Windows Update tem que trabalhar ridiculamente duro para determinar dependências/interdependências de arquivos e componentes, manter versões lado a lado de arquivos/componentes mais antigos, enquanto ainda permite desinstalar atualizações/componentes individuais, mas sem quebrar quaisquer outras atualizações/componentes, tudo levando em conta a supercedência e sabe Deus o que mais. O código que faz tudo isto deve ser extremamente complexo.

  • O Windows 7 64-bit tem de manter tanto as versões de 32-bit como as de 64-bit de cada actualização.

  • O Windows tem de manter tanto as versões GDR e LDR de cada actualização, o que significa que no Windows 7 64-bit se obtém GDR de 32-bit, LDR de 32-bit, GDR de 64-bit, LDR de 64-bit para cada actualização.

  • O código por detrás do Windows Update é altamente ineficiente, provavelmente devido à sua complexidade conceptual. As minhas observações ao longo dos últimos anos são que, como o número total de actualizações lançadas aumentou, o tempo de verificação das actualizações aumentou de forma quase exponencial. Para mim isso é indicativo da utilização de algum tipo de algoritmos recursivos, talvez para determinar a superscedência ou resolver dependências.

Infelizmente para nós, a Microsoft não gosta de falar sobre os internos do Windows, por isso acabamos por ter de o descobrir por nós próprios ou especular.

60
60
60
2015-07-02 19:58:00 +0000

Várias facetas do problema foram tratadas nas respostas existentes. Vou tentar ligá-las, enumerando as causas de uma forma geral, sem repetir o que já foi dito:

  1. O mecanismo Microsoft Windows Update é extremamente sofisticado, o que infelizmente significa também complicado
  2. A WU precisa de suportar um número incalculável de combinações de hardware e software
  3. A WU precisa de aplicar as actualizações na ordem correcta
  4. O Windows 7 é um sistema mais antigo, e o SP2 está atrasado e provavelmente nunca chegará, o que faz com que haja muitas actualizações
  5. Nos últimos anos, a Microsoft esteve sob uma grande pressão para corrigir inúmeros problemas de segurança, o que resultou em muitas correcções agitadas, depois correcções de correcções e assim por diante para a n'th generation
  6. A Microsoft não foi capaz de optimizar suficientemente o mecanismo de actualização, que é em geral um algoritmo exponencial, resultando num algoritmo de força bruta bastante lento.
  7. Os servidores WU da Microsoft estão por vezes sobrecarregados.

Vejamos estes pontos com mais detalhe.

Windows Update complexities

Depois de uma actualização ser lançada, pode entrar em três fases diferentes adicionais ao longo do tempo: Revisões, substituição e expiração.

Atualização de revisões* : Quando são feitas alterações a uma actualização previamente lançada, esta chama-se Revisão de Actualização, onde algumas partes do download são alteradas. Esta é uma substituição parcial, não total, da actualização.

Actualizações Substituídas : Esta é uma substituição completa de um lançamento anterior, ou lançamentos. Por vezes a Microsoft embrulha várias versões num único pacote, e esse pacote substitui as suas actualizações encapsuladas.

Actualizações Expiradas : Estas são actualizações removidas da lista de actualizações válidas. Tais actualizações já não são aplicáveis e não serão detectadas para instalação. Na maioria das vezes, uma actualização expira depois de ser substituída por uma Actualização Substituída.

As Actualizações têm também um mecanismo de dependência, o que significa que algumas actualizações podem requerer outras actualizações para serem aplicadas primeiro.

As Actualizações Expiradas são problemáticas para o desempenho da WU, uma vez que infelizmente não são removidas do computador, pelo que continuam a participar nos cálculos, e há muitas delas. Algumas melhorias podem ser conseguidas utilizando a limpeza do disco para Remove Outdated Windows Updates (primeiro faça uma imagem de backup do disco da unidade do sistema, uma vez que a WU também é muito frágil).

WU Calculations

Devido ao enorme número de combinações possíveis, a Microsoft mantém todas as actualizações nos servidores da WU no formato de uma árvore humongous. A decisão sobre quais as actualizações a aplicar é feita por um algoritmo de poda de árvores, que tem em conta o hardware e software instalado pelo cliente, bem como todas as actualizações que já estão instaladas, o que é por si só um grande conjunto de factos que precisam de ser todos aplicados com sucesso na poda.

O algoritmo não tem garantia de sucesso, o que significa que a WU é perfeitamente capaz de destruir o sistema operativo ou mesmo de o tornar inamovível. Isto é perfeitamente compreensível, por exemplo tomando uma actualização A1, com revisão A2, onde uma actualização B dependendo de A foi lançada entre A1 e A2. Agora vá figurar se a ordem de instalação deve ser A1-B-A2 ou A1-A2-B, quando a decisão errada pode ser mortal.

Servidores WU sobrecarregados

A Wikipedia tem isto a dizer sobre Windows Update statistics :

A partir de 2008, o Windows Update tinha cerca de 500 milhões de clientes, processava cerca de 350 milhões de scans únicos por dia, e mantinha uma média de 1,5 milhões de ligações simultâneas a máquinas clientes. Na Patch Tuesday, o dia em que a Microsoft normalmente lança novas actualizações de software, o tráfego de saída pode exceder 500 gigabits por segundo.

Estes números provavelmente duplicaram até agora, e explicam porque os servidores WU são por vezes inacessíveis. Estou a utilizar a opção WU de “Check for updates but let me choose”, e a minha própria experiência diz-me que há dias e horas em que a verificação de actualizações demora mais do que estou disposto a esperar, requerendo adiamento.

O longo historial do Windows 7

Windows 7 foi lançado a 22 de Julho de 2009. Após cerca de 17 meses, o Service Pack 1 (SP1) foi lançado em 22 de Fevereiro de 2011. Isto foi há cerca de 4,5 anos atrás, o que significa que o SP2 já devia ter sido lançado há muito tempo.

O lado bom de um Service Pack é que a sua instalação elimina todo o histórico de actualizações, de modo que, de facto, o WU começa do zero, exactamente como depois de uma nova instalação do Windows. Isto, claro, acelera enormemente todos os cálculos, uma vez que há menos actualizações a ter em conta.

O número total de actualizações existentes desde SP1 explica porque é que os cálculos da WU são tão lentos hoje em dia. Para a Microsoft o problema pode ser resolvido “simplesmente” actualizando para o mais recente Windows 8.1 ou Windows 10, pelo que a WU terá um menor número de actualizações a ter em conta.

Conclusion

As A Microsoft continua a aplicar numerosas actualizações ao Windows 7, a WU só vai continuar a abrandar com o passar do tempo.

Uma optimização possível é Remove Outdated Windows Updates . Outra é usar a opção WU de “Check for updates but let me choose”, e verificar por atualizações de manhã cedo ou à noite.

A maioria das atualizações também se aplica ao Windows 8 e 10, portanto a carga nos servidores WU da Microsoft só se multiplicará quando o Windows 10 for lançado em breve. A Microsoft também parece parcelar a largura de banda dos seus servidores WU de acordo com as suas próprias políticas, com ênfase no serviço dos sistemas operativos mais recentes, pelo que devemos esperar outra desaceleração para o Windows 7 quando o Windows 10 for lançado, juntamente com actualizações desproporcionadamente mais rápidas para o Windows 10.

Se a WU for demasiado lenta, a única solução real é actualizar para uma versão posterior do Windows.

Notícias boas: SP2 para Windows 7 (e 8.1) chegou

A Microsoft publicou o que é realmente SP2 para Windows 7 e 8.1. Esta actualização não estará disponível no Windows Update por alguma razão desconhecida, pelo que tem de ser descarregada e instalada manualmente.

Leia sobre como obtê-la no artigo : A Microsoft revê o Windows 7 e a actualização do 8.1 – mas não lhe chame um pacote de serviços .

22
Advertisement
22
22
2016-01-16 18:23:17 +0000

Esta edição tem vindo e vindo ao longo dos anos com diferentes correcções ao longo do caminho, por isso aqui está o meu guia actualizado para esta edição a partir desta data 5 de Janeiro de 2016

Verifique a secção EDIT abaixo, existe uma forma muito mais rápida de actualizar totalmente o Windows 7 SP1 após uma instalação limpa a partir de Maio de 2016.

Isto é o que eu faço quando reinstalo o W7 com o SP1 ou tenho problemas com a actualização do Windows presa na verificação de actualizações.

Se o Service Pack 1 não estiver instalado, instale-o antes de seguir este guia. Download KB-3138612 e guarde-o onde o pode encontrar mais tarde Download SUR Tool guarde-o no mesmo local

Reinicie o PC e desligue-o da internet antes do Windows carregar, isto é importante porque em cada janela de arranque irá verificar por actualizações em segundo plano e isto irá iniciar a verificação por actualizações penduradas novamente e irá impedir a instalação dos pacotes descarregados até que termine a verificação, por isso desligar da internet antes do Windows carregar impede isto.

Uma vez iniciado instale o KB-3138612, se for necessário reiniciar faça-o e mantenha-se desligado da internet.

Agora instale o pacote SUR Tool, este é um grande pacote e irá instalar muitas actualizações juntamente com a limpeza e reparação da loja de actualizações do Windows. Também irá reduzir o número de actualizações do Windows que terão de ser instaladas mais tarde.

Após a instalação do pacote SUR reiniciar, ligar à internet e fazer uma actualização manual do Windows, deverá funcionar muito mais rápido agora. Mesmo depois destas correcções vi alguns PC’s W7 demorarem até uma hora para terminarem a verificação de actualizações se lançados manualmente do Painel de Controlo.

Se tiver outros problemas de actualizações do Windows e as 2 actualizações acima estão instaladas, descarregue esta ferramenta de correcção do Microsoft Windows Update (clique com o botão direito do rato em “guardar link como”) execute-o e seleccione o modo agressivo para reiniciar completamente as actualizações do Windows. Reinicie e tente novamente as actualizações do Windows a partir do Painel de Controlo. Esta ferramenta corrige problemas quando as outras ferramentas de correcção da Microsoft falham, pelo menos pela minha experiência.

Update: A Microsoft lançou um enorme update rollup para o Windows 7 SP1 , isto é semelhante a um service pack mas não lhe chamam isso. Isto fará com que seja muito mais rápido actualizar o Windows 7 após uma instalação limpa, sem mais problemas de actualização do Windows e muitas reinicializações. Este update rollup vai trazer o sistema actual para corrigir terça-feira de Abril de 2016.

Isto não está a ser lançado através do Windows Update, tem de usar o Internet Explorer para o obter, abrir o IE e ir a este endereço

http://catalog.update.microsoft.com/v7/site/home.aspx

Digite na caixa de pesquisa 3125574 e carregue em enter key.

Agora vai ver todas as versões deste rollup, seleccione a que precisa e descarregue-a num sítio onde a possa encontrar mais tarde.

Use também a página do Catálogo de Actualizações do Windows para download e instale esta actualização primeiro, 3020369 , é um pré-requisito para o rollup, depois instale 3125574, certifique-se também de que está desligado da Internet quando aplicar estas actualizações.

9
9
9
2016-04-08 04:28:59 +0000

Quando utiliza ETW/WPR/WPA para verificar a utilização de CPU durante a verificação, vê que a utilização de CPU vem de wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded que é chamada de wuaueng.dll!CAgentUpdateManager::FindUpdates. O método AddSupersedenceInfoIfNeeded é o mais lento. Este método faz o que o nome indica e procura se as actualizações oferecidas/instaladas do Windows 7 ainda são necessárias ou substituídas (desactualizadas/substituídas por outras mais recentes). Isto é muito lento.

Com a última actualização do Windows Update Client de Junho 2016 , que é parte do Windows 7 July 2016 Update Rollup , a pesquisa de actualizações é novamente rápida.

  1. Download:
  2. 32Bit: https://www.microsoft.com/en-us/download/details.aspx?id=53335
  3. 64Bit: https://www.microsoft.com/en-us/download/details.aspx?id=53332

Demora apenas um pouco mais de 1 minuto para eu procurar novas actualizações. Para acelerar a configuração da actualização KB3172605, pare o serviço WindowsUpdate (net stop wuauserv).

Este truque de paragem do serviço WU acelera muito a instalação, quando instala várias actualizações MSU:

@ECHO OFF
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
FOR /R "%~dp0" %%A IN (*Windows6.1-KB*.MSU) DO (
        CALL :SUB %%~nA        
    ECHO= Installing KB!KB_NUM!        
    >NUL net stop wuauserv
    WUSA "%%A" /quiet /norestart)
ECHO= == Press any key to close the Window ==
>NUL PAUSE

GOTO :EOF

:SUB

SET "KB_NUM=%*"
FOR /F "DELIMS=-" %%B IN ("%KB_NUM:*-KB=%") DO SET "KB_NUM=%%B"

No Windows 10 a Microsoft resolveu o problema seguindo a minha sugestão e faz com que as actualizações sejam cumulativas. Aqui só precisa de 1 grande actualização para estar no nível actual do patch. Esta verificação lenta já não é necessária.

3
Advertisement
3
3
2015-12-11 10:56:36 +0000

Se as experiências passadas com a actualização da XP são alguma indicação, ocasionalmente deixe lá inserir um algoritmo de tempo exponencial . O que uma vez que você tenha muitas atualizações… leva uma eternidade. Actualmente as actualizações Win 7 estão numa situação semelhante; demoram muito tempo, embora ainda não exista uma explicação oficial para esta última fase de lentidão. É interessante que este “apenas acontece” (para as versões antigas) quando se tem uma nova versão. O cínico eu não consegue deixar de imaginar que alguém possa querer intencionalmente que isso aconteça, na linha do [antigo] Windows é lento? É preciso uma nova versão. Ou talvez seja apenas a forma dos EM começarem a época das férias.

Existe um hotfix para algum tipo de lentidão WU, que não está a ser oferecido automaticamente (ou seja, através da própria actualização): https://support.microsoft.com/en-us/kb/3102810 Infelizmente não fez grande diferença no meu caso, e já o experimentei em dois computadores diferentes um de 32 bits e outro de 64 bits. Também já existe desde Outubro, por isso provavelmente não é para a última edição[s].

2
2
2
2015-07-02 04:36:03 +0000

Existem hoje cerca de mil milhões de PCs com o Windows. Cada PC tem alguma combinação de hardware, acessórios, versão do SO, idioma, IE, versão do driver do dispositivo, software Microsoft em vários níveis de patch, atualizações de segurança, etc. O sistema Windows Update tem de ordenar todas estas combinações para oferecer as actualizações certas para um PC individual. Cada actualização tem propriedades incluindo dependências e uma estrutura de “supercedência”.

O primeiro passo (primeira execução) no scan é determinar a versão do SO, SP, idioma, fabricante do PC para podar a árvore de actualizações prováveis para o PC. Com base nesse primeiro scan, um provável conjunto de IDs de actualização é enviado para o dispositivo e o cliente local calcula quais as actualizações instaladas, substituídas, etc. e depois envia essa lista para o servidor e também guarda uma cópia localmente para os scans subsequentes. O servidor responde ao pedido do cliente para atualizações com descrições, etc. que são exibidas na IU (no idioma apropriado da IU).

Uma vez por dia, uma verificação de atualização é feita pelo cliente de Atualizações Automáticas em segundo plano e atualiza o cache local das atualizações instaladas, de modo que as varreduras subsequentes sejam apenas um delta e rápidas. Estas são armazenadas na pasta %windir%\softwaredistribution no PC.

É também efectuado um processo semelhante para actualizações previamente descarregadas. O serviço não irá voltar a fazer o download dos pacotes.

Encontrámos este post que nos ajudará a compreender, pelo menos, o que está realmente a acontecer durante a pesquisa. Está escrito de forma bonita. Por isso, estou a publicá-lo como tal. Você pode encontrar o post original em aqui

Uma mudança notável no tempo de verificação de atualização para instalação estava lá quando eu alterei as configurações de atualização do Windows para Check for updates but let me choose whether to download and install them

1
Advertisement
1
1
2015-10-20 10:09:12 +0000

É lento porque o Windows Update e vários outros componentes do sistema Windows utilizam o motor de base de dados Microsoft JET Blue , que sofre de um desempenho notoriamente mau e é um porco de recursos global.

Tal como outros mencionaram, parece haver também algum grau de recorrência no próprio código do Windows Update, o que leva a um mau desempenho à medida que o número de actualizações aumenta.

1
1
1
2015-07-01 18:46:57 +0000

Na minha opinião, a melhor aposta é apenas activar as actualizações do windows e mudar para a opção que lhe permite descarregar as actualizações mas não instalar automaticamente. Desta forma, pode obter o que pretende instalado sem ter de esperar por verificações ou downloads de ficheiros de fundo.

Agora, para responder porque está lento. Penso que se resume simplesmente ao facto de as actualizações do Windows terem sido construídas a pensar na redução do impacto perceptível para os utilizadores. Utiliza o serviço BITS (background intelligent transfer service) para verificar e descarregar actualizações.

Mais uma vez, o foco com este serviço é trabalhar de uma forma que não perturbe o utilizador. As velocidades são intencionalmente lentas por desenho já que a Microsoft nunca pretendeu que os clientes ligassem e desligassem o serviço de actualizações todos os meses.

O que pode procurar é obter a sua própria configuração do servidor WSUS. Desta forma pode negar actualizações da mesma forma que os administradores da empresa e pode aplicar ou negar as actualizações escolhidas a todos os seus dispositivos Windows que possui. Fazendo essa tarefa de actualizar selectivamente, menos uma tarefa.

0
Advertisement
0
0
2018-05-08 16:10:00 +0000

Apenas para acrescentar mais um ponto de dados. Recentemente tive de falar num PC Vista. Fiz o upgrade manual do Vista de SP1 para SP2, mas a verificação da actualização demora uma eternidade. Não aconteceu nada durante 24+ horas.

Fiz algum googling que encontrou uma solução que inclui a instalação das seguintes actualizações: http://www.catalog.update.microsoft.com/Search.aspx?q=KB3205638%20vista [http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012583%20vista](http://www.catalog.update.microsoft.com/Search.aspx?q=KB4012583%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015195%20vista http://www.catalog.update.microsoft.com/Search.aspx?q=KB4015380%20vista

Depois de fazer o download e instalar as actualizações manualmente. Executei a verificação de actualização durante 10 min e encontrei 200 actualizações. Tenha em mente que isto é para o Vista mas penso que talvez exista algo semelhante para o Windows 7 também.

-1
-1
-1
2015-10-24 20:34:13 +0000

Eu tinha este problema e o que fiz foi deixar o Windows Update funcionar durante a noite, pela primeira vez, numa máquina recém-instalada. Dicas para fazer isso com sucesso:

  • Ir para as opções de energia, definir o tempo de espera para “nunca”

  • Ligar o Windows Update automático. O tempo padrão de 03:00AM está ok já que o processo de pesquisa também leva tempo

  • Também é recomendado fazer um processo de “Windows update precisa de actualizar alguns componentes …” na primeira vez (vai rapidamente comparado com as mais de 200 actualizações no caso do Windows 7)

Quando tudo tiver sido actualizado correctamente, irá encontrar uma enorme quantidade de patches (cerca de 200) foram instalados. O Windows também defragged e correu as actualizações/scans do Windows Defender.

Depois disso, os restantes ciclos de Windows Update (procura por actualizações - instalar - reiniciar - procurar por actualizações - instalar - reiniciar - procurar por actualizações … até que # actualizações se tenha tornado 0) funcionam muito mais rapidamente.

-1
Advertisement
-1
-1
2015-11-30 00:37:40 +0000

Na nova instalação do windows 7 uso o disco de instalação original mas ainda com o disco de instalação de actualizações slipstreamed, de qualquer forma sugiro que experimente as actualizações kb3102810 e kb3050256 para instalar logo após a nova instalação estas duas podem aumentar significativamente a velocidade de pesquisa e instalação de actualizações.

-2
-2
-2
2015-03-16 06:31:45 +0000

Não é um hashing, mas sim, é verificar muito (tão profundo como algumas DLLs versão de arquivo). É lento independentemente do sistema que utiliza.

Como solução, mantenha-o desligado e quando houver um dia ou uma noite não precisa muito do sistema, ligue-o, force-o a verificar se há actualizações e deixe-o instalar todos.

Advertisement