Quel est le problème avec la désactivation du fichier d'échange Windows?

15

Les gens disent que vous avez toujours besoin d'un fichier d'échange et que cela augmentera les performances, mais mon Windows 7 est configuré pour s'exécuter sans fichier d'échange. Je ne comprends pas pourquoi les gens disent - j'ai 6 Gio de RAM, et la seule fois que je suis même près de manquer de RAM était quand je compilait le chrome, pour lequel j'ai activé temporairement un fichier de page.

Ai-je vraiment besoin d'un fichier d'échange * pour augmenter la vitesse dans des situations typiques? Pourquoi?

* Je suis conscient que les vidages sur incident ont besoin d'un fichier d'échange. Je n'utilise jamais de vidage sur incident, donc cela n'a pas d'importance.

user541686
la source

Réponses:

8

Un fichier d'échange n'augmentera jamais les performances, mais il ne le dégradera pas nécessairement non plus (avec une bonne gestion de la mémoire). L'exécution sans fichier d'échange aura cependant tendance à augmenter l'instabilité de votre système par rapport aux applications demandant de la mémoire non disponible.

À moins que votre système d'exploitation ne soit particulièrement mauvais pour la gestion de la mémoire, un fichier d'échange avec 6 Go de mémoire devrait être peu utile. Cela ne veut pas dire qu'il ne verra aucune utilité du tout; IIRC MS Windows est un peu fou quand il s'agit de paginer, même quand il y a beaucoup de mémoire disponible. (Pourquoi, je ne le saurai jamais.)

Cependant, ce qui se passe lorsque vous n'avez pas le fichier d'échange utilisé peut être une raison suffisante pour l'activer: des plantages brutaux. La plupart des applications s'attendent à recevoir la mémoire qu'elles demandent. Quand ils ne le font pas, ils se brisent. (Ah, mais le bon vieux temps de devoir vivre dans quelques milliers d' octets est révolu ..., et pour beaucoup trop de développeurs, il en va de même pour la gestion de la mémoire.)

Si une application est construite correctement, elle échouera bien. (Avec de la chance, cela n'échouera pas du tout. Mais ne comptez pas sur cela.) Avec la plupart des applications, vous aurez un échec fantastique entre vos mains. En outre, plus vous avez d'applications qui approchent de cette limite, plus vous êtes susceptible de voir une instabilité à l'échelle du système.

Cas de ma propre expérience. Windows XP, 4GiB, aucun fichier d'échange. Le parfum était super. Jusqu'à ce que nous commencions à nous rapprocher de la limite 4GiB. Ensuite, les choses sont devenues dingues: les applications se bloqueraient, les éléments de menu n'apparaîtraient que partiellement (ou pas du tout), les boutons ne feraient rien, etc. mieux et plus important.

Maintenant, peut-être que vous n'utilisez aucune application ou ne travaillez pas dans vos applications qui pousseraient le 6GiB, mais je peux penser à quelques situations où vous pourriez vous approcher: montage vidéo, montage photo, mixage et production audio, etc. - essentiellement tout ce qui concerne beaucoup de données (que ce soit avec ou en streaming). Lorsque ces données dépassent vos capacités de mémoire, les chances seront bonnes que votre application devienne "pouf".

Kerri Shotts
la source
Donc, mettez simplement (Oui / Non): est-il exact de dire que si je n'utilise jamais plus de 2 Gio de RAM , je ne verrai pas d' amélioration des performances ? Ou y a-t-il encore une mise en garde quelque part, même avec cette condition préalable?
user541686
9
Non, un fichier d'échange n'améliore jamais les performances. Cela améliore seulement la stabilité . La pagination, par définition, est une opération au niveau du disque, et les opérations sur le disque sont toujours plus lentes que les opérations au niveau de la RAM. Et, vous êtes plus susceptible qu'improbable, même avec 6 Go (ne dépassant jamais 2 Go), que vous rencontrerez toujours des problèmes de performances car Windows continuera, frustrant, à envoyer les processus inutilisés sur le disque. Quiconque pensait que c'était sage, j'aimerais qu'ils fessent!)
Kerri Shotts
D'accord. C'est peut-être parce que c'est ce que je voulais entendre, je ne sais pas, mais j'aime votre réponse. : P Cela semble assez raisonnable, merci!
user541686
1
Pas vrai - un fichier d'échange PEUT améliorer les performances, car la place des données inutilisées sur le swap peut être utilisée pour la mise en cache. Cela vous a causé un tel downvote.
peterh
1
Le fichier d'échange PEUT améliorer les performances. Il augmente la RAM disponible pour toutes sortes de caches rapides, améliorant les performances de démarrage / chargement / opération du programme. Sans le fichier d'échange, cette précieuse RAM physique serait remplie de fichiers indésirables inamovibles.
Ark-kun
7

Cet article de Mark Russinovich vous dira tout ce que vous avez toujours voulu savoir sur le fichier d'échange.

Je ne sais pas si "cache" est le terme approprié à utiliser par rapport à ce que fait le fichier d'échange. Un cache est un lieu de stockage temporaire rapidement accessible pour les données. Un système d'exploitation "fait défaut" dans le fichier d'échange lorsqu'il y a trop de conflits pour la RAM physique. Il s'agit donc d'un point d'arrêt pour le débordement de RAM pour empêcher les programmes de planter dur en raison d'une mémoire insuffisante. Mais je crois que Windows essaie de mettre des choses qui n'ont pas été consultées depuis longtemps dans le fichier d'échange (et Linux pourrait le faire aussi) donc dans ce sens, c'est un cache, mais pas vraiment sa fonction principale.

Quoi qu'il en soit, lisez l'article. Il vous donnera de bonnes directives sur la façon de définir votre fichier d'échange. Comme le dit @Sandeep Bansal, il peut y avoir un jeu occasionnel qui vous oblige à en avoir un dans le cadre d'une "vérification des exigences" pour fonctionner (mais je n'en connais pas).

EDIT: Cet exemple peut vous aider à comprendre le rôle du fichier d'échange:

Disons que vous avez 512 Mo de RAM. Vous avez un certain nombre de programmes ouverts, y compris un navigateur minimisé lui-même consommant 250 Mo de RAM, et l'utilisation totale de la RAM de tout ce qui fonctionne à ce moment est de 500 Mo.

Alors, vous démarrez un autre programme (par exemple un traitement de texte) qui veut allouer 150 Mo de RAM. Mémoire insuffisante. Cependant, si nous avons un système de pagination, les pages de mémoire contenant votre navigateur réduit peuvent être paginées sur le disque. Ainsi, le nouveau programme peut se charger.

Supposons maintenant que vous souhaitiez revenir au navigateur après un moment. Eh bien, il doit "paginer" ce qu'il vient d'envoyer sur le disque. S'il y a suffisamment de RAM libre à ce moment, cela peut se faire sans problème. S'il n'y en a pas, autre chose doit être paginé en premier. S'il y a beaucoup de programmes en compétition pour le CPU et qu'il y a une pagination constante, alors les choses deviennent lentes et vous avez la condition connue sous le nom de «thrashing». Tous ces pagination entrants et sortants ralentissent les performances, mais ils évitent aux programmes de se bloquer "durement" en raison d'erreurs de mémoire insuffisante. C'est le but du fichier d'échange. Trop de pagination, c'est-à-dire que le "thrashing" n'est probablement pas mieux qu'un programme abandonnant simplement parce qu'il ne peut pas obtenir plus de RAM la plupart du temps.

Maintenant, vous pouvez voir comment, s'il existe des algorithmes pour anticiper ce qui pourrait ne pas être utilisé à un moment donné, le système d'exploitation peut alors "pré-paginer" des choses qui, selon lui, ne seront pas utilisées immédiatement. Cela représente donc Windows en utilisant le fichier d'échange où il existe même s'il a suffisamment de RAM. Il essaie de rendre autant de RAM disponible que possible. Windows est comme Linux où la RAM libre agit comme un cache disque, donc si l'acte d'équilibrage est joué correctement, il peut contribuer aux performances globales. Tout cela fait partie de la conception du système d'exploitation et pourquoi il faut 10 ans pour obtenir un bon système d'exploitation de milliers de programmeurs.

Donc, pour répondre à votre question, c'est la seule chose qui ne va pas avec la désactivation du fichier d'échange. Pour revenir à l'exemple que j'ai fourni, sans le fichier d'échange, vous ne pourriez tout simplement pas démarrer votre navigateur, ou des programmes mal écrits qui ne sont pas programmés de manière défensive pour anticiper les erreurs de MOO pourraient être vraiment étranges.

LawrenceC
la source
@ultrasawblade: Je ne comprends toujours pas: le but de toute sorte de "cache" est d' empêcher un voyage sur le disque . Si vous y allez quand même, pourquoi ne pas simplement récupérer le fichier où qu'il se trouve? Quel est l'intérêt du fichier d'échange?
user541686
@ultrasawblade: En outre, en ce qui concerne l'article: Il dit in general having [a page file] will mean more usable memory being available to the system. Attends quoi? Plus de mémoire disponible? L'espace RAM inutilisé en permanence> 3 Gio n'est-il pas suffisant? (Confus, car j'utilise rarement plus de 2 Gio.)
user541686
2
Les fichiers d'échange ne sont PAS en cache! Si votre RAM est plein et que vous souhaitez toujours vous assurer qu'il semble que votre système dispose de plus de RAM disponible, il commencera à copier les données du RAM sur votre disque (à partir de processus qui semblent somnolents) afin que vous ayez toujours du RAM disponible pour vos nouveaux processus!
dévoré elysium
2
@ultrasawblade: L'objection que j'ai contre votre modification est que votre exemple spécifie une utilisation de 97% de RAM (500/512), alors que mon exemple spécifie une utilisation de 33% de RAM (2 Go sur 6). Je ne demandais pas ce qui se passerait si je me rapprochais de la limite; Je suis déjà bien conscient des problèmes que cela cause. Je demandais ce qui se passe si vous avez encore un long chemin à parcourir, où aucune raclée ou quoi que ce soit du genre ne se produirait (devrait?). Si vous pouvez faire le même argument pour mon cas (6 Gio de RAM et 2 Gio utilisés), ce serait bien mieux; sinon, cela ne répond tout simplement pas à ma question.
user541686
3
+1 pour le lien Russinovitch. Voilà la réponse. Si vous souhaitez renoncer à un mécanisme de sécurité pour éviter un éventuel crash, c'est votre prérogative. Windows fonctionnera très bien sans le fichier d'échange, sauf s'il décide de ne pas le faire. ;)
Kara Marfia
2

Un fichier d'échange n'est pas uniquement destiné à stocker les vidages sur incident, il n'est pas essentiellement conçu pour cela.

Le fichier d'échange existe pour qu'il puisse stocker des données que la RAM n'a pas besoin de contenir, c'est comme un cache pour les éléments qui n'ont pas besoin d'exister en mémoire, fournissant ainsi plus de RAM pour d'autres choses.

Vous avez raison de ne pas avoir besoin d'un fichier de page si vous avez 6 Go de RAM, mais vous pouvez avoir besoin d'un fichier de page pour certains éléments, je me souviens que certains jeux nécessitent un fichier de page et il peut également être utile s'il en existe un.

Il n'y a aucun mal à créer un fichier d'échange de 500 Mo juste pour éviter les problèmes si un certain processus en a besoin.

Sandeep Bansal
la source
Mais ma question est: disons que je n'utilise jamais plus de 2 Gio de RAM. Est-ce que l'activation du fichier d'échange me donne un coup de pouce de vitesse de toute façon? ("Cela ne fait pas de mal" est différent de "Oui, cela vous donne un avantage".)
user541686
Eh bien, avec 6 Go de RAM, vous ne remarquerez rien, même s'il y a de la RAM disponible, le Pagefile sera toujours utilisé pour d'autres choses. J'ai 4 Go, jamais vraiment au-dessus. Mais j'ai un fichier d'échange de 1 Go juste au cas où, comme les PC de tous les jours ont maintenant 500 Go + d'espace disque dur, donc au moins 500-1000 Mo ne seront pas une perte
Sandeep Bansal
@Sandeep: Hm ... quelles sont exactement ces "autres choses"? La raison même pour laquelle je n'active pas le fichier d'échange est que je ne comprends pas pourquoi Windows utiliserait le disque dur alors qu'il y a tellement de RAM libre, donc je suis curieux de savoir ce que sont ces "autres choses".
user541686
C'est la même chose que Linux, pourquoi Linux utilise-t-il l'espace d'échange quand il a de la RAM pour y accéder. Le fichier d'échange contient des fichiers qui n'ont pas été utilisés pendant un certain temps hors de la RAM.
Sandeep Bansal
@Sandeep: Je n'ai aucune idée pourquoi Linux le fait non plus, même différence pour moi. Quel est l'intérêt de conserver des fichiers dans le fichier d'échange? S'ils ne sont pas dans la mémoire RAM, pourquoi ne pas les lire où qu'ils se trouvent réellement sur le disque?
user541686
1

La première étape consiste à comprendre ce qu'est un cache, ou plutôt à quoi servent les différents caches.
Le processeur dispose d'un petit cache interne qui lui permet de stocker les résultats OP, les états d'indicateur et les adresses calculées. Sur un double cœur, je pense que le cache interne est d'environ 1 Mo. Il est extrêmement rapide, accessible uniquement par les internes du CPU, et le plus affecté par la chaleur dans un CPU overclocké.

Le cache de niveau 2 agit comme un tampon à grande vitesse pour les transactions CPU vers mémoire et contient également les threads de code collectés par prefetch. Sur un dual core, je pense qu'une installation tyical aurait 6 Mo de cache lvl2. Il est très rapide, bien que plus lent que la mémoire cache interne, n'est accessible qu'au contrôleur de mémoire et au CPU, et réside sur une ligne dédiée sur le bus.

Un fichier d'échange est en effet un cache, en ce sens qu'il stocke des données qui peuvent ou non être présentes en mémoire. Un O / S peut utiliser le fichier d'échange pour diverses tâches, dont l'une consiste à enregistrer l'état actuel d'un fichier de données qui n'a pas encore été validé sur le disque. Lorsqu'un fichier d'échange n'existe pas, il appartient à l'application tierce de fournir cette fonctionnalité en interne. L'inconvénient de ce scénario est que de nombreux programmes ne se comportent pas bien en ce qui concerne la récupération de place et que vous vous retrouvez avec des fichiers .temp parasites sur votre disque. Ces restes ne font pas partie du manifeste d'installation et peuvent entraver une procédure de désinstallation et également dégrader la vitesse d'accès au disque.

Mon avis est qu'un fichier d'échange est normalement une bonne chose à avoir. En effet, si votre système est très peuplé de Ram et qu'il est dédié à 1 tâche spécifique, et que cette application s'occupe de toutes ces choses, un fichier d'échange peut ne pas être nécessaire. Un exemple peut être un jeu vidéo d'arcade qui s'exécute sur la plate-forme Windows, ceux-ci sont généralement installés avec uniquement les pilotes nécessaires pour les périphériques présents et ne sont pas susceptibles de souffrir de conflits de pilotes. Cependant, pour la plupart, la plupart des applications ne prennent pas en charge tous les problèmes potentiels susceptibles de survenir, en particulier ceux qui incluent l'impact d'autres applications tierces et les conflits de pilotes.

Bien que vous puissiez remarquer une baisse faible à modérée des performances dans le court terme de l'ajout d'un fichier d'échange, les performances à long terme doivent rester cohérentes. Ne pas avoir de fichier d'échange peut sembler plus rapide au début, mais avec le temps, les performances se dégraderont considérablement.

Steven Malm, MCP.

Steven Malm
la source
"Lorsqu'un fichier d'échange n'existe pas, il appartient à l'application tierce de fournir cette fonctionnalité en interne." -> Je ne sais pas trop ce que tu veux dire; les programmes ne se soucient pas vraiment de la présence ou non d'un fichier d'échange.
user541686
0

Expérience personnelle

À l'heure actuelle, mon ordinateur portable avec 8 Go de RAM a des problèmes empêchant la création / l'utilisation du fichier d'échange. Ma vie est l'enfer. Je reçois constamment des invites "Low Memory", des applications se bloquent, etc. L'utilisation de 3 programmes qui consomment 1 à 1,5 Go chacun (par exemple, un navigateur Web, Visual Studio avec des plugins spéciaux, etc.) marche sur une glace mince.

Un autre argument

L'utilisation des données du cache RAM physique est très rapide. Plus vous avez de RAM physique «libre», plus elle peut contenir de cache. Plus le système d'exploitation peut déplacer des données de la RAM physique vers le fichier d'échange, plus la RAM physique est libérée pour les caches de données fréquemment consultées.

Supposons que vous jouiez à un jeu qui charge les données de localisation lorsque vous changez de position. Vous avez également un navigateur Web qui laisse, disons 2 Go au jeu, ce qui est suffisant pour un seul emplacement. Sans fichier d'échange, chaque fois que vous changez d'emplacement, les données seront lentement chargées à partir du disque dur. Avec un fichier de page, les données de votre navigateur Web inutilisées seraient envoyées au fichier de page et la précieuse RAM physique sera utilisée pour stocker les données pour plusieurs emplacements, ce qui entraînera une charge de localisation beaucoup plus rapide.

Ark-kun
la source