Comprendre le temps de démarrage de Windows pour permettre de l’optimiser - 1

 

Voilà un grand et vaste sujet : La performance. Ce sujet sera traité très régulièrement sur ce blog.

Voici donc le premier post d’une série concernant l’analyse du boot de Windows, la compréhension du mécanisme de démarrage et l’amélioration de la performance.

Avant de commencer il me faut préciser une petite chose : Il n’y a pas de temps de boot “normal”. Nous ne pourrons donc pas vous donner un temps de boot moyen, ni vous dire si il est normal que votre poste boot en 1 ou 2 ou 3 ou 5 minutes. Cependant il y a des temps de démarrage qui semblent rapides et d’autres qui semblent longs. Ces lenteurs pouvant être dues à beaucoup de choses, essayons de comprendre tout ça.

Pour diagnostiquer en détail les problèmes de performance il vous faudra vous munir d’un outil très intéressant : Windows Performance Toolkit, plus connu sous le nom de XPerf. XPerf est l’un des composants du SDK de Windows 7 qui est disponible ici: https://www.microsoft.com/download/en/details.aspx?id=8279

Cet outil est composé de trois exécutables principaux : xperf.exe (pour une trace de performance pendant l’exécution du poste), xbootmgr.exe (pour une trace durant des phases de transition) et xperfview.exe pour lire les traces générées.

Notez que ces outils sont valables sur Windows XP, Vista et 7 coté client, mais également sur la famille Windows Server. Cependant les informations communiquées ici partent du principe que les traces sont faites sur Windows 7.

Prendre une trace de boot

Pour prendre une trace du boot de la machine, ouvrez une ligne de commande avec des droits administrateur. Placez la dans le répertoire d’installation de XPerf (par défaut %ProgramFiles%\Microsoft Windows Performance Toolkit) et lancez la ligne de commande suivante :

Xbootmgr -trace boot -traceFlags Latency+DISPATCHER -postBootDelay 250

Cela aura pour effet de faire redémarrer votre machine et de prendre une trace au démarrage de Windows qui finira 250 secondes après le login de l’utilisateur. L’ouverture de session devra être faite avec le compte qui à lancé la trace.

Notez que ne faire qu’une seule trace ne permet pas de garantir que la trace soit représentative. Il est donc possible soit de faire plusieurs traces à la main, soit de rajouter à la ligne de commande précédente l’option “-numruns 3” pour faire trois traces consécutives par exemple. Nous conseillons 3 traces minimum.

Ouvrir et analyser la trace

Une fois la trace effectuée, le fichier généré sera situé dans le répertoire d’exécution de la ligne de commande. Ouvrez le fichier .etl généré avec xperfviewer.exe.

Après le temps de chargement de la trace, beaucoup de graphiques vont alors s’afficher. Sélectionnez uniquement les graphiques suivants :

imageNous sélectionnons ici les graphiques nous indiquant la charge CPU, les accès disque, la vie des processus, le lancement des services et les phases de boot.

Identifier les phases de démarrage

Pour avoir une vue générale de votre démarrage, utilisez le graphique “Boot Phases” qui vous indiquera les phases principales de votre démarrage.

image

Ici nous observons un temps de boot total de 126 secondes environs avant que le poste soit considéré comme utilisable (fin de la phase Post-boot). Alors que le bureau s’est affiché vers la seconde 95 (Explorer).

Winlogon

Durant cette phase, il se passe beaucoup de chose, application des GPO Machines, démarrage des services automatiques, identification de l’utilisateur, etc. . Nous verrons comment identifier ces différentes phases dans un prochain billet.

Post Boot

Durant cette phase, l’une des principales causes de problèmes de performance est la lenteur de l’accès au disque dur. Par exemple durant cette phase, Windows applique les GPO Utilisateur, charge la base du moteur d’indexation, stocke les informations qu’il a prit durant le démarrage pour permettre l’amélioration Ready Boot (nous ferons un post spécifique pour Ready Boot) et lance les applications qui sont renseignées pour être lancées au démarrage de Windows.

Vous pouvez observer cela dans les graphiques “disk utilization” et “disk utilization by process”, par exemple :

image

Le graphique “disk utilization by process” vous permet d’identifier le ou les processus responsable d’une grande activité disque au démarrage. Il est important de diminuer au maximum le nombre de processus se lançant lors de l’ouverture de session afin de réduire le temps de mise à disponibilité du poste. Pour savoir pourquoi les processus se lancent au démarrage vous pouvez utiliser l’outil autoruns.exe disponible sur le site de Sysinternals : https://live.sysinternals.com, ou l’utilitaire système Windows msconfig.exe.

 

Je conclu une première présentation rapide d’une prise de trace et de ce qu’il est possible de voir via XPerf. Cependant cet outil est bien plus puissant et nous servira encore beaucoup.

Je vous donne rendez-vous bientôt pour étudier la phase de Winlogon.