Devrais-je désactiver le fichier d'échange si j'ai beaucoup de RAM ou dois-je le déplacer vers un lecteur de RAM virtuel?

97

Imaginez que j'ai des tonnes de RAM. Disons 64 Go. C'est beaucoup, même pour les PC de jeu. Désormais, l'emplacement par défaut d'un fichier d'échange sous Windows se trouve sur le lecteur principal du système d'exploitation, qu'il s'agisse d'un disque dur ou d'un disque dur SSD, qui sont généralement plus rapides, mais pas aussi rapides que la RAM.

Quelque chose me dit que désactiver le fichier d'échange sur le disque dur ou créer un lecteur de RAM virtuel et laisser le fichier d'échange en place pourrait inciter Windows à déplacer toute sa mémoire virtuelle vers RAM et ainsi augmenter les performances du système, mais je ne le connais pas très bien. région, donc cela pourrait ne pas être vrai du tout.

J'ai essayé les deux, mais je ne pouvais pas analyser les résultats pour arriver à une conclusion définitive avec mon niveau de connaissance en mémoire.

Cela fonctionnerait-il? Sinon pourquoi?

utilisateur1306322
la source
57
Avoir un fichier de pagination sur un disque RAM ne permet jamais rien. Vous retirez une certaine quantité de mémoire disponible et ajoutez une certaine quantité de mémoire virtuelle. Somme nulle. Juste ne pas avoir de fichier de pagination.
USR
14
Cela semble logique de le faire sous Linux dans certains cas où le disque virtuel hébergeant le fichier d'échange est réellement compressé. Voir: en.wikipedia.org/wiki/Zram . Cependant, je ne pense pas que Windows dispose d'une telle fonctionnalité.
Matt H
2
La réponse est oui, mais il y a beaucoup de non-croyants.
Mehrdad
14
@ user367257 créer un disque virtuel pour stocker votre fichier de page revient à prêter à votre ami 10 £ pour qu'il ait assez d'argent pour vous permettre de lui emprunter 10 £. C'est peut-être techniquement possible, mais tout ce que vous avez accompli est de compliquer inutilement un voyage qui ne mène nulle part.
Rob Moir
2
Je ne le ferais (et le ferais) que pour un SSD, car vous ne recevez que très peu d'écritures (même si c'est beaucoup maintenant), avec 6 Go. Ça marche bien.
Ry-

Réponses:

134

Peu importe la quantité de RAM dont vous disposez, vous souhaitez que le système puisse l'utiliser efficacement. Ne pas avoir de fichier de pagination oblige le système d'exploitation à utiliser la RAM de manière inefficace pour deux raisons. Premièrement, cela ne peut pas rendre les pages jetables, même si elles n’ont été ni consultées ni modifiées depuis très longtemps, ce qui oblige le cache disque à être plus petit. Deuxièmement, il doit réserver de la RAM physique pour sauvegarder les allocations très peu susceptibles de l'exiger (par exemple, un mappage de fichier privé modifiable), ce qui conduit à un cas où vous pouvez disposer de suffisamment de RAM physique tout en refusant les allocations. éviter de trop s'engager.

Considérez, par exemple, si un programme crée un mappage de mémoire privée accessible en écriture pour un fichier de 4 Go. Le système d'exploitation doit réserver 4 Go de RAM pour ce mappage, car le programme pourrait modifier chaque octet et il n'y a pas d'autre endroit que la RAM pour le stocker. Donc, immédiatement, 4 Go de RAM sont à la base gaspillés (il peut être utilisé pour mettre en cache des pages de disque vierge, mais c'est à peu près tout).

Vous devez disposer d'un fichier de page si vous souhaitez tirer le meilleur parti de votre RAM, même s'il n'est jamais utilisé. Il s’agit d’une police d’assurance qui permet au système d’exploitation d’utiliser réellement la RAM dont il dispose, au lieu de la réserver à des possibilités extraordinairement improbables.

Les personnes qui ont conçu le comportement de votre système d'exploitation ne sont pas des imbéciles. Avoir un fichier de pagination donne au système d'exploitation plus de choix, et il n'en fera pas de mauvais.

Il ne sert à rien d'essayer de mettre un fichier d'échange dans la RAM. Et si vous avez beaucoup de RAM, il est très peu probable que le fichier de pagination soit utilisé (il doit simplement être là), aussi la vitesse à laquelle le périphérique est allumé est sans grande importance.

David Schwartz
la source
9
Je contredisais le vote négatif. Mais pour votre dernier commentaire: je lance 2 machines différentes sans échange. C'est parfait si vous savez exactement comment la machine va être utilisée.
Spudone
6
Je soupçonne que le fichier de page d’une clé ramdrive a commencé comme une "solution de contournement" car c’est le fait que certains logiciels refuseront de démarrer s’ils détectent qu’il n’ya pas de fichier de page. (On m'a dit que les outils graphiques / vidéo d'Adobe le faisaient.)
Dan Neely le
8
@DavidSchwartz Les informations que vous donnez sont correctes sur le plan technique, et c'est une bonne information à connaître. Mais la conclusion selon laquelle vous en venez à ce que vous devriez toujours avoir un fichier de page, quelle que soit votre quantité de RAM, n'est pas correcte et je maintiens mon affirmation selon laquelle cela ne devrait pas être la réponse acceptée.
Jason Wheeler
5
Je n'aime simplement pas entendre dire que "les fichiers d'échange sont magiques, alors ne les désactivez pas car vous serez désolés" quand je sais que dans de nombreuses circonstances courantes, vous pouvez les désactiver, et constater en toute sécurité une amélioration des performances n'augmente plus les entrées / sorties de disque de 100% ou plus lorsque le MMS veut faire quelque chose. Tout ce que je veux entendre des interlocuteurs de ce débat, c’est "oui, dans certaines circonstances, vous pouvez les désactiver et réduire les E / S du disque, ce qui peut donner lieu à des contusions". Je ne dis pas que les fichiers d'échange sont toujours mauvais, peut-être pouvez-vous dire qu'ils ne sont pas toujours nécessaires.
Fred Hamilton
5
J'ai réalisé que ce qui me dérangeait dans tout ça, c'est qu'un côté semble dire "les fichiers de pages ne font jamais que du bien" et l'autre côté est "les fichiers de pages sont terribles", puis les gens se retranchent d'un côté ou de l'autre. La "vérité" est que, dans certains cas, ils sont très utiles et même évitent les collisions et, dans d'autres cas, ils ne sont pas nécessaires et peuvent même entraîner une baisse des performances. Je suis content de cela comme déclaration finale malgré tout. Vivez longtemps et prospérez, @David Schwartz.
Fred Hamilton
32

Vous avez tout à fait raison dans votre hypothèse.

Les algorithmes de gestion de la mémoire sont très complexes et ne sont en aucun cas parfaits. L'échange se produit donc même lorsqu'il y a beaucoup de RAM disponible. Sur certains systèmes, Linuxvous pouvez par exemple contrôler le swappiness , sur d’autres, vous ne le pouvez pas. En échangeant des données lorsqu'il reste encore beaucoup de RAM, le système se prépare, à sa manière, à la situation dans laquelle il risque de manquer de RAM.

La désactivation de la fonctionnalité de permutation peut donc vous permettre d’améliorer les performances, car vous n’utiliserez que de la RAM, qui est plus rapide, comme vous l’avez déjà dit.

Une chose à considérer (et vous l’avez déjà mentionnée): vous devez disposer de suffisamment de RAM pour accueillir tous les programmes que vous exécutez, sinon vous risqueriez de manquer de mémoire . Dans ce cas, les performances chuteront, certains processus pourraient être arrêtés par le système d'exploitation et le système pourrait subir un crash / gel. (en savoir plus ici )

Sur certaines machines, en particulier celles qui conservent le fichier d'échange sur le disque dur et non sur le disque SSD, l'effet de la désactivation de la permutation est très visible. Sur d'autres, ce n'est pas si évident. Mais même si vous n'obtenez pas d'amélioration évidente, réfléchissez-y d'une autre manière. En désactivant la permutation, vous économiserez de l'espace disque sur votre SSD.

En désactivant la permutation, vous empêcherez également les algorithmes de mémoire d'effectuer des opérations inutiles (déplacer des données de la RAM vers la permutation et inversement), ce qui empêchera l'usure excessive des disques SSD. Et dans tous les cas, cela améliorera les performances en éliminant les opérations inutiles.

Aussi, lisez:

Art Gertner
la source
2
@ChrisH Vous ne seriez probablement pas non plus en mesure de charger une base de données SQL dans un traitement de texte, car celles-ci fonctionnent entièrement en RAM :-)
TylerH
9
Cette réponse est incorrecte et contient beaucoup de désinformation. Mais voici le moyen simple de comprendre pourquoi cela ne va pas: les personnes qui ont conçu le comportement de la mémoire de votre système d'exploitation font probablement partie des personnes les plus intelligentes au monde. Pourquoi voudraient-ils concevoir un système tel que lui donner plus d'options (l'option d'échange si, et seulement si, il pense que c'est le meilleur choix) rendrait ses performances plus mauvaises? Seul un idiot concevrait un tel système.
David Schwartz
17
@ DavidSchwartz, je ne vois pas en quoi le fait que les développeurs d'algorithmes de gestion de la mémoire soient intelligents change le sujet d'origine. OP a demandé si la désactivation de la permutation pouvait améliorer les performances et j'ai expliqué que cela pouvait, dans certaines conditions, entraîner des problèmes dans d'autres. Répondez à votre question de savoir pourquoi (?) - Je peux le dire, car les algorithmes ne sont pas parfaits et il appartient à l'utilisateur de les ajuster. C'est pourquoi il existe un paramètre swappiness sous Linux et c'est pourquoi la désactivation de la permutation est possible.
Art Gertner
11
@smc Il n'y a rien d'inhabituel dans le cas d'utilisation du PO. L'idée que les systèmes d'exploitation ne sont pas correctement réglés pour les cas d'utilisation standard de bog est totalement absurde. (Voir ma réponse pour savoir pourquoi vous ne voulez pas faire cela.)
David Schwartz
4
L'hypothèse selon laquelle un algorithme donné prendra toujours une décision souhaitable pour l'utilisateur est totalement fausse. Ils prennent des décisions en fonction de paramètres définis que les programmeurs ont jugés importants. Cela pourrait bien être en contradiction directe avec ce qui doit arriver à un utilisateur.
Anaksunaman
14

Pouvez-vous désactiver le fichier d'échange en toute sécurité?

Si vous manquez de mémoire libre, y compris de mémoire virtuelle, le système ne peut pas continuer à garantir une exécution déterministe et se termine lui-même. Avant que cela ne se produise, le système d’exploitation effectuera diverses autres tâches, telles que la suppression des programmes utilisant trop de mémoire. Ce que je veux dire, c’est que la mémoire est toujours finie et que chaque système d’exploitation peut s’en occuper. Par conséquent, limiter la mémoire totale disponible à 64 Go ne nuit pas à Windows - de nombreux systèmes ne peuvent pas dépasser 8 Go, même avec un fichier d'échange, car avec 1 ou 2 Go de RAM, le fichier d'échange est généralement beaucoup plus petit que 6 ou 7 Go. Il convient de noter que tant que vous avez une quantité excessive de RAM inutilisée, la charge supplémentaire liée au système d’exploitation conservant un fichier d'échange ne sera pas mesurable.

Est-il judicieux de placer le fichier d'échange sur un disque mémoire?

Pour augmenter la mémoire disponible, la plupart des systèmes d'exploitation avancés, sinon tous, utilisent un type de fichier d'échange dans lequel ils utilisent une partie de la mémoire qui est dans la RAM et qui n'a pas été utilisée depuis un moment, écrivez la mémoire sur le disque dur (swapfile ou pagefile ), et effacez la mémoire de la RAM afin de disposer d’une mémoire plus rapide. Le fichier d'échange est utilisé pour étendre la taille maximale de la mémoire au-delà de la taille de la RAM disponible.

Par conséquent, l'utilisation d'un disque mémoire (qui réduit la mémoire disponible de la taille du disque) pour héberger le fichier d'échange (qui augmente la mémoire disponible de la taille du fichier d'échange) fonctionnera, mais cela n'aura pas beaucoup de sens. Il ne proposera pas plus de mémoire que de désactiver le fichier d'échange, mais le système devra néanmoins exécuter des algorithmes de pagination.

Peter
la source
Mais si le fichier d'échange se trouve sur un lecteur de RAM virtuel, le temps utilisé pour copier des mégaoctets de la RAM sur un disque dur virtuel ou à partir de celui-ci sera réduit. Et si le fichier d'échange est complètement désactivé, cela ne devrait pas vous faire perdre du temps. Est-ce correct?
user1306322
2
Correct. Copier des octets de la RAM vers un fichier d'échange situé sur un disque mémoire est le plus rapide possible. Mais ne pas copier du tout est plus intelligent.
Peter
2
Les fichiers d'échange sont là pour compenser un manque de RAM. S'il y a beaucoup de RAM, il n'est pas nécessaire de compenser. Votre système d'exploitation utilisera toujours le fichier d'échange, il est donc plus rapide de l'éteindre dans ce cas.
6
@Mast C'est une simplification excessive. Les fichiers d'échange sont également là pour permettre une utilisation efficace de la mémoire vive.
David Schwartz
1
@ DavidSchwartz Peut-être, mais c'est l'explication qui m'a le mieux expliqué. Dans la plupart des cas, une petite quantité de fichier d'échange est toujours bénéfique par rapport à aucun fichier d'échange. Cependant, je n'ai pas les ressources pour sauvegarder cela.
8

Pour répéter ce que d’autres ont dit, il est plutôt inutile de passer d’un swap à un autre disque RAM (dans le cas le plus courant, voir ci-dessous). Il parvient à ce que, à un moment donné, lorsque le système manque de mémoire, certaines données soient déplacées de RAM à RAM de manière plutôt inefficace.

La permutation sur le disque dur / SSD permet au système d’exploiter des pages RAM totalement inutilisées et d’utiliser l’espace libéré, par exemple pour le cache de fichiers ou d’autres mémoires tampons système. Vous ne réalisez peut-être pas que le système alloue moins de mémoire tampon RAM, car vous n'avez pas de mémoire virtuelle disponible sans fichier de page; alors, en fait, vous risquez de ralentir vos performances en désactivant le swap.

Toutefois, un disque RAM compressé en tant que lecteur d'échange , un lecteur "ZSWAP", peut s'avérer avantageux dans les cas extrêmes (où vous aurez peut-être besoin de seulement quelques RAM supplémentaires pour éviter le basculement sur le disque dur) en améliorant le gain d'espace d'un segment de RAM. certaine mesure.

demonkoryu
la source
1
+1 pour mentionner ZSWAP. Il est couramment utilisé sur certaines plates-formes mobiles, ainsi que sous OS X 10.9 (bien qu’en plus de l’échange).
James_pic
Notez que "disque RAM compressé en tant que lecteur d'échange" a toujours le problème qu'il ne fait rien pour tous les "fichiers de pagination" autres que le fichier de page réel.
Jamie Hanrahan
5

Si vous n'avez pas de fichier d'échange, Windows ne pourra pas écrire le fichier de vidage sur incident en cas de BSOD (blocage). Cela signifie que vous ne pourrez pas analyser le problème en utilisant les outils appropriés.

Avoir le fichier de page dans la RAM est presque inutile, car il peut être perdu dans le crash.

Pour plus d'informations, voir l'article de Microsoft intitulé Comprendre les fichiers de vidage sur incident .

harrymc
la source
4

Pour Windows, de la bouche du cheval:

Certains pensent que l'absence de fichier de pagination entraîne de meilleures performances, mais en général, un fichier de pagination signifie que Windows peut écrire des pages sur la liste modifiée (qui représentent des pages auxquelles l'utilisateur n'a pas accédé activement mais qui n'ont pas été enregistrées sur le disque). fichier de pagination, rendant ainsi cette mémoire disponible à des fins plus utiles (processus ou cache de fichiers). Ainsi, s'il est possible que certaines charges de travail fonctionnent mieux sans fichier de pagination, généralement, cela signifie que davantage de mémoire * utilisable sera disponible pour le système (peu importe que Windows ne puisse pas écrire de dumps sur les pannes du noyau sans un fichier de pagination de la taille requise.) assez grand pour les tenir).

https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-limits-of-windows-virtual-memory/

  • mémoire utilisable - bien que cela recommande d'avoir de la mémoire virtuelle, cela suggère également que vous avez besoin de très grandes quantités de RAM pour être sûr de bénéficier de l'absence de fichier de page / mémoire virtuelle. J'ai 4 Go de RAM SSD de 128 Go sans fichier de page, mais je l'utilise pour la navigation sur le Web et la saisie de documents au format Word.
utilisateur127379
la source
2
D'après mes leçons personnelles et quelque chose que je prêche à tous les nouveaux employés: il n'y a que 2 règles. # 1: ne jamais faire confiance à Microsoft. # 2 .. vous n'avez pas écouté la règle 1, donc il n'y a pas de règle 2.
Nick
3

Ne désactivez pas le fichier d'échange. Ce n'est pas seulement pour le manque de mémoire. Il n’ya aucun avantage direct sur le plan de la performance à l’éteindre , Windows l’a lu seulement quand il le faut, il l’écrit tout le temps pour qu’il soit prêt à tout moment.

Vous pouvez le réduire à environ 2/3 de la taille de la mémoire si vous disposez de plus de 4 Go, car il stocke l'image de la mémoire compressée. Vous pouvez le placer sur votre disque dur plus lent auquel aucun autre accès disque lourd n’accède, si vous n’avez pas l’espace disponible sur un disque SSD. Mais il est avantageux d’en avoir un quelque part.

Voir cette réponse pour plus d'informations quant à pourquoi. https://superuser.com/a/286476/4236

JamesRyan
la source
3

En théorie, placer le fichier d'échange dans la RAM ne devrait avoir aucun sens, car vous ne faites qu'épuiser vos gains supposés, et Windows repose sur l'hypothèse selon laquelle le fichier d'échange ne sera pas utilisé à de telles fins.

Cependant, dans la pratique, une conception et une philosophie imparfaites peuvent même entrer dans le noyau Windows, et la gestion de la mémoire par Microsoft n'est pas nécessairement parfaite. Beaucoup ont constaté que le fait de placer le fichier d'échange dans un disque virtuel se traduisait par une augmentation des performances , dans la mesure où vous disposiez d'une quantité de mémoire suffisante.

J'ai compilé un article qui montre une collection d'utilisateurs de ce genre issus du fil de discussion d'un seul forum et qui ont découvert que, malgré des quantités massives de RAM, le fichier d'échange était toujours utilisé:

http://www.overclock.net/t/1193401/why-it-is-bad-to-store-the-page-file-on-a-ram-disk/290#post_23508589

Dan W
la source
Merci d'avoir compilé cette liste. Cela devrait aider à présenter certaines preuves que la théorie et la pratique diffèrent à cet égard. Virtual memory − A paging file is an area on the hard disk that Windows uses as if it were RAM.Ouais, comme si: p
user1306322
cette conclusion est imparfaite. le fait que le système d'exploitation écrit des choses dans le fichier d'échange même s'il semble avoir "une énorme quantité de RAM libre" ne prouve rien sur un "design et une philosophie imparfaits". Cela signifie que vous ne disposez pas de suffisamment d'informations pour évaluer correctement les décisions du système d'exploitation. Pour commencer, considérons le cas où il existe de nombreuses pages modifiées. Ils sont écrits dans le fichier d'échange et déplacés vers la liste de veille - ils font maintenant partie de "disponible". Tu as compris? La RAM est disponible PARCE QUE son contenu a été écrit dans le fichier d'échange!
Jamie Hanrahan
@JamieHanrahan: Cela n'explique pas pourquoi les gens ont toujours des problèmes alors qu'ils utilisent rarement plus d'une fraction de la RAM. Les commentaires de ce fil de discussion incluent: "Je n'ai jamais vraiment utilisé plus de la moitié de celui-ci", "L'utilisation du fichier d'échange est d'environ 2,7 Go. La RAM utilisée est de 3,23 Go sur 16 Go.", "Les performances de Illustrator ont considérablement augmenté J'ai créé et déplacé mon fichier d'échange vers RAMDisk ".
Dan W
La plupart de ces commentaires sont dus à une information médiocre. Il est peu probable que les problèmes de performances soient résolus en conservant des éléments dans la RAM qui ne sont pas utilisés souvent. Le fichier d'échange n'est pas le seul fichier impliqué dans la pagination; il y en a des centaines d'autres. Il est donc peu probable qu'une action affectant uniquement le fichier d'échange (et retirant des Go de mémoire vive du reste du système, augmentant ainsi le taux de défauts de page) ait un effet "dramatique". De tels rapports ne sont généralement pas maintenus lorsque des tests correctement contrôlés sont effectués. Vous pouvez trouver des anecdotes à l'appui de n'importe quelle croyance; Je les trouve peu convaincants.
Jamie Hanrahan
En particulier, l'affirmation "le fichier d'échange est utilisé" exige une preuve. Le simple fait d'avoir des Go de contenu dans le fichier d'échange ne prouve pas que le fichier d'échange est utilisé de manière à le placer dans un chemin de performances critique. Pour évaluer cela, isolez le fichier d'échange directement sur une partition - ou du moins, une partition qui n'est pas utilisée activement pour quoi que ce soit d'autre - et vous pourrez ensuite utiliser PerfMon sur ce "disque logique" pour surveiller ses débits IO. Si le fichier d'échange n'est pas lu souvent, peu importe le volume qui y est écrit!
Jamie Hanrahan
2

Convertir un système d'exploitation conçu de manière à ne pas utiliser le swap est bien plus difficile qu'il n'y paraît.

Les Mac modernes ont une partition de récupération - une partie du lecteur principal avec un système d’exploitation optimisé qui peut réparer ou restaurer le système principal. Au moment de l'installation du DVD, ils ont exécuté un processus personnalisé et le système crée maintenant un disque RAM pour la partition de swap, car il n'est pas garanti qu'un programme d'installation dispose d'un espace de travail suffisant. Le système d'exploitation inclut les infrastructures nécessaires à l'exécution du logiciel de maintenance inclus, qui est identique aux utilitaires disponibles après l'installation. Beaucoup moins de travail pour tout le monde.

Limiter le système à une application à la fois signifie que le ramdisk-swap n'est jamais utilisé, mais le système d'exploitation s'attend à ce qu'il soit là.

peter
la source
2

Si vous avez assez de mémoire, la réponse serait oui, vous pouvez désactiver le swap. Swap a été créé pour dépasser les limites de la mémoire RAM et en rendre l’utilisation plus efficace.

La question est maintenant de savoir combien de RAM est assez de RAM? Il n’ya pas de réponse universelle à cela et, par nature, les systèmes ont faim de mémoire. Par conséquent, et sauf si vous utilisez un environnement très spécifique et contrôlé, ne désactivez pas l'échange.

N'importe quel autre type de cascade tel que le swap sur RAM ne fera que créer une couche supplémentaire de complexité et dépenser de la mémoire qui pourrait autrement être utilisée directement.

nsn
la source
2

Mon système dispose de 24 Go de RAM. Pour cette raison, j'ai désactivé le fichier d'échange pour éviter l'usure de mon disque SSD sans aucun problème. J'ai récemment créé un disque RAM, utilisant 4 Go de ma mémoire pour stocker des fichiers Google Chrome Cache, afin de voir si cela augmenterait les performances des jeux Flash Player en ligne et de la navigation sur le Web en général. J'ai vu une augmentation marquée des performances de cette expérience. Comme j'avais plus d'espace disponible sur mon disque virtuel, j'ai activé mon fichier d'échange et défini la taille minimale et maximale à 1 Go, puis je l'ai déplacé sur le disque virtuel. Bien que je ne puisse pas dire qu'il y ait eu une amélioration des performances, mon système semble fonctionner de manière plus stable.

Michael
la source
Vous feriez bien mieux de simplement mettre un fichier d'échange sur votre SSD. Windows ne l'utilisera pas s'il n'en a pas besoin. Mettre un fichier d'échange sur un disque virtuel est ridicule. Oui, les défauts de page de ce "fichier" seront résolus plus rapidement que s'ils se trouvaient sur un disque réel, mais en affectant la RAM au disque RAM, vous augmentez le nombre de défauts de page. C'est comme emprunter de l'argent à soi-même, se faire payer des intérêts et jeter les "intérêts". Ce n'est même pas faux.
Jamie Hanrahan
1

Déplacer le fichier d'échange vers la RAM est une notion ridicule. Désactivez-le et utilisez davantage de RAM. :)

No matter how much RAM you have, you want the system to be able to use it efficiently. Having no paging file at all forces the operating system to use RAM inefficiently for two reasons. First, it can't make pages discardable, even if they haven't been either accessed or modified in a very long time, which forces the disk cache to be smaller. Second, it has to reserve physical RAM to back allocations that are very unlikely to ever require it (for example, a private, modifiable file mapping), leading to a case where you can have plenty of free physical RAM and yet allocations are refused to avoid overcommitting.

Consider, for example, if a program makes a writable, private memory mapping of a 4GB file. The OS has to reserve 4GB of RAM for this mapping, because the program could conceivably modify every byte and there's no place but RAM to store it. So immediately, 4GB of RAM is basically wasted (it can be used to cache clean disk pages, but that's about it).

La gestion de la mémoire est gérée par la CPU et l'activation ou la désactivation du fichier d'échange n'a aucune incidence sur le traitement des pages. C'est transparent pour Windows.

La priorité des pages ne change pas, les pages seront ignorées de la même manière. Les fichiers de page sont utilisés par la CPU comme stockage secondaire, pas comme système d'exploitation. Ce n'est rien de plus que le cache de niveau 2 lorsque le niveau 1 (RAM) est épuisé.

Un exemple rapide et très sale: ma machine a 16 Go de RAM et aucun fichier d'échange. Il y a 5 minutes, avec 13 Go en veille et seulement 2 Go disponibles, j'ai chargé Fallout 4. Les pages de faible priorité ont été ignorées au démarrage de Fallout.

En passant, le blog 2008 de Technet sur le dépassement des limites de la mémoire Windows est très trompeur - je dirais même au point d'être trompé. https://i.stack.imgur.com/wXkmi.png Je ne sais pas trop si même Mark l'a écrit, mais j'espère que non, cela changerait ma perspective de lui .....

Fwiw il y a des trous béants dans l'article que je suis stupéfait que personne n'a choisi de considérer combien de fois ce blog a été référé

  • Le fichier d'échange et son emplacement sont gérés par Windows. Le recouvrement de l'accès mémoire aux emplacements qui ont été paginés sur le disque serait capturé par le processeur, mais transmis au système d'exploitation pour récupérer la page à partir du disque et la charger.

Quoi qu'il en soit, voici une description pas si vague:

Windows ne peut pas atteindre des adresses plus élevées que le processeur - ce n'est pas possible.

Peu importe ce dont le système d'exploitation est capable, il reste limité par le matériel sur lequel il s'exécute .. car le système d'exploitation est en réalité le processeur lui-même (registres internes).

OK, le fichier d'échange est une zone du disque dur utilisée par la CPU pour l'espace d'adressage physique étendu quand elle ne peut utiliser physiquement ou architecturalement plus de RAM.

Sur une architecture 32 bits x86 segmentée, par exemple, il y a deux segments de 2 Go de RAM.

Un est alloué au noyau. L'autre 2 Go est pour le mode utilisateur. C’est toute la RAM que le processeur peut utiliser avec 32 broches DRAM, mais un processus 32 bits disposant de 4 Go disponible, que faire. Heureusement, le processeur peut utiliser le stockage secondaire AKA sur le disque dur pour stocker les 2 Go supplémentaires de pages. Parce qu'il possède des registres internes
Les emplacements physiques où les pages virtuelles référencées par le processus ne doivent pas être stockés dans la RAM. Mais ils doivent être stockés quelque part par la CPU.

Le processeur ne peut pas donner 4 Go de RAM à l'application, mais il peut lui donner 4 Go d'adresse en utilisant le disque dur comme cache secondaire (c'est-à-dire tout ce que le disque dur est réellement).

Les pages sont déplacées dans et hors de la RAM via son mécanisme de pagination interne, mais ce n'est pas la même chose qu'un fichier d'échange. La pagination se produit toujours ....

La ligne de fond n'est vraiment pas si compliquée. Depuis une quinzaine d'années, de nombreux utilisateurs finaux ont eu l'impression qu'un fichier d'échange faisait partie intégrante du système d'exploitation, mais ce n'est pas le cas. Cela n'a jamais été. Cette idée fausse est en partie alimentée par des sociétés comme Intel et Microsoft.

La RAM est un périphérique de stockage rapide, le disque dur est un périphérique de stockage plus lent. Par conséquent, la RAM est essentiellement un cache de niveau 1 et le disque dur est un niveau 2 (sans tenir compte du cache du processeur pour cette analogie). Les deux sont accessibles par la CPU.

Si la CPU ne dispose pas de suffisamment de RAM pour stocker les pages dont elle a besoin, le disque dur peut être utilisé en tant que débordement. S'il y a beaucoup de RAM, le PF est redondant.

Jusqu'au Core 2, les processeurs Intel disposaient d'un bus DRAM à 32 broches et de 32 registres, ce qui signifie que le processeur avait accès à 4 Go de RAM et à 4 Go d'espace disque dur (fichier d'échange). Il s’agit d’une limitation matérielle architecturale et non d’une limitation Windows.

Le total disponible pour les processus était de 3,5 Go, car une table de pages occupe 512 Mo. C'est pourquoi 3,5 Go apparaissent dans Windows avec les processeurs Intel (jusqu'au Core 2). Ajouter un GPU et encore moins est disponible.

Xeon pouvait accéder à un total de 32 Go de RAM et 64 Go d’espace physique avec disque dur inclus (nouveau fichier d'échange). ( Ceci ^ couvre PAE, plus à venir avec des liens ajoutés ).

entrez la description de l'image ici http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

entrez la description de l'image ici

entrez la description de l'image ici

Troisième source de capture d'écran: Interface binaire d'application à System V Supplément de processeur d'architecture AMD64 Version préliminaire 0.99.7

J'ai l'intention de continuer à améliorer cette réponse et à ajouter du matériel source et des informations pertinentes. Je voudrais atteindre un équilibre entre pas assez d'informations et trop d'informations techniques. Les suggestions sont les bienvenues. S'il vous plaît, ne votez pas parce que le texte n'est peut-être pas si bien écrit.

Robert Fischer
la source
Les commentaires ne sont pas pour une discussion prolongée; cette conversation a été déplacée pour discuter .
DavidPostill