Vous avez des problèmes de performance disques, , Problème de lenteur au boot/logon de Windows, vous avez des problèmes de consommation CPU anormalement élevés, des fuites mémoire etc.... Nous allons vous montrer comment le « Windows Performance Toolkit » va très vite vous devenir indispensable. Le « Windows Performance Toolkit » et le moteur « Event Tracing for Windows » sont probablement ce qui a transformé le plus Windows ces 6 dernières années.
2. En direct du Centre d'Escalade
du Support Microsoft :
Comment dépanner des
problèmes de performance ?
(LAN403)
Philippe Dieulafait Hervé Chapalain
Ingénieurs d’Escalade
Microsoft
3. Agenda
Fuites mémoire mode User
Fuites mémoire mode Kernel
Performance disque
Performance lors du boot
4. Outils et Technologie
Windows Performance Toolkit (WPT 4.7)
Disponible dans le Windows SDK 7.1
Event Tracing for Windows (ETW)
Voir les nombreux articles dans MSDN
5. Heap Leak
• Permet de tracer les fuites mémoire des applications
mode User utilisant le Heap Manager
Démarrage du tracing
xperf -on Base -start HeapLeak -stackwalk
HeapAlloc+HeapRealloc -heap -Pids <PID>
Arrêt du Tracing
xperf -stop HeapLeak -stop -d heap.etl
6. Pool Leak
• Permet de tracer les fuites mémoire des pools du
kernel de Windows
Démarrage du tracing
xperf -on Base+POOL -stackwalk
PoolAlloc+PoolAllocSession+PoolFree+PoolFreeSession –
minbuffers 1000 -BufferSize 1024 -MaxBuffers 1024 -
MaxFile 1024 -FileMode Circular
Arrêt du Tracing
xperf -d pool.etl
11. Aperçu du processus de
démarrage
Pourquoi le processus de démarrage est si
complexe?
Interaction de nombreux composants Inbox et 3rd
partie
OS
BIOS OS Initialization
Loader
( pas à l’échelle)
OS Kernel Session Winlogon Explorer ‘Post Boot’
BIOS
Loader Initialization Initialization Initialization Initialization Activity
Launch various Numerous
Read Enumerate Initialize Initialize the shell,
services, application &
drivers, devices, initialize & sessions, load process & run auto
orchestrate services
read parts start drivers (PnP) win32k run tasks
session logon consuming CPU
of registry subsystem, Initializ
e, graphics, launch &disk resources
SCM
12. ReadyBoot Prefetcher
OS Kernel Session Winlogon Explorer ‘Post Boot’
BIOS
Loader Initialization Initialization Initialization Initialization Activity
ReadyBoot prefetcher
OS Components
OS Components
OS Components Applications
I/O
File System
OS, apps, &
In-RAM services reads
ReadyBoot
ReadyBoot (cache hits)
Cache
Driver
IO Stack
Volume
Manager
Prefetching
reads
OS, apps, &
services reads
Hard Drive (cache misses)
13. BIOS « Boot Phase »
BIOS
Externe au code de l’OS
Délai induit par la détection d’un CD ou
l’initialisation Boot PXE
Pas reporté directement par Xperf
14. OS Loader (Pre-Session Init Boot
Phase)
OS Xperf vue
BIOS
Loader
Démarre quand le BIOS passe le contrôle au
Loader (Winload)
Se termine lorsque le contrôle est passé au
noyau (Kernel)
Problème de performance:
Drivers non signé avec un certificat valide
Durée quelques secondes (dépendra du nombre
de drivers tiers installés)
15. Kernel Init (Pre-Session Init Boot
Phase) Xperf vue
OS Kernel
BIOS
Loader Initialization
Contient le Noyau (kernel de base) et
l’initialisation PnP
‘’Boot PnP Sub-Phase‘’
‘’Foreground System PnP Sub-Phase‘’
Problème de performance:
Drivers initialisation / Énumération des Devices …
Drivers défectueux, algorithmes mal optimisés
Drivers non signé avec un certificat valide
16. Session Init Boot Phase Xperf vue
OS Kernel Session
BIOS
Loader Initialization Initialization
Activités telles que Autochk et initialisation de la
Vidéo
Action concernant les mises à jours ‘’retardé’’
System PnP Sub-Phase ‘’continue‘’ (Backgroud)
Commun à cette phase: le délai de l’initialisation
de la Vidéo
Problème de performances supplémentaire si les
actions PnP en ‘’Background‘’ prennent du temps
17. Winlogon Init Boot Phase Xperf vue
OS Kernel Session Winlogon
BIOS
Loader Initialization Initialization Initialization
Initialisation du SCM (Services.exe)
Initialisation de la plupart des Services
Écran ‘’Bienvenue‘’
Écran de Logon
Initialisation du Desktop
Problème de performance:
Mappage connexion réseau
GPO du Domain
Services qui démarrent (Démarrage se poursuivant dans les phases
suivantes)
Une charge I/O et CPU importantes peuvent augmenter la durée de cette
phase
18. Explorer Init Boot Phase Xperf vue
OS Kernel Session Winlogon Explorer
BIOS
Loader Initialization Initialization Initialization Initialization
Le temps pour L’Explorer de charger ces
paramètres et les initialiser
Principalement consacré passé à initialiser
l’interface utilisateur
Phase habituellement rapide prenant quelques
secondes
19. Post Boot Phase Xperf vue
OS Kernel Session Winlogon Explorer
BIOS Post Boot
Loader Initialization Initialization Initialization Initialization
Le ‘’Background processing’’ continue ici
Services poursuivant leur démarrage
Activité du Prefetching ( si le Boot ‘’footprint‘’ est large)
Activité Antivirus
Démarrage des applications
Raccourcis dans le Tray, indicateur de statuts OEM, IM software,
applications de démarrage utilisateur customisées, etc
Typiquement on peut voir 20 à 40(voire plus) processus 3rd
partis qui démarrent
Forte consommation des ressources CPU et Disque ce qui peut
provoquer un goulet d’étranglement (Bottleneck)
L’impact avec l’utilisateur peut être important avec un sentiment
de lenteur générale
Phase considérée terminée lorsque le Système est
raisonnablement Idle (accumulation d’un total de 10s d’Idle time
20. Post Boot Phase
Exemple : Post Boot ressources utilisation
CPU Utilization
CPU Utilization
Disk Utilization
Disk Utilization
Clean-install Boot Real User Boot
22. Créer une trace au démmarage
Exemple
xbootmgr -trace boot -traceflags base+latency+dispatcher+Drivers -stackwalk
profile+cswitch+readythread -notraceflagsinfilename -postbootdelay 90 <Path>
Sur un OS X64 ajouter le paramètre suivant:
HKLMSystemCurrentControlSetControlSession ManagerMemory
Management
DisablePagingExecutive
REG_DWORD
Value: 1
Redémarrer l’ordinateur
Une fois la trace terminée pensée à changer la valeur de
DisablePagingExecutive à 0 ou a supprimer cette entrée crée
23. Demo Boot Phases
xperf -help processing
Affiche les options pour extraire les données d’un fichier ETL
xperf -i tracename.etl -o summary.xml -a boot
Créer un résumé de la trace dans un fichier XML
XperfView
26. Liens
Windows Performance Analysis Developper Center
http://msdn.microsoft.com/en-us/performance/cc709422
Windows On/Off Transition Performance Analysis
http://msdn.microsoft.com/fr-fr/windows/hardware/gg463386
Windows On/Off Transitions Solutions Guide
http://msdn.microsoft.com/en-us/windows/hardware/gg463230
27. Pour aller plus loin
Prochaines sessions des Dev Camps
Chaque semaine, les 10
Live Open Data - Développer des applications riches avec le
février
DevCamps 2012
16
Meeting protocole Open Data
ALM, Azure, Windows Phone, HTML5, OpenData février
Live
Meeting
Azure series - Développer des applications sociales sur
la plateforme Windows Azure
2012
http://msdn.microsoft.com/fr-fr/devcamp
17
Live Comprendre le canvas avec Galactic et la librairie
février
Meeting three.js
2012
Téléchargement, ressources 21
février
Live La production automatisée de code avec CodeFluent
Meeting Entities
et toolkits : RdV sur MSDN 2012
2 mars Live Comprendre et mettre en oeuvre le toolkit Azure pour
http://msdn.microsoft.com/fr-fr/ 2012 Meeting Windows Phone 7, iOS et Android
6 mars Live
Nuget et ALM
2012 Meeting
Les offres à connaître 9 mars
2012
Live
Meeting
Kinect - Bien gérer la vie de son capteur
90 jours d’essai gratuit de Windows 13 mars
2012
Live
Meeting
Sharepoint series - Automatisation des tests
Azure 14 mars Live TFS Health Check - vérifier la bonne santé de votre
www.windowsazure.fr 2012 Meeting plateforme de développement
15 mars Live Azure series - Développer pour les téléphones, les
2012 Meeting tablettes et le cloud avec Visual Studio 2010
Jusqu’à 35% de réduction sur Visual 16 mars Live Applications METRO design - Désossage en règle d'un
Studio Pro, avec l’abonnement MSDN 2012 Meeting template METRO javascript
20 mars Live Retour d'expérience LightSwitch, Optimisation de
www.visualstudio.fr 2012 Meeting l'accès aux données, Intégration Silverlight
23 mars Live OAuth - la clé de l'utilisation des réseaux sociaux dans
2012 Meeting votre application