web-dev-qa-db-fra.com

Dois-je désactiver le fichier d'échange si j'ai beaucoup de RAM ou devrais-je le déplacer vers un virtuel RAM conduire?

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'une 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 virtuel RAM et laisser le fichier d'échange en place pourrait obliger Windows à déplacer toute sa mémoire virtuelle vers la RAM et ainsi augmenter les performances du système. Je ne suis pas très au courant dans ce domaine, 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?

95
user1306322

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 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 physiquement RAM pour annuler 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 beaucoup de ressources physiques _ libres.RAM et pourtant les allocations sont refusées pour éviter de trop 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 à ce mappage, car le programme pourrait éventuellement modifier chaque octet et il n'y aurait pas d'autre endroit que RAM pour le stocker. Donc, immédiatement, 4 Go de RAM sont essentiellement perdus (ils peuvent être utilisés 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 permettant au système d’exploitation d’utiliser réellement la RAM dont il dispose, plutôt que de la réserver pour 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 mémoire 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-elle particulièrement importante.

133
David Schwartz

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, comme Linux, vous pouvez contrôler swappiness , sur d'autres, vous ne 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 améliorer les performances, car vous n'utiliserez que RAM, ce qui est plus rapide que ce que vous avez déjà dit.

Une chose à considérer (et vous l’avez déjà mentionnée) - vous devez disposer de assez RAM pour prendre en charge tous les programmes que vous exécutez, sinon vous risquez de lancer sur 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 à ce sujet 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 RAM vers swap et vice-versa - cela évite l'usure excessive des disques SSD. Et dans tous les cas, cela améliorera les performances en éliminant les opérations inutiles.

Aussi, lisez:

31
Art Gertner

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 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, sinon tous les systèmes d'exploitation avancés, utilisent un type de fichier d'échange dans lequel ils utilisent une partie de la mémoire qui se trouve dans RAM et n'a pas été utilisée depuis un moment. swapfile aka pagefile ), et supprimez la mémoire de la RAM de sorte que la mémoire disponible soit 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.

14
Peter

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

Avoir un échange sur le disque dur/SSD permet au système d’exploiter des pages complètement inutilisées RAM et d’utiliser l’espace libéré, par exemple. cache de fichiers ou autres tampons système. Vous ne réaliserez peut-être pas que le système alloue moins de ces tampons 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.

Cependant, un disque compressé RAM en tant que lecteur d'échange , un lecteur "ZSWAP", peut s'avérer avantageux dans les cas Edge (où vous aurez peut-être besoin de quelques Mo supplémentaires RAM éviter de permuter sur le disque dur) en améliorant l’économie d’espace d’un segment de RAM dans une certaine mesure.

8
demonkoryu

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 RAM est presque inutile, car il pourrait être perdu dans le crash.

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

5
harrymc

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 vous assurer de bénéficier de l'absence de fichier de page/mémoire virtuelle. J'ai 4 Go RAM SSD de 128 Go sans fichier de page, mais je l'utilise pour la navigation sur le Web et la saisie de documents Word.
4
user127379

Ne désactive pas le fichier d'échange Ce n'est pas juste pour le manque de mémoire. Il n’ya aucun avantage direct en performances à le désactiver , Windows ne le lit que quand il le faut, il l’écrit tout le temps afin 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

3
JamesRyan

En théorie, placer le fichier d'échange dans RAM n'aurait 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 être intégrées au noyau Windows, et la gestion de la mémoire par Microsoft n'est pas nécessairement parfaite. Beaucoup ont trouvé que le fait de placer le fichier d'échange dans un disque virtuel se traduisait par une augmentation des performances , tant que vous disposiez d'une quantité de mémoire suffisante.

J'ai compilé un article qui montre une collection de tels utilisateurs à partir d'un fil de single / forum qui ont découvert que, malgré le fait que de nombreux volumes de RAM free soient disponibles, le fichier d'échange est toujours utilisé:

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

3
Dan W

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é. 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à.

2
peter

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

La question qui se pose maintenant est de savoir combien 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 comme mettre un 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.

2
nsn

Déplacer le fichier d'échange vers RAM est une notion ridicule. Il suffit de l'éteindre et de disposer de plus 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 mon point de vue sur 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 renvoyés vers le disque est 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 tout ce que leRAMle 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 a des registres internes
Les emplacements physiques où les pages virtuelles référencées par le processus ne doivent pas être stockées dans la RAM. Mais ils doivent être stockés quelque part par la CPU.

Le processeur ne peut pas donner tous les 4 Go RAM à l'application, mais il peut lui donner 4 Go d'adresse en utilisant le disque dur en tant que cache secondaire (c'est-à-dire tout le contenu du disque dur).

Les pages entrent et sortent de 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, donc RAM correspond au cache de niveau 1, le disque dur est au niveau 2 (sans tenir compte du cache du processeur pour cette analogie). Les deux sont accessibles par la CPU.

Si la mémoire RAM n'est pas suffisante pour que la CPU puisse 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} _).

 enter image description here http://www.windowsdevcenter.com/pub/a/windows/2004/04/27/pagefile.html

 enter image description here

 enter image description here

3ème source d’écran: version bêta du supplément pour le processeur d’architecture d’architecture AMD64 d’interface binaire d’application System V, version 0.99.7

J'ai l'intention de continuer à améliorer cette réponse et à ajouter du matériel source et des informations pertinentes. J'aimerais trouver un équilibre entre le manque d'informations et trop d'informations techniques. Les suggestions sont les bienvenues. N'attendez pas de voter parce que cela pourrait ne pas arriver. être si bien écrit.

1
Robert Fischer

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 les fichiers Google Chrome Cache, afin de voir si cela augmenterait les performances des jeux Flash Player en ligne et de la navigation 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 RAM, 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 RAM. 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.

1
Michael