Windows 10 au long cours....

Suite à ma migration tardive vers Windows 10 je continue à éplucher les problèmes que je n'avais pas sous Windows 7 et qui me donnent ce sentiment de régression, là ou la tech est censée apporter plus de progrès. Je reviendrais vous parler de la gestion calamiteuse de mes écrans, mais ce dossier est loin d'être clos !

Un autre problème est la gestion de la mémoire.

Je fais partie de ces personnes qui n'éteignent jamais leur PC, je sais ce n'est pas très écolo, on ne peut pas l'être sur tout. Bref, là ou j'avais dressé mon Windows 7 à tenir des mois sans redémarrage, avec une stabilité déconcertante (à condition d'éviter certaines mises à jour destinées à le tuer), force est de constater que je suis obligé de redémarrer mon Windows 10 régulièrement car il devient inutilisable au bout d'une semaine...

J'ai alors ouvert une enquête, inutile bien sur de faire appel au support, sur les forums les agents mandatés par Microsoft ne savent que conseiller un redémarrage, voire une réinstallation, sérieux !

Dans les faits le processus System occupe de plus en plus la CPU, environ 1 à 2 % de plus par jour. En allant chercher des détails avec Process Explorer, je me suis rendu compte que mon PC passait son temps à compresser la mémoire. Il se trouve que j'ai 32 GO de RAM et qu'il en reste toujours au moins 1/3 de libre, je considère donc que cette option est inutile et contre productive.

Dans la pratique ça peut s'expliquer. Microsoft force tout le monde à migrer vers Windows 10, mais W10 consomme plus de CPU et pour ceux ceux qui migrent de vieux PC avec 2 ou 4 GO de RAM, heureusement qu'il existe quelques artifices, même s'il me semblent illusoires ! Il ne faut pas non plus oublier que Windows 10 n'est jamais que le résultat du tripatouillage d'un code hérité au fil des décennies, ainsi des artifices utiles avec un PC des années 90 et son disque dur lent sont inutile avec un PC actuel pourvut d'un SSD, pourtant des réglages persistent !  Et de toutes façons la majorité des utilisateurs allument leur PC, puis l'éteignent quand ils ne l'utilisent plus. Donc leur PC est à nouveau frais et dispo le lendemain...

Utilisant par ailleurs des serveurs, ça m'a poussé à regarder si le problème constaté sous Windows 10 est présent sous Windows Server 2016/2019, et la réponse est non. En effet le code est proche, mais les réglages différents. Je n'ai pas ce problème sur les versions serveur, on peu penser que l'éditeur considère que sur un serveur l'administrateur dimensionne les ressources en fonction des besoins et que ces artifices sont inutiles. Pour vérifier ce point il existe une commande PowerShell :

Résultat sous Windows 10

PS C:\WINDOWS\system32> get-mmagent
ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 256
MemoryCompression : True
OperationAPI : True
PageCombining : True

Résultat sous Windows Server 2016/2019

PS C:\Users\Administrator> get-mmagent
ApplicationLaunchPrefetching : False
ApplicationPreLaunch : False
MaxOperationAPIFiles : 256
MemoryCompression : False
OperationAPI : False
PageCombining : False

Inutile d'être un expert pour constater des réglage bien différents de la gestion et l'inutilisation de la mémoire. On va donc changer quelques réglages, tout ceci n'étant pas sans risque, si vous ne savez pas ce que vous faites, je vous conseille d'aller jouer ailleurs ou de faire appel à un expert.

On va commencer par désactiver la compression mémoire et redémarrer :

PS C:\Windows\system32> disable-mmagent -mc
PS C:\Windows\system32> Restart-Computer

Etant donné qu'il ne sera pas possible d'apprécier immédiatement le résultat je propose de désactiver également Prefetch et SuperFetch avec regedit (on désactive  EnablePrefetcher et EnableSuperfetch, (au besoin on crée les entrée si elles ne sont pas présentes)

HKEY_LOCAL_MACHINE>SYSTEM>CurrentControlSet>Control>Session Manager>Memory Management>PrefetchParameters
  • 0 = Désactivé
  • 1 = Actif sur les applications
  • 2 = Actif au démarrage
  • 3 = Actif sur tout

Et on termine en désactivant les services associés (SysMain, ou SuperFetch sur des versions antérieures) avec le gestionnaire des services (WIN+R + services.msc), ou en PowerShell si vous y êtes plus à l'aise :

PS C:\Windows\system32> Set-Service SysMain -StartupType Disabled

Après un redémarrage on obtient :

PS C:\Windows\system32> Get-mmagent
ApplicationLaunchPrefetching : False
ApplicationPreLaunch : False
MaxOperationAPIFiles : 256
MemoryCompression : False
OperationAPI : False
PageCombining : False

 

Je touche du bois car mon PC est beaucoup plus stable depuis une semaine, j'espère que ça va durer et qu'une nouvelle mise à jour ne va pas me contrarier !

EDIT : deux mois après je constate que oui le PC est bien plus stable, mais si je n'ai plus de processus qui me bouffe la CPU, Windows gère toujours très mal la RAM et j'ai beau fermer toutes les applications gourmandes, je me retrouve au mieux avec 16 GO sur 32... Mais il parait que c'est normal, que j'utilise mal mon ordi et qu'il faut le redémarrer. Je tenterais bien un Mac équivalent, mais quand je vois le comportement de mon Mac Book Pro qui souffle comme un âne dès que je lance une vidéo et deux trois sites, j'hésite à confier mes économie à Apple !

Sources