Comment réduire le thrashing de disque (pagination)?


11

J'ai 4 Go de RAM, mais Windows écrase toujours le disque parfois (surtout souvent lorsqu'une application est minimisée pendant un certain temps et que je l'active à nouveau). Complètement stupide, car le Gestionnaire des tâches montre que 2 Go de RAM sont gratuits. Existe-t-il un moyen d'empêcher Windows d'échanger la mémoire du programme?

J'ai essayé de configurer Superfetch pour ne mettre en cache que les fichiers de démarrage (cela a aidé un peu) et de désactiver le fichier de pagination (cela a beaucoup aidé et a bien fonctionné pour moi dans Windows XP; mais Windows Vista / Windows 7 ne le permettent pas - cela montre "faible" sur la mémoire "fréquemment, même lorsque j'ai 1 Go de RAM libre.)

Que pouvez-vous me conseiller de faire?


6
Vous ne voulez pas désactiver la super-extraction avec 4 Go de RAM, mais vous pouvez désactiver l'indexation. Laissez le fichier d'échange tranquille, Windows en sait plus que n'importe lequel d'entre nous. Je ne peux pas m'empêcher de paginer, cependant.
Phoshi

2
Non, je veux certainement le désactiver. Cette fichue chose est trop mal conçue. Une fois que je l'ai trouvé en train de charger tous les fichiers d'un jeu à chaque démarrage (j'avais l'habitude de jouer le soir), et cela mangeait la moitié de ma RAM, et c'était le jour dernier Superfetch fonctionnait sur mon PC avec des paramètres illimités.
skevar7

1
Le terme thrashing fait généralement référence à la situation où la mémoire physique est pleine ou presque pleine et où des échanges de pages constants se produisent. Il ne fait pas référence à une activité normale d'échange de page. Ce que vous voyez n'est pas débordant, mais simplement la façon dont l'algorithme de gestion de la mémoire a été conçu. Gardez de l'espace disponible pour les processus nouvellement créés, supposez qu'un processus dont la fenêtre est réduite n'est pas utilisé et doit déplacer sa mémoire vers le disque et ainsi de suite.
lance

2
C'est la pire décision jamais prise pour supposer que parce qu'une fenêtre est réduite au minimum, elle n'est pas utilisée. S'il est minimisé, c'est parce qu'il n'y a pas assez de place pour cela à l'écran pendant le multitâche. J'en ai tellement marre de retourner sur mon ordinateur et malgré le peu de programmes en cours d'exécution, il tardera et bégayera pour ramener les données du fichier d'échange lorsque je restaurerai certaines fenêtres à partir d'un état minimisé, malgré les GIG de RAM libre. Le fichier d'échange ne doit JAMAIS être touché sauf si je manque de RAM. Si Windows veut faire des hypothèses sur les programmes minimisés, faites-le quand il n'y a en fait pas assez de RAM.
Triynko

Réponses:


7

Mark Russianovich a écrit un bon long article sur la mémoire virtuelle,
repousser les limites de Windows: la mémoire virtuelle

La mémoire virtuelle sépare la vue de la mémoire d'un programme de la mémoire physique du système, de sorte qu'un système d'exploitation décide quand et si stocker le code et les données du programme dans la mémoire physique et quand les stocker dans un fichier. Le principal avantage de la mémoire virtuelle est qu'elle permet à plus de processus de s'exécuter simultanément que ce qui pourrait autrement tenir dans la mémoire physique.

Alors que la mémoire virtuelle a des limites qui sont liées aux limites de la mémoire physique, la mémoire virtuelle a des limites qui dérivent de différentes sources et qui sont différentes selon le consommateur. Par exemple, il existe des limites de mémoire virtuelle qui s'appliquent aux processus individuels qui exécutent des applications, le système d'exploitation et le système dans son ensemble. Il est important de se rappeler en lisant ceci que la mémoire virtuelle, comme son nom l'indique, n'a pas de connexion directe avec la mémoire physique. Windows attribuant au cache de fichiers une certaine quantité de mémoire virtuelle ne dicte pas la quantité de données de fichier qu'il cache réellement dans la mémoire physique; il peut s'agir de n'importe quel montant allant de zéro à plus que le montant qui est adressable via la mémoire virtuelle.

C'est une très bonne lecture.

Quelle taille dois-je créer pour le fichier d'échange?
Peut-être que l'une des questions les plus fréquemment posées sur la mémoire virtuelle est la suivante: quelle taille dois-je créer pour le fichier d'échange? Il n'y a pas de fin de conseils ridicules sur le Web et dans les magazines en kiosque qui couvrent Windows, et même Microsoft a publié des recommandations trompeuses. Presque toutes les suggestions sont basées sur la multiplication de la taille de la RAM par un facteur, les valeurs courantes étant 1,2, 1,5 et 2. Maintenant que vous comprenez le rôle que le fichier d'échange joue dans la définition de la limite de validation d'un système et comment les processus contribuent à la charge de validation, vous êtes bien placé pour voir à quel point ces formules sont vraiment inutiles.


Article précédent: Repousser les limites de Windows: mémoire physique

Vous pouvez voir la disposition de la mémoire physique avec l' outil Meminfo par Alex Ionescu .


5
Rien de nouveau pour moi là-bas. Et ce n'est pas du tout une réponse à ma question.
skevar7

2
@ skevar7: Pas une réponse pour vous peut-être, mais de bons liens vers des explications sur le tout pour quelqu'un qui trouverait ce sujet et qui n'aurait pas autant de connaissances que vous.
Gnoupi

1
règle de base: ne mentionnez même pas la pagination sauf si c'est avec une certitude absolue liée à votre problème ou si vous voulez simplement déclencher une discussion sans fin sur les choses à faire et à ne pas faire ... il en va de même pour les navigateurs Web et les logiciels antivirus: )

1
Je suis absolument sûr que la pagination est coupable. Je sais certainement que la désactivation du fichier d'échange améliore considérablement les performances. C'est un fait objectif et il peut être mesuré. Le seul problème est que Windows depuis Vista ne veut plus fonctionner dans une telle configuration.
skevar7

3
@ skevar7: Et peut-être, juste peut-être, il y a des gens compétents qui pensent chez Microsoft, et ils ont pensé et décidé que le fichier d'échange était nécessaire. Ils ne l'ont pas fait juste pour vous déranger.
Gnoupi

4

Laissez simplement la gestion de la mémoire virtuelle à Windows, cela fait du bon travail. La pagination (et donc les explications de Mark Russinovic à ce sujet) sont plutôt hors de propos pour le thrashing de disque (si vous avez de la mémoire système en abondance), vous recherchez des ajustements NTFS .

O'Reilly a un article intéressant sur les hausses de performances NTFS .

Côté matériel: un meilleur disque dur avec un taux de rotation plus élevé et un cache plus important vous aidera également beaucoup.

Et voici comment supprimer l'avertissement de mémoire insuffisante, s'approprier et supprimer les clés de registre suivantes.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {5EE64AFB-398D-4edb-AF71-3B830219ABF7}]

et

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WDI\DiagnosticModules\ {45DE1EA9-10BC-4f96-9B21-4B6B83DBF476}]

Cela empêchera le service de diagnostic de charger RADAR. Cela fonctionne pour moi dans Windows Vista, les clés sont présentes dans Windows 7. Je ne l'ai pas essayé cependant - sauvegardez simplement ces clés avant de les supprimer.


2

La seule façon que j'ai trouvée était d'augmenter la taille de la RAM à 8 Go et de désactiver la pagination en définissant

HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ Session Manager \ Memory Management \ DisablePagingExecutive = 1

(redémarrage nécessaire).

Cela a réduit l'activité du disque à presque zéro.


Je soupçonne que vous aviez un lecteur excentrique ou lent pour le vouloir. J'ai quelque chose de similaire et contrairement à ce que la plupart supposent ici, ce que vous avez fait serait une bonne solution. L'augmentation de la RAM et l'utilisation d'une pagination sur disque minimale ou nulle pourraient être une solution plus intelligente (et économique) que le remplacement de supports lents.
j riv

Ce paramètre de registre ne "désactive pas la pagination". Il désactive uniquement la pagination pour ce qui serait autrement des parties paginables de ntoskrnl.exe et du pool paginé.
Jamie Hanrahan

Je ne connais pas Vista mais sur Windows 7 je désactive la pagination et n'a pas de problèmes et d'avertissements. C'est avec 8 ou 16 Go de RAM.
i486

1

Consultez Panneau de configuration \ Système et sécurité \ Système> Paramètres système avancés> [Avancé]> Performances: Paramètres> [Avancé]

La planification du processeur est liée à votre problème, tout comme la possibilité de désactiver le fichier d'échange que vous ne devriez pas faire. (Vous en avez besoin)


0

Il semble que vous ayez installé un nettoyeur de cache / mem. Ils déplacent les applications pour les échanger lorsque vous les minimisez plutôt que de les laisser en mémoire.

Le système est-il lent ou utilisez-vous simplement le mot thrash parce que vous voyez le voyant HD clignoter?


Pas de nettoyeurs. Parfois, il faut beaucoup plus de temps que d'habitude pour effectuer une opération simple (5 à 10 secondes) et le disque se débat. Cela se produit généralement après une période d'inactivité de l'application. Omperations très simples - ouvrir un nouvel onglet dans Opera, créer un nouveau fichier dans Visual Studio, etc. Je suppose donc que l'algorithme de pagination Windows est loin d'être parfait. Désactiver complètement le fichier d'échange a bien fonctionné pour moi dans WinXP, mais malheureusement Vista et Win7 ne le permettent pas.
skevar7

Contrairement à de nombreux systèmes d'exploitation, Windows supportera une bonne quantité de problèmes matériels sans se bloquer et il se pourrait qu'une sorte de récupération soit en cours en arrière-plan, ce qui est à l'origine du retard. Je sais que ça craint, mais exécutez un test HD pour vous assurer qu'il n'est pas branché car cela ressemble vraiment à un problème d'E / S car le problème disparaît lorsque vous n'autorisez pas le système à utiliser l'échange. Recherchez les mises à jour du BIOS relatives aux E / S, au contrôleur hd, etc. car il pourrait y avoir un problème connu. Le système prend-il FOREVER pour démarrer (XP, Vista ou 7)? Si c'est le cas, c'est définitivement un problème d'E / S.
UnderLoK

* J'aurais dû dire "Windows va supporter une bonne quantité de problèmes matériels sans vous avertir d'un problème";)
UnderLoK

0

Passez à Linux, ça ne fait pas ça.

Les gens vous diraient que Windows est plus intelligent que vous et que vous ne devriez pas jouer avec les paramètres du fichier d'échange et ils ont raison. Mais ce système est principalement réglé pour allouer de la mémoire nouvelle à un processus presque instantanément et il fait ce bien. L'un des effets secondaires est qu'il déplace tout ce que vous avez en mémoire sur le disque tout le temps, donc quand il a besoin d'une nouvelle portion de mémoire, il peut simplement effacer cette portion de mémoire et la donner immédiatement si elle n'a pas changé bien sûr. Je crois que lorsque vous laissez vos applications en cours d'exécution, toutes leurs données sont stockées sur le disque, puis à un moment donné, d'autres applications ou le système de mise en cache commencent à utiliser cette mémoire. Ainsi, l'application se retrouve avec le strict minimum de ses données dans la RAM physique et lorsque vous recommencez à l'utiliser, elle doit tout récupérer du disque.

Cela dit, je ne pense pas que vous puissiez tout faire avec ça, c'est juste l'une des principales propriétés du système. Vous pouvez aggraver la situation en éteignant la page ou en effectuant tout autre réglage du système. Vous ne pouvez pas le faire fonctionner comme vous le souhaitez, car il n'a tout simplement pas été écrit dans cet esprit.


2
Et encore une fois une réponse "mes fenêtres fait ça, comment puis-je ...? -> Déplacer vers linux". Cependant, le reste de la réponse est correct, mais vous auriez pu vous passer de la première phrase.
Gnoupi

D'accord, mais lorsque vous avez 8 Go de RAM et que le vrai besoin est de 3 Go - pourquoi est-il nécessaire de faire un échange sur le disque? D'un autre côté, imaginez que vous avez 2 Go de RAM physique + 2 Go de fichier d'échange - comment ce système fonctionne sans «explosion»? 4 Go suffisent pour tout mais avec 8 Go de RAM physique + 0 swap il est "possible" d'avoir une mémoire insuffisante. Comment? Je pense que l'algorithme de la mémoire virtuelle est erroné à partir de Windows 95 et qu'il n'est pas modifié dans Windows 10.
i486
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.