web-dev-qa-db-fr.com

Pourquoi la vérification de Windows Update est-elle si lente?

J'ai des PC Windows 7 pour lesquels la mise à jour automatique est désactivée. Je fais des mises à jour en lot une fois par mois environ. Mais chaque fois, "vérifier la mise à jour" prend 15 à 30 minutes. Je ne comprends pas pourquoi la recherche de mises à jour peut être si lente? Je me demande ce qui se passe en arrière-plan. Est-ce informatique hachage? Est-ce que mes PC sur lesquels les mises à jour automatiques sont activées subissent le même sort à chaque démarrage (sauf que je ne le savais pas)?

122
some user

Le recherche des mises à jour part est si lent parce que:

  • Windows 7 utilise Component-Based Servicing , ce qui signifie que Windows Update doit travailler extrêmement dur pour déterminer les dépendances/interdépendances de fichiers et de composants, gérer les versions côte à côte d'anciens fichiers/composants, tout en rendant cela possible. désinstaller des mises à jour/composants individuels mais sans interrompre d’autres mises à jour/composants, tout en tenant compte de la supercédence et dieu ne sait quoi d’autre. Le code qui fait tout cela doit être incroyablement complexe.

  • Windows 7 64 bits doit conserver les versions 32 bits et 64 bits de chaque mise à jour.

  • Windows doit conserver les versions GDR et LDR de chaque mise à jour, ce qui signifie que sous Windows 7 64 bits, vous obtenez un fichier GDR 32 bits, LDR 32 bits, GDR 64 bits et LDR 64 bits pour chaque mise à jour.

  • Le code sous-jacent à Windows Update est très inefficace, probablement en raison de sa complexité conceptuelle. Mes observations ces dernières années sont que, avec l'augmentation du nombre total de mises à jour publiées, le temps de vérification des mises à jour a augmenté de façon presque exponentielle. Pour moi, cela indique une sorte d'algorithme récursif utilisé, peut-être pour déterminer la superscence ou résoudre les dépendances.

Malheureusement pour nous, Microsoft n'aime pas parler des composants internes de Windows, nous devons donc nous débrouiller seuls ou spéculer.

102
misha256

Plusieurs aspects du problème ont été traités dans les réponses existantes. Je vais essayer de les lier ensemble en énumérant les causes de manière générale, sans répéter ce qui a déjà été dit:

  1. Le mécanisme de mise à jour de Microsoft Windows est extrêmement sophistiqué, ce qui signifie malheureusement aussi compliqué
  2. WU doit prendre en charge un nombre incalculable de combinaisons matériel/logiciel
  3. WU doit appliquer les mises à jour dans le bon ordre
  4. Windows 7 est un système plus ancien et le SP2 est en retard et n'arrivera probablement jamais, ce qui entraîne de très nombreuses mises à jour.
  5. Les dernières années, Microsoft a été soumis à une forte pression pour résoudre de nombreux problèmes de sécurité, ce qui a entraîné de nombreuses corrections agitées, puis des corrections de corrections, etc. de la génération suivante.
  6. Microsoft n’a pas été en mesure d’optimiser suffisamment le mécanisme de mise à jour, qui est en général un algorithme exponentiel, donnant lieu à un algorithme à force brute plutôt lent.
  7. Les serveurs WU de Microsoft sont parfois surchargés.

Voyons ces points plus en détail.

Complexités Windows Update

Lorsqu'une mise à jour est publiée, elle peut entrer dans trois phases différentes supplémentaires dans le temps: les révisions, les remplacements et l'expiration.

Update Revisions : Lorsque des modifications sont apportées à une mise à jour précédemment publiée, il s'agit d'une révision de mise à jour, dans laquelle certaines parties du téléchargement sont modifiées. Il s’agit d’un remplacement partiel, mais pas complet, de la mise à jour.

Mises à jour remplacées : Ceci est le remplacement complet d'une ou plusieurs versions précédentes. Parfois, Microsoft encapsule plusieurs versions dans un seul package, qui remplace ses mises à jour encapsulées.

Mises à jour expirées : Il s'agit de mises à jour supprimées de la liste des mises à jour valides. Ces mises à jour ne sont plus applicables et ne seront pas détectées pour l'installation. La plupart du temps, une mise à jour est expirée après avoir été remplacée par une mise à jour remplacée.

Les mises à jour ont également un mécanisme de dépendance, ce qui signifie que certaines mises à jour peuvent nécessiter que d'autres mises à jour soient appliquées en premier.

Les mises à jour expirées sont problématiques pour la performance WU, car malheureusement, elles ne sont pas supprimées de l'ordinateur. Elles prennent donc toujours part aux calculs, et ils sont nombreux. Certaines améliorations peuvent être obtenues en utilisant Nettoyage de disque pour Supprimer les mises à jour Windows obsolètes (prenez d’abord une image de disque de sauvegarde du lecteur système, car WU est également très fragile).

WU Calculs

En raison du nombre considérable de combinaisons possibles, Microsoft conserve toutes les mises à jour sur les serveurs WU au format d'un arbre gigantesque. Le choix des mises à jour à appliquer est effectué par un algorithme d'élagage, qui prend en compte le matériel et les logiciels installés par le client, ainsi que toutes les mises à jour déjà installées, ce qui constitue en soi un grand nombre de faits nécessitant tous être appliqués avec succès lors de l'élagage.

La réussite de l'algorithme n'est pas garantie, ce qui signifie que WU est parfaitement capable de détruire le système d'exploitation ou même de le rendre non amorçable. Cela est parfaitement compréhensible, par exemple en prenant une mise à jour A1, avec la révision A2, où une mise à jour B dépendant de A a été publiée entre A1 et A2. Voyons maintenant si l’ordre d’installation doit être A1-B-A2 ou A1-A2-B, si la mauvaise décision peut être fatale.

Serveurs WU surchargés

Wikipedia a ceci à dire à propos de Statistiques Windows Update :

En 2008, Windows Update comptait environ 500 millions de clients, traitait environ 350 millions d'analyses uniques par jour et maintenait en moyenne 1,5 million de connexions simultanées aux ordinateurs clients. Le mardi du correctif, le jour où Microsoft publie généralement de nouvelles mises à jour logicielles, le trafic sortant pourrait dépasser 500 gigabits par seconde.

Ces chiffres ont probablement déjà doublé, ce qui explique pourquoi les serveurs WU sont parfois inaccessibles. J'utilise l'option WU de "Vérifier les mises à jour, mais laissez-moi choisir", et ma propre expérience est qu'il y a des jours et des heures où la vérification des mises à jour prend plus de temps que je ne suis prêt à attendre, nécessitant un report.

La longue histoire de Windows 7

Windows 7 est sorti le 22 juillet 2009. Après environ 17 mois, le Service Pack 1 (SP1) est sorti le 22 février 2011. C'était il y a environ 4,5 ans, ce qui signifie que SP2 se fait attendre depuis longtemps.

Le bon côté d'un Service Pack est que son installation efface tout l'historique de la mise à jour, ce qui fait que WU commence à zéro, exactement comme après une nouvelle installation de Windows. Bien sûr, cela accélère énormément tous les calculs, car il y a moins de mises à jour à prendre en compte.

Le grand nombre de mises à jour existantes depuis le SP1 explique pourquoi les calculs de WU sont si lents aujourd'hui. Pour Microsoft, le problème peut être résolu "simplement" en effectuant une mise à niveau vers la version plus récente de Windows 8.1 ou Windows 10, de sorte que WU aura un nombre de mises à jour moins important à prendre en compte.

Conclusion

Comme Microsoft continue à appliquer de nombreuses mises à jour à Windows 7, WU continuera à ralentir au fil du temps.

Une optimisation possible consiste à Supprimer les mises à jour Windows obsolètes . Une autre consiste à utiliser l'option WU de "Vérifier les mises à jour, mais laissez-moi choisir", et à vérifier les mises à jour tôt le matin ou tard dans la nuit.

La plupart des mises à jour s'appliquent également à Windows 8 et 10, de sorte que la charge sur les serveurs WU de Microsoft ne se multipliera que lorsque Windows 10 sera bientôt disponible. Microsoft semble également répartir la bande passante de ses serveurs WU en fonction de ses propres stratégies, en mettant l’accent sur le fait de servir les systèmes d’exploitation les plus récents. Nous devrions donc nous attendre à un nouveau ralentissement de Windows 7 une fois la version Windows 10 publiée, avec des mises à jour disproportionnées plus rapides pour Windows 10.

Si WU est trop lent, la seule solution réelle consiste à effectuer une mise à niveau vers une version ultérieure de Windows.

Bonne nouvelle: le SP2 pour Windows 7 (et 8.1) est arrivé

Microsoft a publié ce qui est en fait le SP2 pour Windows 7 et 8.1. Cette mise à jour ne sera pas disponible à partir de Windows Update pour une raison inconnue, elle doit donc être téléchargée et installée manuellement.

Découvrez comment l'obtenir dans l'article:
Microsoft révise les mises à jour de Windows 7 et 8.1 - mais n’appelez pas cela un service pack .

60
harrymc

Ce problème a évolué au fil des ans avec différentes corrections en cours de route. Voici mon guide mis à jour à ce sujet à compter de cette date. 5 janvier 2016

Consultez la section ÉDITER ci-dessous. Il existe un moyen beaucoup plus rapide de mettre à jour complètement Windows 7 SP1 après une nouvelle installation à partir de mai 2016.

C’est ce que je fais lorsque je réinstalle W7 avec SP1 ou que des problèmes avec la mise à jour Windows sont bloqués lors de la recherche de mises à jour.

Si le Service Pack 1 n'est pas installé, installez-le avant de suivre ce guide.

Téléchargez KB-3138612 et enregistrez-le où vous pourrez le retrouver ultérieurement

Téléchargez SUR Tool enregistrez-le au même endroit

Redémarrez le PC et déconnectez-vous d'Internet avant le chargement de Windows. Ceci est important car à chaque démarrage, Windows recherchera les mises à jour en arrière-plan, ce qui relancera la vérification des mises à jour et empêchera l'installation des packages téléchargés jusqu'à la fin. Pour vous en empêcher, la déconnexion d’Internet avant le chargement de Windows l’empêche.

Une fois démarré, installez KB-3138612, si un redémarrage est requis, faites-le et restez déconnecté d'Internet.

Maintenant, installez le package SUR Tool, il s’agit d’un gros package qui installera de nombreuses mises à jour, ainsi que le nettoyage et la réparation du magasin de mises à jour Windows. Cela réduira également le nombre de mises à jour Windows supplémentaires à installer ultérieurement.

Après l’installation du redémarrage du paquet SUR, connectez-vous à Internet et effectuez une mise à jour manuelle de Windows. Cela devrait fonctionner beaucoup plus vite maintenant. Même après ces correctifs, certains PC W7 mettent jusqu'à une heure pour vérifier les mises à jour si elles sont lancées manuellement à partir du Panneau de configuration.

Si vous avez d'autres problèmes de mises à jour Windows et que les 2 mises à jour ci-dessus sont installées, téléchargez cet outil de fixation de Microsoft Windows Update (cliquez avec le bouton droit de la souris sur "Enregistrer le lien sous"), exécutez-le et sélectionnez le mode agressif pour réinitialiser complètement les mises à jour Windows. Redémarrez et essayez à nouveau les mises à jour Windows à partir du Panneau de configuration. Cet outil corrige des problèmes lorsque les autres outils Microsoft Fixit échouent, du moins d'après mon expérience.

Mise à jour: Microsoft a publié un important correctif cumulatif pour Windows 7 SP1 , cela ressemble à un service pack, mais ils ne l'appellent pas ainsi. Cela rendra beaucoup plus rapide la mise à jour de Windows 7 après une nouvelle installation, plus de problèmes de mise à jour de Windows et de nombreux redémarrages. Cette mise à jour apportera le correctif actuel du système au mardi d'avril 2016.

Ceci n'est pas publié via Windows Update, vous devez utiliser Internet Explorer pour l'obtenir, ouvrir IE et aller à cette adresse.

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

Tapez dans la case de recherche 3125574 et appuyez sur la touche Entrée.

 enter image description here

Maintenant, vous verrez toutes les versions de ce correctif, sélectionnez celle dont vous avez besoin et téléchargez-la quelque part que vous pourrez retrouver plus tard.

 enter image description here

Utilisez également la page Catalogue Windows Update pour téléchargez et installez d’abord cette mise à jour, 3020369 , c’est une condition préalable au cumul, puis installez 3125574 et veillez également à vous déconnecter d’Internet lorsque vous appliquez ces mises à jour. .

21
Moab

Lorsque vous utilisez ETW/WPR/WPA pour vérifier l'utilisation du processeur au cours de l'analyse, vous constatez que l'utilisation du processeur provient de wuaueng.dll!CUpdatesToPruneList::AddSupersedenceInfoIfNeeded qui est appelé à partir de wuaueng.dll!CAgentUpdateManager::FindUpdates. La méthode AddSupersedenceInfoIfNeeded est la méthode la plus lente . Cela correspond à ce que le nom indique et recherche si les mises à jour Windows 7 proposées/installées sont toujours nécessaires ou remplacées (obsolètes/remplacées par de nouvelles). C'est très lent.

Avec la dernière mise à jour du client Windows Update du juin 2016 , qui fait fait partie du correctif cumulatif de Windows 7 juillet 2016 , la recherche de la mise à jour est à nouveau rapide.

  1. Télécharger:

Il ne me faut qu'un peu plus d'une minute pour rechercher de nouvelles mises à jour. Pour accélérer la configuration de la mise à jour KB3172605, arrêtez le service WindowsUpdate (net stop wuauserv).

Cette astuce d'arrêt du service WU accélère considérablement l'installation lorsque vous installez plusieurs mises à jour 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"

Dans Windows 10, Microsoft a résolu le problème en suivant ma suggestion et en rendant les mises à jour cumulatives. Ici, vous n'avez besoin que d'une grosse mise à jour pour être au niveau du correctif actuel. Cette vérification lente n'est plus nécessaire.

9
magicandre1981

Si des expériences passées avec la mise à jour XP en sont une indication, elles laisseront occasionnellement laisser glisser un algorithme de temps exponentiel . Une fois que vous avez plusieurs mises à jour, cela prend une éternité. Actuellement, les mises à jour Win 7 sont dans une situation similaire; prendre beaucoup de temps, bien qu'il n'y ait pas encore d'explication officielle pour ce dernier épisode de lenteur. Il est intéressant de noter que cela "se produit" (avec les anciennes versions) quand ils en ont une nouvelle. Le cynique ne peut s'empêcher d'imaginer que quelqu'un veuille intentionnellement que cela se produise, à l'instar de [l'ancien] Windows, c'est lent? Vous avez besoin d'une nouvelle version. Ou peut-être que c'est juste la façon dont la SP commence la saison des vacances.

Il existe un correctif pour un type de lenteur WU qui n'est pas proposé automatiquement (c'est-à-dire via la mise à jour elle-même): https://support.Microsoft.com/en-us/kb/3102810 Hélas, dans mon cas, cela n’a pas vraiment changé, et je l’ai essayé sur deux ordinateurs différents, un 32 bits et un 64 bits. En outre, cela existe depuis octobre, donc ce n'est probablement pas pour le dernier numéro [s].

3
Fizz

Il y a environ un milliard de PC sous Windows aujourd'hui. Chaque ordinateur possède une combinaison de matériel, accessoires, version de système d'exploitation, langue, IE, version de pilote de périphérique, logiciel Microsoft à différents niveaux de correctif, mises à jour de sécurité, etc. Le système Windows Update doit trier toutes ces combinaisons pour offrir les bonnes mises à jour un PC individuel. Chaque mise à jour a des propriétés comprenant des dépendances et une structure "supercedence".

La première étape (première exécution) de l'analyse consiste à déterminer la version du système d'exploitation, le SP, la langue et le fabricant du PC afin d'élaguer l'arborescence des mises à jour probables du PC. Sur la base de cette première analyse, un ensemble probable d’ID de mise à jour est envoyé au périphérique et le client local calcule les mises à jour installées, remplacées, etc., puis envoie cette liste au serveur et met également en cache une copie localement pour les analyses ultérieures. Le serveur répond à la demande du client concernant les mises à jour avec les descriptions, etc., affichées dans l'interface utilisateur (dans la langue de l'interface utilisateur appropriée).

Une fois par jour, le client de mises à jour automatiques effectue une vérification de mise à jour en arrière-plan et actualise le cache local des mises à jour installées, de sorte que les analyses suivantes ne sont que rapides et rapides. Ceux-ci sont stockés dans le dossier% windir%\softwaredistribution sur le PC.

Un processus similaire est également exécuté pour les mises à jour précédemment téléchargées. Le service ne téléchargera pas à nouveau les packages.

Trouvé ce post qui nous aidera à au moins comprendre ce qui se passe réellement lors de la recherche. C'est écrit magnifiquement. Donc, je le poste comme tel. Vous pouvez trouver le message original à ici

Un changement notable dans le temps pris pour vérifier la mise à jour pour l'installation était présent lorsque j'ai modifié les paramètres de mise à jour Windows en Check for updates but let me choose whether to download and install them

À mon avis, votre meilleur choix est simplement d'activer les mises à jour Windows et de basculer vers l'option qui vous permet de télécharger les mises à jour mais de ne pas l'installer automatiquement. De cette façon, vous pouvez installer ce que vous voulez sans avoir à attendre des vérifications ou des téléchargements de fichiers en arrière-plan.

Maintenant, pour répondre pourquoi c'est lent. Je pense que cela découle simplement du fait que les mises à jour Windows ont été conçues pour réduire l’impact notable sur les utilisateurs. Il utilise le service BITS (service de transfert intelligent en arrière-plan) pour rechercher et télécharger les mises à jour.

Encore une fois, l'objectif de ce service est de fonctionner de manière à ne pas déranger l'utilisateur. Les vitesses sont intentionnellement réduites car Microsoft n'a jamais eu l'intention d'activer et de désactiver le service de mise à jour tous les mois.

Ce que vous pourriez envisager est d’obtenir votre propre configuration de serveur WSUS. De cette manière, vous pouvez refuser les mises à jour de la même manière que les administrateurs d'entreprise. Les mises à jour choisies peuvent être appliquées ou refusées à tous vos appareils Windows que vous possédez. Faire cette corvée de mise à jour sélective, moins d'une corvée.

1
Geruta

Il est lent, car Windows Update et plusieurs autres composants du système Windows utilisent le moteur de base de données Microsoft JET Blue , qui souffre de performances notoirement mauvaises et qui constitue un véritable gâchis de ressources.

Comme d'autres l'ont mentionné, il semble également y avoir un certain degré de récursivité dans le code Windows Update lui-même, ce qui entraîne des performances médiocres lorsque le nombre de mises à jour augmente.

1
Jure Sah

Juste pour ajouter un autre point de données. Je dois récemment faire apparaître un PC Vista. J'ai mis à niveau manuellement Vista de SP1 à SP2, mais la vérification de la mise à jour prend une éternité. Rien ne s'est passé pendant plus de 24 heures.

J'ai fait quelques recherches sur Google pour trouver une solution comprenant l'installation des mises à jour suivantes:

http://www.catalog.update.Microsoft.com/Search.aspx?q=KB3205638%20Vistahttp://www.catalog.update.Microsoft.com/Search.aspx?q=KB4012583 % 20Vistahttp://www.catalog.update.Microsoft.com/Search.aspx?q=KB4015195%20Vistahttp://www.catalog.update.Microsoft.com/Search.aspx ? q = KB4015380% 20Vista

Après avoir téléchargé et installé les mises à jour manuellement. J'ai couru la vérification de mise à jour pendant 10 min et il a trouvé 200 mises à jour. N'oubliez pas que c'est pour Vista, mais je pense que quelque chose de similaire existe aussi pour Windows 7.

0
some user

J'ai eu ce problème et j'ai laissé Windows Update s'exécuter pour la première fois du jour au lendemain sur un ordinateur fraîchement installé. Conseils pour réussir cela:

  • Allez dans les options d'énergie, réglez l'heure de veille sur "jamais"

  • Activer Windows Update automatique. L'heure par défaut de 03:00 est correcte car le processus de recherche prend également du temps.

  • Il est également recommandé d'effectuer un processus "La mise à jour Windows doit mettre à jour certains composants ..." du premier coup (passe rapidement comparé aux plus de 200 mises à jour dans le cas de Windows 7).

Lorsque tout a été mis à jour correctement, vous constaterez qu’une quantité considérable de correctifs (environ 200) ont été installés. Windows a également défragmenté et exécuté les mises à jour/analyses de Windows Defender.

Après cela, les cycles Windows Update restants (recherche de mises à jour - installation - redémarrage - recherche de mises à jour - installation - redémarrage - recherche de mises à jour ... jusqu'à ce que # mises à jour soit devenu 0) fonctionnent beaucoup plus rapidement.

0
dreael