1 votes

Pourquoi un taux élevé de mémoire en veille est un signe de pression de la mémoire ?

J'ai regardé un ancien épisode de defrag tools, où Andrew Richards explique RAMMap ( http://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-6-RAMMap )

À 24:45, il mentionne que la réaffectation des listes de veille 5-7 indique une pression mémoire sur le système. Dans les commentaires de cette émission, il le confirme à un utilisateur ayant un nouvel ordinateur portable. J'ai également regardé Mysteries of Memory Management Revealed de Mark Russinovich pour mieux comprendre ce phénomène.

Standby est considéré comme un cache, (sur les installations non-SSD de Windows 7, SuperFetch est implicitement activé, ce qui utilise les listes de standby 6 et 7 pour charger les données dans les listes de standby afin qu'elles soient prêtes).

Andrew a même montré un résumé des priorités de sa machine (25:50), qui fonctionnait depuis des semaines, qui n'avait pas de mémoire réaffectée en 5-7.

Contrairement à cette affirmation, il semble que la réaffectation 5 ne soit pas nécessaire considérée comme un problème de pression de mémoire. Vous trouverez ici quelques explications sur la réaffectation :

Que sont les régions de RAM "modifiées" et "en attente" dans Resource Monitor ?

Voici un écran de ma machine win 7 x64, avec 16 gb ram, qui a fonctionné pendant 1,5 jours, avec seulement firefox et remote desktop.

Repurposed memory

6 et 7 sont vides car SuperFetch est désactivé.

Voici une de nos machines qui faisait du traitement de données (en fait, une application tournait et mâchait des données).

data processing

Ces 800 gb réaffectés sur le 5 indiqueraient "une pression mémoire" selon l'explication d'Andrew.

Sur la base de cette déclaration, ma machine locale aurait besoin de beaucoup plus que les 16 Go de RAM et le processeur de données aurait besoin d'un "petit" peu plus. Le traitement implique l'écriture de nombreux fichiers, et l'ajout de 128 Go de mémoire vive ne serait probablement d'aucune utilité, même si les chiffres bruts réaffectés indiquent le contraire.

Alors, est-ce qu'un taux élevé de mémoire réaffectée sur la priorité 5 indique une réelle pression sur la mémoire ou est-ce que d'autres mesures sont nécessaires pour exclure d'autres problèmes ?

J'ai pu écrire un petit programme, qui est capable d'augmenter la réutilisation de la priorité 5 : Un boucle for allouer 3/4 de ram et y accéder dans au moins deux threads. Mais il s'agit d'une situation synthétisée car ma machine de dessus n'a pas eu l'impression d'avoir de la pression. Elle a lancé un scan de virus ce jour-là et firefox et remote desktop ne mangeaient pas ma ram.

Fait évident : si j'alloue 3/4 de la mémoire vive, je l'utilise, la libère, la réalloue à nouveau, etc, pas de la liste en attente est ré-utilisée pour la libération, elle va dans la liste libérée, puis dans la liste mise à zéro. Je n'ai pas testé cela avec les mappages de fichiers, qui sont beaucoup plus faciles à mettre en cache sous forme de blocs de mémoire arbitraires.

1voto

Jamie Hanrahan Points 22184

À mon avis, cette affirmation selon laquelle la réaffectation de la RAM de secours prioritaire 5 est nécessairement un signe de pression mémoire est exagérée.

Maintenant, il est vrai que la priorité 5 est la priorité par défaut pour les processus interactifs, et vous préféreriez voir des pages de moindre priorité être réaffectées plutôt que la priorité 5.

Mais que faire s'il n'y en a pas assez ? Sur ce système, en ce moment, j'ai un total de 3,2 Go de priorité 5 en attente et à la priorité 0-4, un total de peut-être 130 Mo ! (SuperFetch est désactivé, btw, puisque j'ai un SSD pour mon disque OS).

Rappelez-vous également que ces compteurs "repurposés" sont cumulatifs depuis le démarrage. Mon système est en service depuis presque un mois, depuis le 12 mars - soit 27 jours, environ 2,3 millions de secondes. Pendant cette période, j'ai apparemment repurposé environ 230 Go de la liste de priorité 5. Cela semble beaucoup ! Mais la réaffectation se fait page par page ; une page compte 4096 octets, ce qui ne représente qu'environ 56 millions de pages. En moyenne, à long terme, j'ai réaffecté environ 24 pages de priorité 5 par seconde. Un "repurpos" prend quelques dizaines de ns, donc je pense que je peux le supporter.

Étant donné que la majeure partie de la RAM sur la plupart des ordinateurs de bureau et des ordinateurs portables est utilisée par les processus interactifs et que la plupart des autres processus font très peu de choses la plupart du temps, il est logique que les processus interactifs fassent l'objet d'une réaffectation beaucoup plus importante que les autres.

Un autre facteur est que, alors que les compteurs "Repurposés" sont cumulatifs depuis le démarrage, les compteurs "En attente" sur cet écran ne montrent que les tailles actuelles de ces sous-listes. Nous ne savons pas combien d'attente de priorité 4 il y a eu en moyenne depuis le démarrage, ou quel a été le pic le plus élevé, ou tout un tel détail. Sans cette information, il est difficile d'évaluer l'importance du compteur "réutilisé".

En résumé, je pense que le commentaire a un certain mérite (en ce sens que la réaffectation de la veille de priorité 5 est moins souhaitable qu'aux niveaux inférieurs), mais un nombre élevé de "réaffectations" de priorité 5 n'est pas nécessairement une raison pour aller acheter plus de RAM.

edit-added : J'ai quelques autres problèmes avec cette vidéo qui, collectivement, me conduisent à penser que la compréhension de ces questions par l'orateur est quelque peu incomplète - ou peut-être qu'il a parlé sans trop y réfléchir. Cela arrive.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X