Quelle est la cause d'une utilisation élevée du processeur de la «mémoire système et compressée» dans Windows 10?


39

Une observation doit être faite pour Windows 10 sur mon ordinateur portable fonctionnant avec une mémoire disponible de 24G, et une utilisation de 2,5G. Il n'y a pas de "pression de mémoire". D'autres questions ont porté sur la consommation de mémoire (ce qui n'est pas le problème ici). Dans toutes les questions liées ici et ailleurs, je n’ai pas été en mesure de trouver une explication adéquate à la question de cette utilisation excessive du processeur au cours du dernier mois ou des deux qui suivent une des mises à jour de Windows 10.

Je peux accepter le fait que ce service ou ce processus présente un intérêt, mais fonctionner en permanence et utiliser des ressources de processeur supplémentaires, et par conséquent une utilisation moins efficace de la batterie, c’est le problème que j’essaie de résoudre.

Dans certains articles de ce site, il a été suggéré que je désactive SuperFetch et que je définisse une entrée de registre pour PrefetchParameters sur 0. J'ai fait les deux et effectué un redémarrage.

Je redémarre la machine, désactive l'économiseur d'écran et lance le gestionnaire de tâches. Après quelques minutes, le service intitulé "Système et mémoire compressée" commence à prendre 5% de mon processeur, de manière cohérente. Mon utilisation de base du processeur est peut-être de 1%, ce qui maintient le ventilateur bas. Mais lorsque le service "système et mémoire compressée" fonctionne à 5%, les ventilateurs augmentent. Et continue à courir.

Sillyness. Pourquoi ce service doit-il toujours fonctionner de la même manière sans pression de mémoire? Quels mécanismes supplémentaires puis-je essayer pour l'éteindre ou déterminer ce qu'il fait réellement? Existe-t-il des entrées de fichier journal quelque part? Ou un outil de diagnostic approfondi?

comment-désactiver-windows-10-memory-compression - pas de vraies réponses ici

Windows-10-système-processus-prenant-massives-montants-de-ram

17993-windows-10-memory-compression

desktop-build-10525-and-windows-10-memory

www.techish.net/system-and-compressed-memory/

windows-10-build-1511-overheating-cpu-fan-always

Windows Performance Recorder - besoin maintenant d'un lien pour savoir comment interpréter les informations

entretien de nettoyage


1
Oui, je n'ai jamais compris pourquoi Windows utilise le fichier d'échange alors qu'il y a suffisamment de mémoire. Désactiver le fichier d'échange peut résoudre votre problème, j'aimerais savoir.
Moab


@Moab: La perception selon laquelle Windows "utilise le fichier d'échange lorsqu'il y a suffisamment de mémoire" provient d'une étiquette erronée sur le gestionnaire de tâches de Windows XP: ils ont étiqueté les graphiques "utilisation de PF" alors qu'il aurait dû être "commettre". Si vous utilisez PerfMon pour examiner l'utilisation réelle du fichier d'échange, vous le trouverez généralement beaucoup plus petit que prévu.
Jamie Hanrahan

2
capturer une trace de l'utilisation du processeur. Installez le WPT à partir du SDK Win10: dev.windows.com/en-us/downloads/windows-10-sdk, exécutez WPRUI.exe, sélectionnez CPU, Disque, VirtualAlloc, ResidentSet, puis capturez 1 à 2 minutes d'utilisation du SYSTÈME et enregistrez dans un fichier ETL. Compressez le dossier ETL + le dossier NGENPDB dans un fichier 7z / RAR, téléchargez le fichier compressé sur OneDrive, créez un lien de partage et publiez le lien de partage ici
magicandre1981, le

@ magicandre1981: merci de proposer une méthodologie possible. Le fichier se trouve à l' adresse oneunified.net/files/rpb.20160102.WPR.7z . Si vous voyez quelque chose, seriez-vous capable de poster votre méthodologie? Je suis sûr que beaucoup d'autres publications pourraient utiliser cette technique. ... encore merci.
Raymond Burkholder le

Réponses:


26

L'analyse du fichier ETL avec WPA montre que l'utilisation du processeur ne provient pas de la compression de la mémoire système. Cela vient de ntoskrnl.exe!MiScrubMemoryWorker:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

Ceci est une fonction pour tester les erreurs dans la mémoire en remplissant / en lisant certains patterns ( ntoskrnl.exe!RtlpGenericRandomPatternWorker).

Cela est inhérent au projet et se produit lorsque la tâche de maintenance en attente démarre lorsque votre appareil est en veille.


Merci pour ça. Cela éclaire un peu l’activité. Maintenant que vous mentionnez le mot inactif, vous pouvez faire deux commentaires. 1) Le fichier ETI que vous avez évalué a été créé alors que j'étais actif sur la console et le cpu se situait autour de 10% à 15% pour 'mémoire système et compressée' et s'est finalement terminé. Donc, j'ai pu capturer une sorte d'activité. Et vous avez évalué la maintenance au ralenti. 2) dans le prochain commentaire ....
Raymond Burkholder

10
Pour clore Windows 10, je suis allé dans: Démarrer-> Panneau de configuration-> Outils d'administration-> Planificateur de tâches Bibliothèque de planificateurs de tâches-> Microsoft-> ​​Windows-> MemoryDiagnostic Il existe deux éléments de ligne. L'exécution de la tâche peut dépendre des événements de journal. Je ne sais pas si elles doivent simplement exister ou si elles se déclenchent lors de la saisie dans le journal. J'ai désactivé le RunFullMemoryDiagnosticEntry. Je ne vois plus les 5% à 12% d'utilisation après quelques minutes de retard. Dans les propriétés de la tâche, dans l'onglet Paramètres, il peut être possible d'ajuster les éléments pour qu'ils ne s'exécutent pas très souvent. .... tester pour une autre fois.
Raymond Burkholder

2
Cela fait plaisir d'entendre que cela résout votre problème.
magicandre1981

1
Pour ajouter au commentaire, j'avais 2 tâches définies - RunFullMemoryDiagnostic et ProcessMemoryDiagnosticEvents, la plus importante est la seconde. Il avait 4 déclencheurs activés - "Journal: Système, Source: Application Popup", "Journal: Application, Source: Erreur d'application" et deux restants. La désactivation des 2 déclencheurs a résolu mon problème. Le problème était que certaines applications que je développais écrivaient dans des erreurs du journal des événements, ce qui entraînait des vérifications de la mémoire. Deux déclencheurs restants sont complètement liés au système, il est donc préférable de ne pas les désactiver
zihotki

3
ok un troll a voté contre. Oui, xperf / WPR / WPA est un expert du niveau 500, donc pas pour vous
Troll idiotique

9

Tout d'abord, re. Utilisation de l'UC: Le processus "Système et mémoire compressée" (ce n'est pas un service) remplit de nombreuses fonctions. Ce n’est pas parce que vous utilisez le temps CPU que votre ordinateur compresse le contenu de la mémoire. Pour le savoir, utilisez Process Explorer pour trouver le nom de la / des fonction (s) de thread dans le processus utilisant le temps CPU. Pour ce faire, vous devrez configurer les symboles dans Process Explorer, comme décrit dans cette réponse .

La mémoire en cours de compression est la mémoire qui était

  • partie du groupe de travail privé d'un processus (c'est-à-dire partagée avec tout autre processus); et
  • modifié pendant qu'il était dans ce processus; et
  • perdu par la suite en raison du remplacement de la page et placé dans la liste des pages modifiées. (Cet algorithme n'a pas été sensiblement modifié pour Windows 10. Vous n'obtenez plus de remplacement de page auparavant.)

Maintenant ... si vous n'avez pas de fichier d'échange, il restera dans la liste des pages modifiées (jusqu'à la fin du processus). (Remarque: la désactivation de votre fichier d'échange ne modifiera pas le comportement décrit jusqu'ici.)

Si vous avez un fichier d'échange (ce qui est, bien sûr, hautement recommandé), le comportement diffère entre Windows 10 et les versions antérieures.

  • Avant Windows 10, il était bientôt écrit dans le fichier d'échange et les pages physiques étaient déplacées vers la liste des pages en veille. Ceci est effectué par un fil "auteur de page modifié" dans le processus système.

  • Sous Windows 10, il est d'abord compressé (occupant environ la moitié de la place qu'il occupait auparavant) et stocké dans l'espace d'adressage en mode utilisateur du processus système (à présent appelé "mémoire système et compressée"). Si nécessaire pour libérer de la mémoire, celle-ci peut ensuite être écrite dans le fichier d'échange et libérée pour une autre utilisation. (Notez que les avantages de la compression d'espace s'appliquent également à l'espace de fichier d'échange et au temps d'E / S.)

Donc, vraiment, c'est une bonne chose. Quelle que soit la quantité de mémoire supplémentaire utilisée par le processus système, bien avant Windows 10, environ deux fois plus aurait été dans la liste des pages modifiées ou en attente. Certes, cela ne prendra pas plus d’espace qu’avant.

Vous pouvez (selon mes derniers tests) désactiver ce mécanisme en supprimant votre fichier d'échange, mais cela n'affectera pas le comportement de remplacement de page; Les pages privées modifiées supprimées des processus ne pourront tout simplement pas être libérées pour une autre utilisation. Au lieu de figurer dans le processus système, la mémoire (environ deux fois plus) restera simplement sur la MPL.


Dans l'explorateur de processus, sans symboles de débogage chargés, j'obtiens quelque chose: ntoskrnl.exe! CcCopyWriteWontFlush + 0xb50 Est-ce que plus de détails en sortiront si j'ajoute des symboles? Il y a 12 cas, avec un réclamant 12,5% de l'unité centrale. Il appartient au processus système.
Raymond Burkholder le

@RaymondBurkholder Vous pouvez obtenir plus d'informations en consultant la pile des threads.
Daniel B

@DanielB: oui, c'était à partir de l'onglet Threads dans la fenêtre contextuelle après avoir examiné les propriétés du processus système au PID 4 dans Process Explorer. Précision: le bouton de pile ne montre rien, mais le bouton Module indique qu'il provient du fichier ntkmlmp.exe daté du 2015-11-22. Ce qui, je pense, correspond à la date approximative de la création de cette activité supplémentaire.
Raymond Burkholder le

Ce n'est que la date à laquelle une dernière mise à jour de Windows a affecté ce fichier. C'est un composant du système, après tout.
Daniel B

@RaymondBurkholder L'affichage "StartAddress" sans symboles configurés n'est pas utile. Lorsque vous voyez un nom de symbole (comme "CcCopyWriteWontFlush") plus un décalage ("+ 0xb50"), le nom du symbole est presque certainement incorrect. Ce que vous voulez, c'est par exemple ntoskrnl.exe! ExpWorkerThread, sans décalage affiché. Oh ... vous verrez des décalages pour les modules pour lesquels MS ne fournit pas de symboles - ce sont presque toujours des pilotes tiers. Ils sont affichés sous la forme nomModule + offset, comme nvhda64v.sys + 0x30ac. Nous ne pouvons pas obtenir de symboles pour ceux-ci, mais le nom du module seul est souvent utile dans les cas de débogage.
Jamie Hanrahan

3

Ce peut être le logiciel "Killer Network Manager". Si vous le désinstallez, le problème disparaît, mais le réseau disparaît également lorsqu'il désinstalle les pilotes de la carte réseau. La bonne nouvelle est, il y a un correctif.

Tout d’abord, allez à http://www.killernetworking.com/support/driver-downloads/item/killer-suite et téléchargez la nouvelle version, mais ne l’installez pas encore. Il suffit de le sauvegarder et de savoir où se trouve le fichier.

Ensuite, désinstallez la version actuelle via le panneau de configuration. Vous devrez redémarrer l'ordinateur. Une fois l’ordinateur sauvegardé, exécutez le nouveau programme d’installation du logiciel. La nouvelle version parue en janvier 2016 ne semble pas avoir le même problème.

Je pense que l'ancienne version du logiciel a une fuite de mémoire qui cause ce problème.

Juste un FYI, le logiciel "Killer Network Manager" fait partie des cartes réseau câblées Wireless-AC / Wireless-N Killer Aethos de Qualcomms et câblées E2200 / E2400. Sans le logiciel, vous n'avez pas Internet.


Sans le pilote, vous n'avez pas d'internet. Vous pouvez obtenir le pilote sans tous les gadgets inutiles dont vous avez besoin, selon le fabricant. Le bas de la page que vous avez liée vous donne un lien de téléchargement uniquement pour le pilote, killernetworking.com/support/driver-downloads/standard-drivers
Mokubai

2

J'ai eu un problème similaire après une mise à niveau récente vers Windows 10. Ma souris a soudainement commencé à caler, c'est-à-dire à me branler lorsque je l'ai déplacée sur l'écran, ce qui la rendait très difficile à utiliser.

J'ai vérifié l'utilisation du processeur dans le Gestionnaire des tâches et constaté que le problème se produisait lorsque le processus "Système et mémoire compressée" commençait à consommer de 5 à 15% du processeur. J'ai exécuté Process Explorer et vérifié les threads. Comme Raymond, j'ai remarqué que le principal responsable était CcWriteCopyWontFlush avec un décalage de 0xb50. Un peu de googling m'a conduit à cette page. J'ai essayé d'installer les symboles Windows comme certains l'ont suggéré ici, mais cela ne m'a jamais aidé à résoudre le décalage.

Le problème était aussi sporadique. Je travaillais quelques heures et ensuite, quelques minutes plus tard, elle commençait à apparaître, me rendant fou. Le redémarrage le guérirait pendant un moment, puis il reviendrait.

D'après les réponses que j'ai données ici, j'ai décidé de rechercher les pilotes sur mon PC. J'ai donc commencé avec le Gestionnaire de périphériques et c'est là que j'ai obtenu ma réponse. Lorsque le problème se produisait, ma fenêtre du Gestionnaire de périphériques devenait constamment vierge et s'actualisait, comme toutes les secondes. C'était essentiellement illisible. More Googling a suggéré de connecter et de reconnecter un périphérique USB externe. Je l'ai attachée à mon téléphone Samsung que je charge tous les jours à partir de mon ordinateur via un câble connecté à un port USB. J'utilise également le PC et MyPhoneExplorer pour synchroniser mon téléphone avec Outlook. J'ai donc quelques lecteurs mappés sur la RAM interne et externe de mon téléphone, à l'aide des pilotes Samsung pour le PC. Je pouvais voir ces disques apparaître et disparaître fréquemment dans le Gestionnaire de périphériques.

Mon téléphone est un Galaxy S2 et a environ 4 ans. Je rencontre des problèmes de connexion sur le port microUSB depuis plus d'un an. Cela peut expliquer la nature sporadique du problème, ou bien les pilotes de PC Samsung pourris de mon téléphone. S'il ne s'agissait que du câble, je ne sais pas pourquoi le redémarrage corrige le problème pendant un certain temps. C'est donc encore un mystère, mais au moins, je connais la source et je peux y remédier.

Déconnecter mon téléphone est le moyen le plus simple de résoudre le problème, et je suis sur le point de l'abandonner car il est si vieux. Je me demande donc si Raymond avait aussi un pilote de périphérique Samsung avec un logiciel similaire fonctionnant sur son PC. Raymond, si tu es encore en train de vérifier, fais le moi savoir.

Comme je l'ai mentionné, le câble a été misérable pendant un certain temps, bien avant la mise à niveau de Windows 7 à Windows 10, et le logiciel Samsung a toujours été horrible, mais sous Windows 7, le floconnage n'affectait pas mon autre fonctionnement du PC. Sous Windows 10, la souris était si saccadée qu'elle devenait presque inutilisable. J'ai eu beaucoup de mal à atterrir sur une cible, et je pense que le clavier était également affecté, les touches pressées ayant été manquées. Il est étrange que ces facteurs soient liés et je ne sais pas quoi suggérer à Microsoft pour améliorer Windows 10, mais je sens maintenant que Windows 10 est un peu "délicat". Utiliser avec précaution.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.