Upload
microsoft-technet-france
View
455
Download
2
Embed Size (px)
Citation preview
palais des
congrès
Paris
7, 8 et 9
février 2012
Bernard OurghanlianDirecteur Technique et SécuritéMicrosoft France
Comment passer au vert
? De la gestion de l’énergie au sein de
Windows
Code Session : GRE203
Introduction
La situation telle qu’elle est (bien souvent…)
Ce qu’elle devrait être…
Les développement du hardware
L’exemple d’Intel
Les développement de logiciels
L’exemple de Microsoft
Les technologies de gestion de l’énergie de Windows
La gestion de l’énergie en entreprise
System Center Configuration Manager 2007 R3
Sommaire
Introduction
1
Pas ou peu de considération pour le gâchis d’énergie• Les machines restent allumées 24h sur 24
• Les écrans sont laissés allumés
• Déploiement du logiciel, maintenance, etc.
• Piètre autonomie sur les terminaux mobiles / les PC portables
• Manque d’outils de gestion de l’énergie pour les entreprises
• Ignorance de la quantité d’énergie gâchée
• Le facteur « je m’en foustiste » car « ce n’est pas moi qui paye la facture »
• Les impacts économiques ne sont jamais pris en compte (facture énergétique)
• Manque de gouvernance, d’obligations
La situation telle qu’elle est (bien
souvent…)
Savez-vous qu’il faut une moyenne de 438 Kg de charbon
pour alimenter un ordinateur par an ?
Pour se faire peur…
Faronics.com
“After lighting, computers and
monitors have the highest energy
consumption in office
environments. Studies have shown
that power management of
computers and monitors can
significantly reduce their energy
consumption, saving hundreds or
thousands of dollars a year on
electricity costs.”
Le bureau moyen…
www.ddsw.co.uk
o Gestion manuelle de l’énergie, qui repose sur l’éducation
des utilisateurs afin qu’ils éteignent leur ordinateurs quand
ils n’en ont plus besoin : permet d’obtenir des résultats
impressionnants sous réserve d’une sensibilisation
permanente et de la mise en œuvre d’obligations
o Gestion automatique de l’énergie, qui repose sur le
logiciel ou sur les fonctionnalités standard d’économie
d’énergie. Théoriquement la gestion automatique de
l'énergie peut atteindre un objectif de 100 % de gestion de
l’énergie, tous les ordinateurs étant éteints quand ils n’en
ont pas besoin et en mode de consommation basse quand
ils sont inactifs
Quelle est la solution ?
Exemple de développement du
hardware : Intel
2
Mode Turbo avant la
microarchitecture Intel® Core™
(Nehalem)
Fré
qu
en
ce
(F
)
Pas de Turbo
Fré
qu
en
ce
(F
)
Cœ
ur
0
Cœ
ur
1
Cœ
ur
0
Cœ
ur
1
Horloge arrêtée
Réduction de l’énergie dans les cœurs inactifs
Travail peu chargé en thread
Mode Turbo avant la
microarchitecture Intel® Core™
(Nehalem)C
œu
r 0
Cœ
ur
1
Fré
qu
en
ce
(F
)
Pas de Turbo
Fre
qu
en
cy (
F)
Mode Turbo
En réponse à la charge ajoute des incréments de
performance dans l’espace libre
Cœ
ur
0
Horloge arrêtée
Réduction de l’énergie dans les cœurs inactifs
Travail peu chargé en thread
Intel® Turbo Boost 2.0 permet automatiquement aux cœurs
de tourner plus rapidement que la fréquence opératoire de
base tout en respectant des limites des spécifications
(puissance, courant et température)
La technologie Intel Turbo Boost 2.0 est activée quand l’OS
demande l’état de plus haute performance du processeur (P0)
La fréquence maximale de la technologie Intel Turbo Boost
2.0 est dépendante du nombre de cœurs actifs
Le temps dans lequel le processeur passe dans ce mode
Turbo dépend de la charge et de l’environnement de travail
Microarchitecture Mode Turbo
Intel® Core™ (Nehalem)
Eléments fixant la limite haute de la technologie Intel Turbo Boost 2.0 pour une charge de travail donnée :
Nombre de cœurs actifs
Consommation de courant estimée
Consommation de puissance estimée
Température du processeur
Quand le processeur opère en deçà de ces limites et que la charge de travail demande une performance additionnelle, le fréquence du processeur augmentera dynamiquement jusqu’à ce que la limite haute de la fréquence soit atteinte
La technologie Intel Turbo Boost 2.0 permet au processeur d’opérer à un niveau de puissance qui est plus élevé que sa puissance limite documentée (TDP – Thermal Design Power) pour des périodes courtes afin de maximiser la performance
Microarchitecture Mode Turbo
Intel® Core™ (Nehalem)
ACPI (Advanced Configuration and Power Interface)
Spécification d’interface standard
L’OS peut effectuer la gestion de l’énergie en utilisant cette API
Le hardware et des drivers logiciels supportent cette API
La mise en correspondance entre les mécanismes CPU et ACPI
est fournie par le BIOS et les drivers logiciels
Qu’est-ce que le standard ACPI
?
Gestion de l’énergie par l’OS
Hardware : CPU, BIOS etc.
Drivers logicielsACPI
Applications
Global system states (g-state)
G0 : Working
G1 : Sleeping (c.à.d.. suspendu, hiberné)
G2 : Soft off (c.à.d., éteint mais pouvant être
redémarré par des interruptions en provenance
des périphériques d’entrée)
G3 : Mechanical off
Le numéro le plus faible indique la puissance la plus élevée
L’état global du système ACPI
Global system states (g-state)G0 : En fonctionnement
Etats d’énergie du processeur (C-state)
C0 : Exécution normale
C1 : Ralenti (idle)
C2 : Energie moindre mais plus de temps pour sortir de la latence que C1
C3 : Energie moindre mais plus de temps pour sortir de la latence que C2
C4E/C5: Réduit le voltage CPU encore plus et éteint le cache mémoire
C6: Réduction en profondeur de l’énergie. Réduit le voltage interne du CPU à toute valeur, y compris 0 V
G1 : En sommeil (c.à.d. suspendu, hiberné)
Sleep State (S-state)
S0: En fonctionnement
S1: Tous les caches du processeur sont vidés, et le(s) CPU(s) cesse(nt) d’exécuter des instructions.
L’alimentation des CPU(s) et de la RAM est maintenue
S2: Le CPU est éteint
S3: Suspendu
S4: Hiberné
G2 : Soft off (S5)
G3 : Mechanical off
Les états d’énergie ACPI
G0 : En fonctionnement
Etats d’énergie du processeur (C-state)
C0 : exécution normale
Performance state (P-State)
P0: Plus hautes performances, énergie la plus importante
P1: inférieur à P0, voltage/fréquence mises à l’échelle
Pn: inférieur à P(n-1), voltage/fréquence mises à l’échelle
C1, C2, C3, C45e/C5, C6
G1 : En sommeil (c.à.d. suspendu, hiberné)
Sleep State (S-state) : S0, S1, S2, S3, S4
G2 : Soft off (S5)
G3 : Mechanical off
Les états d’énergie ACPI
Ce sont les états ralentis C-State : C1, …
Le CPU n’exécute pas d’instruction dans ces états C-states
Mécanismes de préservation de l’énergie Arrêt du signal d’horloge
Vidage et arrêt du cache
Arrêt des cœurs
Etat ralenti basse énergie
Etat C0 du cœur L’état normal d’opération d’un cœur au sein duquel le code est exécuté.
Etat C1/C1E du cœur Le cœur s’arrête ; il parcourt ses lignes de cache
Etat C3 du cœur Le cœur vide le contenu son cache instructions L1,
le cache données L1 et le cache L2 dans le cache partagé L3, tout en maintenant son état architectural. Toutes les horloges du cœur sont arrêtées à ce point. Plus d’opération de parcoursdes lignes de cache
Etat C6 du cœur Avant d’entrer en état C6, le cœur sauvegarde son état architectural au sein
d’une SRAM dédiée sur le chip. Une fois cette sauvegarde réalisée, le cœur voit son voltage passer à 0 volt
C-State au sein du processeur Intel Core
i7
La technologie de l’état C6 est appelée Deep Power Down
Sur un Mobile Core 2 Extreme X9100, en mode normal (C0),
son CPU consomme avec une horloge à pleine vitesse
un maximum de 59 A, qui tombe à 11 A quand le CPU
est en état C6, soit une réduction de consommation
de 81,35%
Sur un mobile Core 2 Duo T9400 ou T9600, qui ont une
consommation maximum de courant de 47 A, la consommation de
courant maximal tombe à 5,7 A quand le CPU est en mode C6, soit
une diminution de 87,87% de la consommation
Technologies Deep Power Down
(DPD)
www.hardwaresecrets.com
Les changements du BIOS
Exemple: Politique énergétique de l’état du processeur
Réduire la fréquence si la performance le permet
L’OS peut économiser de l’énergie
avec les processeurs modernes Intel /
AMD
Etat Freq % Type0 2800 100 Performance1 2520 90 Performance2 2142 85 Performance3 1607 75 Performance4 964 60 Performance5 482 50 Performance
Etat minimum du processeurEtat minimum du processeur
http://www.amd.com
On peut « voir » les états avec
Perfmon
Etat minimum du processeur
Etat maximum du
processeur
Besoins en performance
Exemple de développement du
logiciel : Microsoft
3
Gestion de l’énergie de Windows
Plateforme de base
Détection à grain fin de l’inactivité
Réglage des politiques de gestion de l’énergie du processeur et mise à jour des politiques par défaut
Distribution intelligente des Timer Ticks
Core Parking
Réducation Idle ActivityReduction for Hyper-V
Périphériques
Brillance adaptative de l’affichage
Gestion de l’énergie HD Audio
Support du Bluetooth Sniff Mode
Wired LAN D3 on Disconnect (diminution de l’énergie en déconnexion)
Notification asynchrone AHCI (Advanced Host Controller Interface)
Activité d’arrière-plan
Démarrage des services sur déclencheur
Ordonnanceur de tâches
Migration des tâches d’arrière plan vers l’ordonnanceur
Focalisation sur l’efficacité énergétique avec Windows 7Réduction de la consommation énergétique en mode idle
Comment Windows gère
l’énergie
Gestion du système Gestion des périphériques
Maintenance du système
Windows Service Control Manager (SCM)
Windows Task Scheduler
La base de registre de Windows
La voie vers l’efficacité
énergétiqueRalentir et rester au ralenti… Minimiser les services et les tâches en cours d’exécution
Eviter les traitements d’arrière plan
Laisser les processeurs logiques et les sockets rester inactif de telle façon qu’il
puissent passer en « sommeil profond » (C states)
+10 % CPU = +1.25 W
+1,25 W = -8.3 %
batterie-
5.00 10.00 15.00 20.00 25.00
30.00 35.00 40.00
0 50 100
Energ
ie t
ota
le d
u s
yst
èm
e
(Watt
s)
Utilisation CPU (%)
Energie électrique vs. utilisation CPU (Idle)
Regroupement des timers
Rester inactif requiert de minimiser les interruptions de timers
Avant, les timers périodiques avaient des cycles indépendants même quand la période était la même
De nouvelles API pour les timers permettent le regroupement de timers Les applications ou les drivers spécifient le délai acceptable
Le système de gestion des timers décale le déclenchement des timerspour aligner les périodes sur des fréquences naturelles
Timer tick15,6 ms
Evénements de timerpériodiques
Windows 7
Vista
Distribution intelligente des Timer
TicksAvant, l’interruption du primary timer sur le PL 0 propageait le timer à tous les autres processeurs logiques
Le timer du PL 0 met à jour le system tick count et l’horloge
L’interruption timer pour tous les PL met à jour les runtimesprocessus et thread, contrôle le quantum end des threads
Même si le PL était inoccupé, il devait servir l’interruption
Maintenant, le système de timer ne propage les timers que vers les processeurs qui ne sont pas inactifs
Aussi appelé tick skipping
Les interruptions non relatives aux timers continuent de réveiller les PL
Autres améliorations sur le plan
de l’efficacité énergétiqueRéduction des timers : Elimination du timer TCP DPC qui était généré à chaque interruption du
system timer
Réduction de la fréquence des timers de maintenance des drivers USB
Gestion énergétique des périphériques : Support des dernières spécifications basse consommation d’Intel pour HD
Audio
La radio Bluetooth entre en mode de suspension sélective quand les connexions sont en sniff mode
Les NIC entrent automatiquement en mode D3 (basse consommation) quand le médium est déconnecté
L’outil Powercfg est utilisé pour gérer les politiques de performance et de consommation énergétique Utilisation de l’option /energy pour identifier les problèmes d’efficacité
énergétique
Windows* Vista SP1Windows* 7 Build AWindows* 7 Build B
Plus on est à droite, mieux c’est
Analyse : Longueur des intervalles d’inactivité
%id
leti
me
(mo
yen
ne
par
cœ
ur)
Core Parking
Avant, la charge de travail CPU était distribuée équitablement et uniformément sur les processeurs logiques Même si le taux d’utilisation était faible
La fonctionnalité de Core Parking tente de maintenir la charge sur le plus petit nombre possible de processeurs logiques Permet aux autres de passer en sommeil
A conscience de la topologie des sockets Les nouveaux processeurs placent les sockets en sommeil profond sir les
cœurs sont inactifs
La fonctionnalité de Core Parking est active sur les serveurs et les machines SMT (systèmes supportant la notion d’hyperthread) Meilleurs retours pour les charges de travail médianes
Les clients tendent à fonctionner aux extrêmes (0 ou 100)
Conception de Core Parking
Le timer du Power Manager se déclenche périodiquement (30 – 50 ms) Effectue la gestion des P-states (Power States) et des C-states (Core States)
pour chacun des processeurs
Calcule l’utilisation moyenne et implémente la politique de core parking
Détermine quel processeur logique (PL) « parquer » ou « déparquer » : Déparque les cœurs si la moyenne pour les non parqués est > seuil
d’augmentation
Parque les cœurs si la moyenne pour les non parqués est < seuil de diminution
Les cœurs parqués au-dessus du seuil de parking sont également déparqués
Au moins un CPU dans chacun des nœuds NUMA est laissé non parqué
Le Power manager notifie le scheduler de la mise à jour d’une décision de parking Le scheduler évite les cœurs parqués
On passe outre si l’on utilise la hard affinity et le thread ideal processor si aucun autre n’est disponible
Interruptions et DPC ne sont pas affectés
Les opérations de Core Parking
Socket 0
Coeur 0
Coeur 1
Core 0
Core 1
Socket 1
Core 1
Core 0
Coeur 0
Coeur 1
Charge
Le Task Scheduler : Maintient une base de
données des tâches installées
Démarre et arrête les tâches
Gère les tâches en exécution
Gère les informations d’état relatives aux tâches
ubpm.dll = DLL UnifiedBackground ProcessManager
Les tâches peuvent être dans les états : Ready - Running – Queued
– Disabled
Le Task Scheduler Windows
Unified Background
Process
Manager (UBPM)L’infrastructure UBPM unifie les mécanismes pour le démarrage et l’arrêt des processus fondés sur des événements Implémenté au sein du Service Control Manager afin d’éviter la
création d’un autre processus
Tous les événements sont basés sur des événements ETW (Event Tracing for Windows) UBPM est le gestionnaire central pour l’enregistrement de clients et la
notification ETW
Clients UBPM : Task scheduler : nouveaux processus Taskhost
Service Control Manager : services déclenchés
Le Service Control Manager
(SCM)
Service Control Manager (SCM)
Déclencheur connexion
périphérique
Déclencheur adresse IP
Déclencheur domaine
Déclencheur Group Policy (GP)
Déclencheur personnalisé
Service 1
Souscrit pour démarrer sur un déclencheur de
connexion de périphérique
Service 2
Souscrit pour démarrer sur un
déclencheur « Domain join »
s’arrêter sur « Domain disjoin » et
démarrer sur un déclencheur GP
Services déclenchésAvant, les services démarraient typiquement lors du démarrage du système et s’exécutaient jusqu’au shutdown
Les Services peuvent maintenant spécifier des conditions de démarrage et d’arrêt (déclencheurs - triggers): Survenue et suppression d’une classe de périphérique
Bthserv : démarrage lors de la survenue d’une classe de périphérique bluetooth
Survenue et suppression d’une adresse IP Lmhosts : démarrage lors de l’apparition de la première adresse IP et arrêt lors de la
suppression de la dernière adresse IP
Evénement port pare-feu Browser Service : ouverture des ports Netbios NS (Name Service) et DGM
(datagrammes)
Rejoindre ou quitter un domaine W32Time : démarrage quand on rejoint, arrêt quand on quitte
Evénement ETW custom EFS: démarrage lors du premier accès à un fichier chiffré
Les déclencheurs sont stockés dans une clé de la base de registre service Utiliser « sc qtriggerinfo » pour visualiser les déclencheurs des services
Les service s’enregistrent pour être démarrés ou stoppés quand un événement déclencheur survient, éliminant ainsi la nécessité que les services démarrent quand le système démarre
Les services peuvent aussi choisir ou être en attente active sur un événement
Un Service peut démarrer quand c’est nécessaire au lieu de démarrer automatiquement
Exemples d’événements déclencheurs :
Arrivée d’un périphérique d’une classe d’interface spécifique ou disponibilité d’un port spécifique de pare-feu
Un service peut aussi s’enregistrer pour un événement déclencheur spécifique généré par un fournisseur Event Tracing for Windows (ETW)
Gérer ACPI avec Windows 7 / 2008
R2Déclencher la lancement de Services
Politiques énergétiques
WindowsName GUID DescriptionDefault (Balanced)
AC DC
Unattended sleep timeout
7bc4a2f9-d8fc-4469-b07b-33eb785aaca0
Determines the amount of inactivity time before the system automatically sleeps if the computer resumed without a user present
2 minutes 2 minutes
System cooling policy
94d3a615-a899-4ac5-ae2b-e4d8f634367f
Determines if Active or Passive cooling should be favored for thermal zones
Active Active
Reserve battery level
f3c5027d-cd16-4930-aa6b-90db844a8f00
Configures the percentage of battery capacity remaining before displaying the reserve battery warning
n/a 7%
AHCI link power mode
0b2d69d7-a2a1-449c-9680-f91c70521c60
Configures AHCI link power modes (HIPM, DIPM) and link power states (Partial, Slumber, Active)
HIPM, PartialHIPM,
Slumber
Allow System Required Policy
a4b195f5-8225-47d8-8012-9d41369786e2
Enable applications to prevent the system from idling to sleep
Enabled Enabled
Dim Display After17aaa29b-8b43-4b94-aafe-35f64daaf1ee
Determines the amount of inactivity time before the system automatically reduces the brightness of the display on a mobile PC
5 minutes 2 minutes
Power saver (Max power saving) SET _Max_Power=A1841308-3541-4FAB-BC81-F71556F20B4ABalanced (Typical) SET _Med_Power=381B4222-F694-41F0-9685-FF5BB260DF2EHigh performance (Min power saving) SET _Min_Power=8C5E7FDA-E8BF-4A96-9A85-A6E23A8C635C
ExamplesPowercfg -getactiveschemePowercfg -devicequery wake_armedPowercfg -h onPowercfg -Change -monitor-timeout-ac 20Powercfg -Change -disk-timeout-ac 30Powercfg -deviceEnableWake "Microsoft USB IntelliMouse Explorer"
SET _Max_Power=A1841308-3541-4FAB-BC81-F71556F20B4APowercfg -SETACTIVE %_Max_Power%
SET _Custom_Power=B1234567-SS64-SS64-SS64-F00000111AAAPowercfg -DUPLICATESCHEME %_Max_Power% %_Custom_Power%Powercfg -CHANGENAME %_Custom_Power% "Custom1"Powercfg -SETACTIVE %_Custom_Power%
Gérer les plans énergétiques avec les Group
Policies
Windows 7 fournit des diagnostics qui permettent d’identifier les problèmes au sein de l’entreprise
L’utilitaire PowerCfg.exe permet de déterminer rapidement les problèmes classiques qui peuvent affecter l’efficacité énergétique
Il est aussi possible d’identifier les applications et les fichiers ouverts sur le réseau qui empêchent un ordinateur d’entrer dans les états de sommeil ou d’hibernation
PowerCFG instrumente l’eventtracing pour la gestion de l’énergie et les services associés
Diagnostics d’efficacité énergétique
Windows
La gestion de l’énergie en
entreprise SCCM 2007 R3
4
Phase 1 – Comprendre l’état courant
• Collecter les données de base
• Evaluer l’état courant et déterminer les
possibilités
Phase 2 – Planifier la politique énergétique
• Analyser les modèles d’utilisation et les
paramétrages énergétiques existants
• Définir les plans énergétiques et les
paramétrages
Phase 3 – Appliquer les politiques
énergétiques
• Mettre en service les politiques énergétiques
• Récolter les données de mise en application
Phase 4 – Conformité et rapports
• Vérifier la conformité et prendre les éventuelles
actions de remédiation
• Rapporter les coûts et les économies en CO2
Gestion du cycle de vie de
l’énergie
Enforcement
Enforcement
Rapports standards
Après la mise en applicationAvant la mise en application
Rapports standards : Activité
de l’ordinateurOrdinateur allumé Ecran allumé Utilisateur actif
Utilisation du tableau de bord ConfigMgr
: Rapport de consommation
MERCI !
Microsoft France39, quai du président Roosevelt
92130 Issy-Les-Moulineaux
www.microsoft.com/france