web-dev-qa-db-fra.com

Windows 10, processus 'Système' prenant des quantités massives de RAM

Depuis ma mise à niveau vers Windows 10, mon système consomme excessivement RAM

 enter image description here

J'ai lu un peu et déterminé qu'il est probable qu'un pilote perd de la mémoire. Je me suis donc procuré le kit de pilotes Windows et 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 partir de là pour identifier le conducteur?

J'ai essayé des trucs comme "C:\Windows\System32\drivers> findstr/s smnp. " mais cela n'a donné aucun résultat. J'ai aussi jeté un œil au fichier pooltag.txt et voici la description que j'ai trouvée:

 enter image description here

Alors oui, toute aide serait la bienvenue. Merci d'avance.

80
Nayncore

En allant dans services.msc (via Win+R) et désactiver Superfetch résout complètement ce problème. Je ne suis pas sûr si Superfetch est juste cassé à partir de maintenant ou c'est "à dessein".

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

14
den

J'ai examiné les traces xperf de plusieurs utilisateurs et 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 cela sur sysinternals .

J'ai demandé à Microsoft à ce sujet et la réponse est que cela est voulu par la 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é magasin de compression, qui est une collection de pages compressées en mémoire. Cela signifie que lorsque le gestionnaire de mémoire ressent une pression sur la mémoire, il va compresser les pages inutilisées au lieu de les écrire sur le disque.Ceci réduit la quantité de mémoire utilisée par processus, ce qui permet à Windows 10 de gérer davantage d'applications mémoire physique à la fois. Cela contribue également à améliorer la réactivité sous Windows 10. Le magasin de compression réside dans l'ensemble de travail du processus système. Etant donné que le processus système garde le magasin en mémoire, son ensemble de travail s'agrandit lorsque la mémoire est mise à disposition pour d'autres processus. Cela est visible dans le Gestionnaire des tâches et la raison pour laquelle le processus système semble utiliser 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, celles-ci sont compressées. 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 inclut plus de détails.

Apparemment, la raison en était que Microsoft avait décidé de suspendre les applications UWP lorsqu'elles n'étaient pas au premier plan, ce qui est très similaire à la gestion de certains systèmes d'exploitation de smartphone. Les utilisateurs de Windows 8 ont compris (peut-être pas) que si les applications n'étaient pas à l'écran, elles ne s'exécuteraient pas tant que l'utilisateur ne reviendrait pas à celles-ci. L’approche ‘tout ou rien’ est en cours de mise à jour Windows 10 introduisant un calque entre le fichier d'échange et l'activité de pagination normale. Désormais, lorsqu'il est confronté à des problèmes de pression de mémoire, MM détermine 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 d'échange sauvegardant une liste de fichiers d'échange en attente. Une liste de sauvegarde est capturée dans le cas où la mémoire est récupérée à partir de la liste de secours par un autre processus, et le processus d'origine recherche sa page. Au lieu de tout ou rien, Windows 10 MM compressera les pages inutilisées plutôt que de les écrire sur le disque. Avec moins d'écriture, le résultat devrait être moins d'opérations de disque - grâce à la compression - et maintenant plus de données peuvent être stockées en mémoire.

 enter image description here

Selon l’équipe Windows, « En pratique, la mémoire compressée occupe environ 40% de la taille non compressée. Par conséquent, Windows 10 écrit des pages sur le disque 50% plus souvent que les autres. versions précédentes du système d'exploitation. ”Si tout se déroule comme prévu, Les utilisateurs de Windows risquent de bénéficier de temps d'attente réduits pour tous les périphériques, ainsi que d'une durée de vie prolongée sur les systèmes dotés de disques durs à mémoire flash .

La décompression est aussi quelque chose que Windows 10 est conçu pour bien faire. Windows 10 utilise la combinaison de la parallélisabilité et des lectures séquentielles pour produire des pages en mémoire une fois appelé. La nouvelle décompression devrait permettre une expérience plus rapide, car Windows 10 décompresse simultanément les données et les lit en parallèle à l'aide de plusieurs processeurs. Les anciennes versions de Windows peuvent sembler lentes à cause des taux de transfert entre les disques.

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

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

Dans cette vidéo, Mehmet Iyigun a passé un certain temps à expliquer pourquoi le processus système de Windows 10 utilise un peu plus de mémoire et pourquoi c'est une bonne chose. Un processus nécessitant plus de mémoire semble être une mauvaise chose - c'est tant que je n'en ai pas compris davantage sur la gestion de la mémoire, la pagination et les défauts de page matériels/logiciels. Il s'avère que le système d'exploitation procède à des optimisations astucieuses qui permettent à vos processus de réduire une partie de la mémoire, mais pas nécessairement de la renvoyer sur le disque. Non seulement la mémoire est conservée dans la RAM, mais elle est également compressée, ce qui rend les erreurs de page difficiles plus rares. Les résultats devraient en faire une expérience plus vivante.

Dans les dernières versions de TH2, Microsoft a mis à jour la description dans le gestionnaire de tâches et indique désormais que le processus SYSTEM héberge le compressed memory:

 enter image description here

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

Dans la mise à jour d'anniversaire de Windows 10 publiée en août 2016, Microsoft a extrait la compression actuellement illustrée dans un pseudo processus appelé Memory Compression afin de ne plus confondre les utilisateurs en raison de la consommation de mémoire aussi importante de SYSTEM:

 enter image description here

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

 enter image description here

Si vous passez le curseur de la souris sur le graphique de mémoire utilisé dans Taskmgr, une info-bulle affiche le nombre de données compressées.

 enter image description here

Dans cette démonstration, 388 Mo sont compressés à 122 Mo, donc 267 Mo sont enregistrés avec la compression.

92
magicandre1981