Dois-je toujours utiliser la mémoire virtuelle?


14

J'aurais pensé que cela avait déjà été demandé mais je n'arrive pas à le trouver.

À quel moment ne dois-je plus activer la mémoire virtuelle? Avec 4 Go de RAM, je vois que l'ordinateur utilise rarement n'importe où près de tout cela. À ce stade, la mémoire virtuelle n'est pas strictement nécessaire. Y a-t-il un danger à l'éteindre? Y a-t-il des fonctionnalités que je perdrai si je le fais?


1
Attention: Il n'y a qu'une quantité limitée de mémoire donnée aux pilotes, appelée sections de mémoire de pool non-pagedetpaged . Un fichier d'échange est nécessaire lorsque la section paginée est pleine, en tant que joueur, j'ai vu un jeu se plaindre de la mémoire du pool paginé simplement parce que mon fichier d'échange était désactivé sur un système de 8 Go. Conclusion: les fichiers d'échange sont nécessaires, ils empêchent l'épuisement du pool paginé et accélèrent réellement votre système.
Tamara Wijsman

Réponses:


9

Étant donné que la mémoire n'est plus exactement une ressource rare sur les ordinateurs de bureau / ordinateurs portables, je doute que la plupart des programmes puissent gérer les conditions de mémoire insuffisamment et se bloqueront à la place.
Alors: dangereux? Oui , si vos 4 Go sont épuisés et que vous n'avez pas de fichier d'échange, les applications peuvent commencer à planter.
Et comme le montre l'exemple de Zoran, il peut être difficile d'identifier le problème plus tard.

L'article, auquel Ram fait référence, indique également que la désactivation de l'échange n'améliore généralement pas la vitesse et peut plutôt faire le contraire :

Ainsi, bien qu'il puisse y avoir des charges de travail qui fonctionnent mieux sans fichier d'échange, en général, en avoir un signifiera plus de mémoire utilisable disponible pour le système


Je devrai déterrer l'article sur le site de MS, mais MS dit que vous devriez toujours avoir un fichier d'échange. Même sur des systèmes à mémoire élevée, ne pas en avoir peut ralentir le fonctionnement de votre machine.
Keltari

10

Voir l'article de Mark Russinovich sur la mémoire virtuelle. Cela devrait vous donner un bon pointeur sur la mémoire virtuelle.

Voici un extrait utile du lien

Alors, comment savez-vous combien de charges de validation vos charges de travail nécessitent? Vous avez peut-être remarqué dans les captures d'écran que Windows suit ce nombre et Process Explorer le montre: Peak Commit Charge. Pour dimensionner de manière optimale votre fichier de pagination, vous devez démarrer toutes les applications que vous exécutez en même temps, charger des ensembles de données typiques, puis noter le pic de charge de validation (ou regarder cette valeur après une période de temps où vous savez que la charge maximale a été atteinte) . Définissez le minimum du fichier d'échange sur cette valeur moins la quantité de RAM dans votre système (si la valeur est négative, choisissez une taille minimale pour autoriser le type de vidage sur incident pour lequel vous êtes configuré). Si vous souhaitez avoir une marge de manœuvre pour les demandes de validation potentiellement importantes, définissez le maximum pour doubler ce nombre.


+1 pour la référence Mark Russinovich. Toujours une bonne lecture.
mrduclaw

3

Ce post classique sur ServerFault a de bons points. Pour seulement 4 Go, je laisserais le fichier d'échange seul, et l'espace impliqué sur le disque est en tout cas mineur.


3

Je recommanderais de laisser les paramètres de mémoire virtuelle à leur valeur par défaut. J'ai 8 Go de RAM et désactivé la mémoire virtuelle en pensant que je gagnerais en vitesse (en raison de l'absence d'échange), mais il s'avère que cela a rendu mon système moins stable (et je l'ai fait sur 2 machines, résultat similaire). J'éprouvais un BSOD par semaine environ, sur les deux machines. J'ai commencé à examiner les minidumps produits et j'ai découvert que tous les BSOD étaient déclenchés par un appel à une routine appelée KiPageFault. J'ai donc essayé de rétablir les paramètres par défaut de la mémoire virtuelle et les BSOD habituels ont disparu.

Il m'a fallu un certain temps pour corréler les 2, et je n'ai aucune preuve réelle que le fait d'avoir désactivé la mémoire virtuelle ait provoqué les BSOD, mais mes machines étaient plus stables après l'avoir rallumée ...


Merci. Il est bon d'entendre des résultats réels et pas seulement des suppositions.
Steve Rowe

0

Cela dépend de votre charge de travail. J'ai mis en place un tas de frontaux sans disque pour une application Web. Ils ont démarré en réseau et exécuté tout ce dont ils avaient besoin à moins de 8 Go de RAM.

J'ai également utilisé des fenêtres (98 probablement) avec 32 Mo et aucun fichier d'échange - bien sûr, vous devez vivre dans cet espace mémoire et limiter vos applications en fonction des ressources.

Vous voulez vous assurer qu'il y a de la RAM supplémentaire pour le cache disque, sinon les performances peuvent devenir horribles.

Il me semble que certains programmes ne fonctionneront pas sans VM, mais je n'ai aucune idée de ce qu'ils étaient


-2

Eh bien, Steve, intéressant que vous posiez cette question.

Je vais vous dire un petit secret: le point où vous aviez besoin de mémoire virtuelle n'a jamais été. La mémoire virtuelle était une idée incroyablement incompétente créée par un groupe d'universitaires qui ne connaissaient rien aux systèmes informatiques pratiques, et TOUT ordinateur fonctionnera beaucoup mieux s'il peut fonctionner sans VM.

Maintenant, vous pourriez vous demander, si la VM est inutile et nuisible, pourquoi la plupart des grands systèmes d'exploitation modernes l'utilisent-ils? La réponse courte à cette question est que les personnes décidant d'utiliser ou non la VM chez Microsoft, Apple et IBM étaient encore plus stupides et inexpérimentés que les universitaires qui ont inventé la VM et voulaient l'adopter sur la base des mêmes hypothèses complètement incorrectes que le les universitaires avaient quand ils l'ont inventé. Nous pourrions commencer à parler de ces hypothèses et idées fausses, mais malheureusement, si elles étaient faciles à comprendre et à décrire, nous n'aurions pas le problème VM en premier lieu.

Je reviens vers vous. Malheureusement, tout comme les retardnoggins susmentionnés chez Apple et Microsoft, vous avez vos propres idées fausses, à savoir l'idée que vous pouvez désactiver la machine virtuelle. Bien sûr, vous ne pouvez pas l'éteindre, cela irait à l'encontre de l'objectif de visser si vous pouviez simplement l'éteindre. Quand les gens font quelque chose de vraiment stupide, ils s'assurent toujours que c'est irréversible. Après tout, si tout le monde pouvait simplement désactiver VM, ils le feraient, et cela rendrait les bozos qui l'ont créé assez stupide, n'est-ce pas? Ils ont empêché cette possibilité en la rendant inamovible, un peu comme Microsoft a rendu Internet Explorer inamovible.

Ce que vous pouvez faire est de limiter la taille du fichier d'échange, qui doit bien sûr être réglé sur le minimum, espérons-le 0. La mémoire virtuelle est toujours là, mais au moins vous pouvez la réduire de très très très lente à juste très très lent en lui demandant de ne pas impliquer le lecteur de disque dans la folie.


La mémoire virtuelle permet beaucoup de bonnes choses. Si vous n'aviez pas de mémoire virtuelle, vous devez disposer de suffisamment de RAM pour contenir chaque octet de code et de données défini par chaque processus de votre système, qu'il ait été ou non réellement référencé. Étant donné que la plupart des programmes passent 90% de leur temps à utiliser 10% de leur code et de leurs données, ce serait un énorme gaspillage. Vous perdriez également beaucoup d'autres choses utiles, que le format de commentaire ici ne me donne pas de place pour décrire. La raison pour laquelle nous n'avons pas abandonné la mémoire virtuelle est que c'est toujours une très, très bonne idée. Même dans les "systèmes informatiques pratiques".
Jamie Hanrahan

@RickBrant Vous parlez comme les ingénieurs électriques idiots d'Intel et d'IBM que j'utilise pour écouter dans les années 80 en essayant d'expliquer pourquoi VM était une bonne idée. Je me souviens quand IBM est sorti avec OS / 2, qui était le premier cerveau de système d'exploitation endommagé par VM, avoir à les écouter expliquer pourquoi c'était une si bonne idée. Eh bien, Dieu merci, OS / 2 est mort, mais malheureusement, VM a continué, comme un zombie, alors voici 2017 et j'écoute toujours ce non-sens.Je parierai des dollars pour des beignets que vous n'avez pas de diplôme CS, faites vous? C'est la partie blague. 99% des gars qui font la promotion de VM ne sont pas des programmeurs
Tyler Durden

J'étais en fait une double majeure, CS / EE, dans l'une des meilleures écoles de technologie de la côte ouest. Aujourd'hui, je suis principalement un programmeur, mais j'interagis avec les types de matériel. Maintenant, avez-vous une réfutation convaincante au point qu'il serait très inutile de devoir conserver chaque dernier octet de code et de données qu'un programme définit dans la RAM à tout moment, qu'il en ait besoin ou non? Parce que la mémoire virtuelle évite cela. Ou allez-vous continuer avec des attaques personnelles qui équivalent à "vous devez être un idiot"?
Jamie Hanrahan

Oh, et re "OS / 2, qui était le premier cerveau du système d'exploitation endommagé par VM", Um, non, pas par environ deux décennies. Peut-être le premier système d'exploitation largement utilisé pour les PC. (Mais pas le premier pour les "ordinateurs personnels".)
Jamie Hanrahan
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.