Ceci est une ancienne révision du document !
Informations sur le CPU
But
Via WMI
Informations générales
- wql sur root/CIMV2
Select * from Win32_Processor
instance of Win32_Processor show{ AddressWidth = 64; Architecture = 9; AssetTag = “To Be Filled By O.E.M.”; Availability = 3; Caption = “Intel64 Family 6 Model 158 Stepping 9”; Characteristics = 252; CpuStatus = 1; CreationClassName = “Win32_Processor”; CurrentClockSpeed = 3600; CurrentVoltage = 10; DataWidth = 64; Description = “Intel64 Family 6 Model 158 Stepping 9”; DeviceID = “CPU0”; ExtClock = 100; Family = 198; L2CacheSize = 1024; L3CacheSize = 8192; L3CacheSpeed = 0; Level = 6; LoadPercentage = 2; Manufacturer = “GenuineIntel”; MaxClockSpeed = 3600; Name = “Intel(R) Core(TM) i7-7700 CPU @ 3.60GHz”; NumberOfCores = 4; NumberOfEnabledCore = 4; NumberOfLogicalProcessors = 8; PartNumber = “To Be Filled By O.E.M.”; PowerManagementSupported = FALSE; ProcessorId = “BFEBFBFF000906E9”; ProcessorType = 3; Role = “CPU”; SecondLevelAddressTranslationExtensions = FALSE; SerialNumber = “To Be Filled By O.E.M.”; SocketDesignation = “U3E1”; Status = “OK”; StatusInfo = 3; SystemCreationClassName = “Win32_ComputerSystem”; SystemName = “PC-THIERRY”; ThreadCount = 8; UpgradeMethod = 1; Version = “”; VirtualizationFirmwareEnabled = FALSE; VMMonitorModeExtensions = FALSE; };
Charge
Avec la requette WMI ci dessous, on récupére CurrentClockSpeed
et LoadPercentage
.
LoadPercentage
retourne l'utilisation du processeur a l'instant T.
CurrentClockSpeed
la vitesse du CPU, mais n'a pas l'air de fluctuer comme on pourrait s'y attendre quand on regarde les performances dans le Gestionnaire de Tâches.
- wql sur root/CIMV2
Select CurrentClockSpeed,CurrentVoltage,LoadPercentage from Win32_Processor
instance of Win32_Processor { CurrentClockSpeed = 3600; CurrentVoltage = 10; DeviceID = “CPU0”; LoadPercentage = 6; };
Win32_PerfFormattedData_Counters_ProcessorInformation
instance of Win32_PerfFormattedData_Counters_ProcessorInformation show{ AverageIdleTime = “3256073”; C1TransitionsPersec = “0”; C2TransitionsPersec = “2398”; C3TransitionsPersec = “0”; ClockInterruptsPersec = 693; DPCRate = 5; DPCsQueuedPersec = 517; IdleBreakEventsPersec = “2414”; InterruptsPersec = 2948; Name = “_Total”; ParkingStatus = 0; PercentC1Time = “0”; PercentC2Time = “96”; PercentC3Time = “0”; PercentDPCTime = “0”; PercentIdleTime = “100”; PercentInterruptTime = “0”; PercentofMaximumFrequency = 93; PercentPerformanceLimit = 100; PercentPriorityTime = “0”; PercentPrivilegedTime = “1”; PercentPrivilegedUtility = “1”; PercentProcessorPerformance = “66”; PercentProcessorTime = “0”; PercentProcessorUtility = “2”; PercentUserTime = “0”; PerformanceLimitFlags = 0; ProcessorFrequency = 3600; ProcessorStateFlags = 0; };
On peut peut être en déduire la charge du CPU en fonction de PercentIdleTime
qui est le pourcentage de temps libre,
donc la charge du CPU devrait être (100-PercentIdleTime
)
On peut peut être en déduire la vitesse du CPU grâce a PercentofMaximumFrequency
.
Qui est censé être le pourcentage de la vitesse max.
Sachant que la vitesse du CPU est fournie par ProcessorFrequency
.
Mais ce ne sont que des suppositions qui mont l'air assez bancales.
En effet le CPU peut dépasser la vitesse fournie par ProcessorFrequency
.
Donc indice de fiabilité faible sur les données récupérées par Win32_PerfFormattedData_Counters_ProcessorInformation
Win32_PerfFormattedData_PerfOS_Processor
- wql sur Root/CIMV2
Select * from Win32_PerfFormattedData_PerfOS_Processor WHERE Name="_Total"
Résultat → instance of Win32_PerfFormattedData_PerfOS_Processor show{ C1TransitionsPersec = “2974”; C2TransitionsPersec = “971”; C3TransitionsPersec = “0”; DPCRate = 2; DPCsQueuedPersec = 403; InterruptsPersec = 5750; Name = “_Total”; PercentC1Time = “13”; PercentC2Time = “30”; PercentC3Time = “0”; PercentDPCTime = “0”; PercentIdleTime = “44”; PercentInterruptTime = “0”; PercentPrivilegedTime = “32”; PercentProcessorTime = “52”; PercentUserTime = “20”; };
root\WMI\ ProcessorPerformance
Autres pistes a étudier
- Win32_PerfRawData_Counters_ProcessorInformation
- Win32_PerfFormattedData_Counters_ProcessorInformation
- Win32_PerfRawData_GPUPerformanceCounters_GPUProcessMemory
- Win32_PerfFormattedData_PerfOS_Processor
- Win32_PerfRawData_PerfOS_Processor
- root\WMI\ProcessorBiosTStates
- root\WMI\ProcessorPerformance
- root\WMI\ProcessorBiosInfo
- root\CIMV2\Win32_AssociatedProcessorMemory