Question Windows 10, processus «système» prenant des quantités massives de RAM


Depuis ma mise à niveau vers Windows 10, mon système consomme trop de mémoire vive

enter image description here

J'ai lu un peu et j'ai déterminé qu'il était probable qu'un conducteur fuie de la mémoire. Donc, je me suis procuré le Windows Driver Kit et j'ai suivi l'utilisation de la mémoire avec poolmon:

enter image description here

Cependant, je ne sais pas vraiment comment procéder à partir d’ici. L'élément étiqueté "smNp" est-il le coupable de ce problème? Comment puis-je en venir à identifier le conducteur?

J'ai essayé des trucs comme "C: \ Windows \ System32 \ drivers> findstr / s smnp ."mais il n'a renvoyé aucun résultat. J'ai également jeté un coup d'oeil au fichier pooltag.txt et c'est la description que j'ai trouvée:

enter image description here 

Donc oui, toute aide serait appréciée. Merci d'avance.


79
2017-08-07 04:17


origine


ok, j'ai ajouté les informations qui ont pu trouver. Les vérifier - magicandre1981
C'est une fonctionnalité du système qui permet de conserver plus d'éléments dans la RAM en utilisant la compression au lieu de la paginer sur le disque. @ magicandre1981 a la bonne information ici qui devrait être acceptée comme la bonne réponse. - Mani Gandham
Les 14 mégaoctets que poolmon montre est associé à la balise smNp est une quantité purement triviale. Vous vous inquiétez de 1,3 Go dans le groupe de travail privé du processus système - pourquoi se concentrer sur 14 Mo de pool non paginé (qui ne sont pas du tout dans un environnement de travail)? - Jamie Hanrahan


Réponses:


En entrant dans services.msc (via Win + R) et la désactivation de Superfetch résout complètement ce problème. Je ne suis pas sûr si Superfetch est juste cassé à partir de maintenant ou il est "par conception".

En outre, apparemment, se débarrasser du fichier de pagination aura le même effet, mais la solution ci-dessus est un plus sûr pari.


15
2017-08-09 23:24



Cela a effectivement fonctionné. L'utilisation de la mémoire pour le système est de retour à ~ 0,1 Mo même après des heures d'utilisation. Merci! - Nayncore
Bien qu'une telle utilisation de mémoire soit généralement un indicateur rouge d'une fuite de mémoire, cette mémoire est utilisée légitimement comme élément de Windows 10 (voir la réponse de magicandre ci-dessous). - Bigbio2002
ce n'est pas un bug et ne doit pas être désactivé - phuclv
lifehacker.com/ - phuclv
Si la fonctionnalité provoque des avertissements de mémoire faibles constants, ce n'est pas une bonne fonctionnalité. Maintenant, mon Surface Pro avec 4 Go de RAM est complètement inutilisable pour le développement et même sur un ordinateur portable avec 8 Go de RAM, je reçois constamment ces avertissements. Pouce pour la solution! - Oleg I.


J'ai regardé les traces de xperf de plusieurs utilisateurs et ici la fonction ntoskrnl.exe!SmKmStoreHelperWorker du noyau commence à allouer de la mémoire.

Screenshot
(Cliquez sur l'image pour l'agrandir)

J'ai découvert ça sur sysinternals.

J'ai demandé à Microsoft à ce sujet et la réponse est que c'est par conception. Il est lié à la compression de la mémoire système.

Dans l'annonce de Windows 10 Build 10525, Microsoft l'a expliqué un peu:

Dans Windows 10, nous avons ajouté un nouveau concept dans le gestionnaire de mémoire.   appelé un magasin de compression, qui est une collection en mémoire de   pages compressées. Cela signifie que lorsque Memory Manager ressent de la mémoire   la pression, il va compresser les pages inutilisées au lieu de les écrire dans   disque. Cela réduit la quantité de mémoire utilisée par processus, ce qui permet   Windows 10 pour maintenir plus d'applications dans la mémoire physique à la fois.   Cela aide également à fournir une meilleure réactivité sur Windows 10. Le   le magasin de compression se trouve dans le jeu de travail du processus système. Depuis le   processus système maintient la mémoire en mémoire, son ensemble de travail augmente   exactement quand la mémoire est mise à disposition pour d'autres processus. Ce   est visible dans le Gestionnaire des tâches et la raison pour laquelle le processus système apparaît   consommer plus de mémoire que les versions précédentes.

Ainsi, au lieu d'écrire des données de mémoire dans le fichier d'échange, il les compresse. Et cette mémoire compressée est affichée dans le processus système.

Microsoft a également publié plus de détails dans le hub interne. Winbeta a créé un article qui comprend plus de détails.

Apparemment, la raison de cela a été le fait de choisir Microsoft   à suspendre les applications UWP quand ils n'étaient pas au premier plan, très   similaire à la gestion de certains systèmes d'exploitation de smartphones. Windows 8 utilisateurs compris   (peut-être pas) que si les applications n'étaient pas à l'écran, elles ne fonctionneraient pas jusqu'à ce que   l'utilisateur est revenu à eux. L'approche "tout ou rien" est en train de   actualisé avec Windows 10 introduisant une couche entre le fichier d'échange et   activité de pagination normale. Maintenant, face aux problèmes de pression de la mémoire,   MM déterminera quelles pages doivent être déplacées vers la liste modifiée dans   un processus appelé rognage. La liste modifiée est une liste secondaire de   fichiers de page sauvegardant une liste de fichiers de page de secours. Une liste de sauvegarde est   capturé dans le cas où la mémoire est récupérée de la liste d'attente par un autre   processus, et le processus d'origine vient à la recherche de sa page. Au lieu   de tout ou rien, Windows 10 MM compressera plutôt les pages inutilisées   que de les écrire sur le disque. Avec moins d'écriture, le résultat devrait être   moins d'opérations sur disque - grâce à la compression - et maintenant plus de données   peut être stocké en mémoire.

enter image description here

Selon l'équipe Windows, "En pratique, la mémoire compressée prend   environ 40% de la taille non compressée, et à la suite d'un   périphérique exécutant une charge de travail typique, Windows 10 écrit les pages sur le disque   seulement 50% aussi souvent que les versions précédentes du système d'exploitation."Si tout se passe   selon le plan, Les utilisateurs de Windows peuvent être confrontés à une attente réduite   fois pour tous les appareils ainsi que des durées de vie prolongées sur les systèmes   avoir des disques durs flash.

La décompression est également quelque chose que Windows 10 est conçu pour bien faire.   Windows 10 utilise la combinaison de la parallélisation et   lectures séquentielles pour produire des pages en mémoire une fois appelé. Le nouveau   la décompression devrait entraîner une expérience plus rapide que Windows 10 est   simultanément décompression des données et lecture en parallèle en utilisant   plusieurs processeurs. Les anciennes versions de Windows pouvaient sembler lentes   en raison des taux de transfert entre le disque.

Microsoft a également publié une vidéo sur channel9 qui explique la fonctionnalité.

Compression mémoire dans Windows 10 RTM
https://channel9.msdn.com/Blogs/Seth-Juarez/Memory-Compression-in-Windows-10-RTM

Dans cette vidéo, Mehmet Iyigun a passé du temps à discuter de la raison pour laquelle le système   processus dans Windows 10 prend un peu plus de mémoire et pourquoi il est bon   chose. Un processus prenant plus de mémoire semble être une mauvaise chose, c'est-à-dire   jusqu'à ce que je comprenne plus sur la gestion de la mémoire, la pagination et   défauts de page douce. Il s'avère que le système d'exploitation fait du mal   optimisations qui permettent à vos processus de réduire une partie de la mémoire, mais   pas nécessairement la page sur le disque. Non seulement la mémoire est préservée   en RAM, mais il est également compressé - ce qui rend les défauts de page plus importants   occurrence rare Les résultats devraient faire une expérience plus vive.

Dans la dernière version de TH2, Microsoft a mis à jour la description dans le gestionnaire de tâches et montre maintenant que le processus SYSTEM héberge la compressed memory:

enter image description here

pour éviter les confusions sur l'utilisation "élevée".

Dans le Windows 10 Anniversary Update qui a été publié en août 2016, Microsoft a extrait la compression maintenant affichée dans un pseudo processus appelé Memory Compression ne plus confondre les utilisateurs pour lesquels SYSTEM utilise une mémoire aussi importante:

enter image description here

Mais il semble que Taskmgr ne montre pas ce processus, seul ProcessExplorer / ProcessHacker est capable de l’afficher. Le Taskmgr affiche uniquement la quantité de mémoire compressée dans la vue d'ensemble:

enter image description here

Si vous survolez le graphique de la mémoire utilisée dans Taskmgr, une infobulle affiche le nombre de données compressées.

enter image description here

Dans cette démo, 388 Mo sont compressés à 122 Mo, soit 267 Mo avec la compression.


91
2017-08-07 04:20



@Zaibis: Je pense que l’idée est que vous ne perdez pas 1 Go. 1 Go a été réservé par Windows et sera utilisé pour les allocations. Vous n'avez pas perdu la mémoire. - Lightness Races in Orbit
"La mémoire inutilisée est de la mémoire perdue" a longtemps été le mantra de OS X. On dirait que Windows a également été intégré. - deceze
@ magicandre1981 Que voulez-vous dire parSystem Memory compression - user2284570
Je ne peux pas répondre à cela en détail. Je n'ai eu que l'information par conception, cela a quelque chose à voir avec une compression de mémoire et cela sera expliqué par un blog. Lorsque j'obtiens de nouvelles informations, je met à jour mon message. - magicandre1981
@JosiahKeller La boîte de dialogue "mémoire faible" concerne la mémoire virtuelle faible. Cela n'a presque rien à voir avec l'utilisation ou la disponibilité de la mémoire physique (RAM). Ils sont comptabilisés séparément par tous les systèmes d'exploitation de bureau modernes. - David Schwartz


Désactiver le préfetcher dans la clé regedit: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters vous avez probablement Enable Prefetcher à une valeur de 2 ou 3 alors changez-le en 0

Ensuite, vous devez désactiver Superfetch dans les services

  1. Recherche de services.msc

  2. Trouver superfetch Cliquez sur properties puis réglez-le sur disabled et arrêtez également le service.

Je fais ces étapes et quand je joue et utilise normalement PC et le system processus utilise seulement 28k


-1
2017-08-20 11:08



C'est une idée horrible. Prefetch / superfetch sont utilisés pour une raison. Si vous pensez pouvoir mieux gérer la mémoire que votre système d'exploitation, vous vous trompez. - b1nary.atr0phy
Désactiver la lecture anticipée (ou «nettoyer votre dossier de lecture anticipée») est en effet une idée très idiote. Prefetch n'entraîne plus l'utilisation de la RAM par le système. Il accélère le chargement des fichiers exe et dll une fois que vous les commencezet seulement alors. Re SuperFetch, Microsoft désactive SuperFetch par défaut sur les systèmes avec un SSD pour le lecteur Windows; ils estiment que l'avantage n'en vaut pas la peine. Personnellement, je le garde activé car j'ai d'autres lecteurs, non-SSD, sur lesquels je souhaite que SF fonctionne encore. - Jamie Hanrahan