- 11/16/2020
- 3 minutes pour lire
-
- D
- x
Cet article fournit une solution de contournement pour le problème de l’utilisation élevée du PROCESSEUR en WMIPRVSE.Processus EXE à intervalles réguliers.,
version originale du produit: Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Window 10-toutes les éditions
numéro KB Original: 4483874
symptômes
lorsque vous utilisez un ordinateur Windows, vous remarquez que L’hôte du fournisseur Windows Management Instrumentation (WMI) (WmiPrvSE.le processus exe) utilise une capacité CPU élevée (près de 100%) pendant plusieurs minutes toutes les 15 à 20 minutes.
lorsque le problème se produit, utilisez le Gestionnaire de tâches pour identifier L’identifiant de processus (PID) du WMIPRVSE.Processus EXE qui consomme un processeur élevé., Ensuite, ouvrez une invite de commande élevée et exécutez la commande suivante:
tasklist /m wmiperfclass.dll
la liste des WMIPRVSE.Les processus EXE qui ont ce module chargé seront affichés. Habituellement, un seul processus est répertorié. Cependant, si vous avez des clients 32 bits et 64 bits, vous pouvez voir deux processus. C’est l’exemple de sortie:
Nom de l’Image PID Modules
========== ======== ==========================
WmiPrvSE.exe 2140 WmiPerfClass.,DLL
Si le PID du processus répertorié correspond à celui que vous avez trouvé dans le Gestionnaire des tâches, il est probable que vous rencontriez le problème décrit dans cet article.
Cause
Ce problème peut être provoqué par des facteurs suivants.
un ou plusieurs processus utilisent un nombre élevé de handles
tous les handles sont stockés dans la structure du noyau \BaseNamedObjects. Le fournisseur WMIPerfClass doit analyser cette structure lors de la création de la classe de performance liée aux objets Job.,
Si cette structure est gonflée en raison du nombre élevé de poignées, l’opération aura une utilisation élevée du processeur et prendra plus de temps que la normale.
Vous pouvez vous attendre à un impact pour cette condition lorsqu’un processus utilise plus d’environ 30 000 poignées ou que le nombre total de poignées sur le système dépasse 50 000.
Une mise à jour publiée en mars 2020 pour les versions du système d’exploitation prises en charge inclut une optimisation des performances et résout certaines variantes de ce problème. Reportez-vous à l’historique des mises à jour Windows pour plus d’informations sur la mise à jour qui s’applique à votre version Windows.,
un ou plusieurs processus en cours d’exécution sur le système utilisent beaucoup de mémoire
cela affecte la création des classes de performance des processus car la zone mémoire de chaque processus en cours d’exécution devra être interrogée. La mémoire utilisée par le processus peut être fragmentée, ce qui rend l’opération plus gourmande en ressources. Cela se produit parce que WMIPerfClass interroge également des compteurs de performances « coûteux ».,
Vous pouvez vérifier si des compteurs de performances coûteux sont activés en exécutant la commande PowerShell suivante:
(gwmi -query 'select * from meta_class').Name | ? { $_ -match "costly"}
Si la commande renvoie des résultats, cela indique les compteurs de performances coûteux qui sont activés.,d= »77921f1d55″>
Win32_PerfFormattedData_PerfProc_fullimage_costly
Win32_PerfRawData_PerfProc_FullImage_costly
Win32_PerfFormattedData_PerfProc_image_costly
Win32_PerfRawData_PerfProc_Image_costly
Win32_PerfFormattedData_PerfProc_processaddressspace_costly
Win32_PerfRawData_PerfProc_Processaddressspace_costly
Win32_PerfFormattedData_PerfProc_threaddetails_costly
Win32_PerfRawData_PerfProc_Threaddetails_costly
solution
pour résoudre le problème, identifiez le processus qui utilise un grand nombre de poignées ou une grande quantité de mémoire., Le processus peut avoir une fuite de mémoire ou un problème de fuite de poignée. Pour contourner ce problème, redémarrez le processus.
par défaut, si vous utilisez Windows Server 2016 ou une version ultérieure de Windows, les compteurs de performances coûteux sont désactivés à partir des mises à jour cumulatives suivantes:
- Windows Server 2016 / Windows 10 version 1607 (RS1)
18 octobre 2018—KB4462928 (OS Build 14393.2580) - Windows 10 version 1703 (RS2)
juillet 24, 2018—kb4338827 (OS construire 15063.1235) - Windows 10 version 1709 (RS3)
juillet 24, 2018—kb4338817 (os construire 16299.,579) - Windows 10 version 1803 (RS4)
16 juillet 2018—KB4345421 (OS Build 17134.167)
Remarque
Après l’installation de la mise à jour cumulative, si vous avez besoin des classes liées aux compteurs de performances coûteux, définissez la valeur Enable Costly Providers sur 1 (DWORD) sous la sous-clé/p>
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wbem
la mise à jour cumulative n’affectera pas le comportement LORSQU’un processus utilise un grand nombre de poignées.
ce problème se produit lorsqu’un client interroge les classes de performance., Il s’agit généralement d’une application de surveillance.
pour contourner ce problème, vous pouvez également désactiver l’application de surveillance pour empêcher la création des classes de performances.
plus d’informations
WMI fournit plusieurs classes de performances. Pour plus d’informations, voir Classes de compteur de performances.
ces classes sont créées dynamiquement en fonction des compteurs de performances disponibles sur le système. Toutes les classes sont créées en même temps, pas seulement les classes qui sont interrogées.,
WMIPerfClass est le module qui gère la création de ces classes lorsque le client WMI interroge l’une d’entre elles ou énumère les classes disponibles.
ces classes de performances sont stockées dans un cache qui est invalidé après 15 à 20 minutes. Dès que le cache est invalidé, les classes de performances doivent être créées à nouveau si un client les demande.
la création des classes de performance signifie que la classe WMIPerfClass.le module dll devra être chargé dans un WMIPRVSE.Processus EXE et le code associé exécuté.