Windows > Windows : Généralités > Entretien > La mémoire virtuelle

La mémoire virtuelle

 

 

La mémoire virtuelle :

Pour fonctionner, Windows se sert de :

- la mémoire vive (physique) : RAM
ce sont les barrettes de mémoire contenues dans l'ordinateur
(500 Mo, 1 Go, 2 Go
Mémoire vive : RAM
- la mémoire virtuelle : pagefile.sys
c'est un fichier présent sur le disque dur,
que Windows utilise pour y placer des données.
pagefile.sys

La mémoire virtuelle aura la même fonction, la même utilisation que la mémoire vive installée... mais elle sera moins rapide d'accès.
(Ceci car un simple courant électrique permet d'accéder aux données présentes en mémoire vive, alors que les têtes du disque dur devront se déplacer pour récupérer les données sur le disque dur.)

 

Atention Précision quant au terme de "mémoire virtuelle" :
Pour un programmeur, et au strict sens du terme, la définition de la mémoire virtuelle que je donne est inexacte. La mémoire virtuelle est en fait : "la réunion de la mémoire physique (RAM) et des fichiers de pagination (SWAP, pagefile.sys)" (JCBellamy).
Explication : une application, pour fonctionner, considère l'ensemble de la mémoire mise à sa disposition (mémoire RAM + SWAP).
Cet ensemble est appelé "virtual address space" (cf. MSDN) qui désigne l'espace mémoire GLOBAL accessible (donc la mémoire virtuelle).
Voir également la contribution de JCBellamy : cliquer ici

Cette précision est réservée aux utilisateurs expérimentés. Elle est à ignorer par le simple utilisateur, et elle est sans incidence sur mes explications. L'important, ici, étant de connaître le fonctionnement du fichier swap.

Voir aussi :
http://windows.developpez.com/cours/mem-virtuelle/

 

Le fichier de mémoire virtuelle ou fichier swap :

La mémoire virtuelle utilisée par Windows correspond à un fichier présent sur le disque dur : c'est le fichier swap.

Windows XP Sous Windows NT/2000/XP/Vista/7, le fichier swap se nomme : pagefile.sys

Windows 98 Sous Windows 98, Me, le fichier swap se nomme : Win386.swp

 

La taille du fichier augmente et diminue suivant les besoins de Windows.
Ce faisant, le fichier swap est écrit et réécrit à différents endroits du disque. Il se trouve fragmenté en plusieurs morceaux, comme n'importe quel fichier, et l'accès à ce fichier se fait de plus en plus lentement, en diminuant les performances de Windows.

La meilleure solution :

- utiliser un second disque dur,
- créer une partition en FAT 32 (plus rapide que NTFS*) au début du disque,
- y mettre la mémoire virtuelle.
(*) http://jc.bellamy.free.fr/fr/theoriemultiboot2.html#FATvsNTFS

A défaut de disposer d'un autre disque dur, on peut :

- placer la mémoire virtuelle sur une autre partition (évite la fragmentation, mais sans amélioration des performances)
- fixer la taille du fichier de mémoire virtuelle :
sous Windows XP
sous Windows 98
- défragmenter la mémoire virtuelle à chaque démarrage avec PageDefrag (sous Windows XP)

 

 

Fixer la taille du fichier swap :

Avec l'évolution du matériel (taille du disque dur et quantité de mémoire vive) on se doit de faire une distinction :

Avec Windows XP :

Si l'on ne dispose que d'une partition (cas le plus courant), certains utilisateurs confirmés considèrent qu'il vaut mieux laisser Windows gérer seul la mémoire virtuelle. Et utiliser PageDefrag.

Avec Windows 98, et sur les anciens systèmes :

On lui affectera une taille en fonction de la mémoire vive disponible sur son ordinateur.

Il y a quelques années, on conseillait une taille de 2 fois celle de la mémoire vive.
D'après JC Bellamy, on peut utiliser les "proportions" suivantes :
- 32Mo/40Mo ; 64Mo/80Mo ; 128Mo/110Mo ; 256Mo/200Mo ; 512Mo/350Mo
(la première valeur étant la mémoire vive, la seconde, la mémoire virtuelle)

Cela dépend beaucoup des programmes que l'on utilise.
ex : si on utilise Photoshop, avec de gros fichiers, il faudra un fichier swap de grande taille.

On pourra évidemment augmenter cette valeur si Windows génère des messages d'erreur.

 

 

Configurer la mémoire virtuelle sous Windows Vista / Windows 7 :

Si on dispose d'une quantité importante de mémoire vive (RAM), il peut être intéressant de limiter la taille de la mémoire virtuelle.

- cliquer avec le bouton droit sur Ordinateur,
- sélectionner Propriétés

Dans Panneau de configuration Système :
A gauche :
- cliquer sur Paramètres système avancés
Dans Propriétés système :
- onglet Paramètres système avancés
Dans Performances :
- cliquer sur "Paramètres.."
Dans Options de performances :
- onglet Avancé

Là, dans la partie Mémoire virtuelle, on voit la taille du fichier d'échange.

On peut le modifier, ou le mettre sur un autre disque dur (ce que je fais).
Pour cela :
- cliquer sur "Modifier"

 

 

Configurer la mémoire virtuelle sous Windows XP :

Sous Windows XP, le fichier de mémoire virtuelle se nomme pagefile.sys.

- menu Démarrer, Panneau de Configuration, Système,

Dans Propriétés système :
- onglet Avancé,
Dans Performances :
- cliquer sur Paramètres,
- onglet Avancé,
Dans Mémoire virtuelle :
- cliquer sur Modifier,
- sélectionner l'emplacement et la taille souhaitée,
- cliquer sur Définir.

Mémoire virtuelle sous Windows XP

Dans cet exemple :
La mémoire virtuelle est placée sur un autre disque, sa taille est fixe.

 

 

Fixer la taille de la mémoire virtuelle sous Windows 98 :

Cette méthode permet de fixer la taille du fichier Win386.swp, et de le défragmenter.

Il faudra :

- désactiver la mémoire virtuelle,
- redémarrer l'ordinateur,
- défragmenter le disque dur,
- réactiver la mémoire virtuelle en fixant sa taille (voir plus haut),
- redémarrer l'ordinateur pour que le fichier Win386.swp se recrée d'un seul morceau à la suite des fichiers du disque dur.

Explication détaillée :

1 Désactiver la mémoire virtuelle :
- cliquer avec le bouton droit sur Poste de Travail (ou Win+Pause),
- sélectionner "Propriétés",
- onglet "Performances", cliquer sur "Mémoire virtuelle",
- cocher "Désactiver la mémoire virtuelle".

2 Redémarrer l'ordinateur :
Ici, Windows ne crée pas de fichier swap. Il a donc moins de mémoire disponible.
Il est préférable de disposer de 64 Mo de mémoire vive pour effectuer cette opération.
Si on dispose de 32 Mo, il faudra redémarrer en mode sans échec pour limiter les besoins en mémoire de Windows.

3 Lancer le Défragmenteur de disque :
- menu Démarrer, Programmes, Accessoires, Outils système, Défragmenteur de disque.
- cliquer sur "Paramètres" et désactiver "Réorganiser mes fichiers..."
- cliquer sur OK, lancer la défragmentation.

Une fois que la défragmentation est effectuée...

4 Remettre la mémoire virtuelle :
- cliquer avec le bouton droit sur Poste de Travail,
- onglet "Performances", cliquer sur "Mémoire virtuelle",
- cocher "Me permettre de spécifier mes propres paramètres",
- mettre la même valeur en minimum et en maximum (voir plus haut).

5 Redémarrer normalement.
Windows crée à nouveau un fichier swap de la taille désirée, et il le place à la suite des fichiers du disque dur. Le fichier est donc en une seule partie.

La mémoire virtuelle est maintenant d'un seul tenant. La taille du fichier swap (Win386.swp) ne va plus varier et dégrader les performances de Windows.

Nota : avec un défragmenteur genre Speed Disk des Norton Utilities, il est inutile de passer par la phase "Désactiver la mémoire virtuelle".

 

 

Limiter l'utilisation de la mémoire virtuelle (Windows 98)  :

Si on dispose de suffisamment de mémoire vive (128 Mo sous Windows 98), on pourra ajouter une mention dans le fichier system.ini, afin de limiter l'utilisation de la mémoire virtuelle.

- menu Démarrer, Exécuter...,
- taper : sysedit
- sélectionner la fenêtre SYSTEM.INI

Dans la section [386Enh]
- ajouter la ligne :
<ConservativeSwapfileUsage=1

 

 

Défragmenter la mémoire virtuelle avec PageDefrag (Windows XP) :

PageDefrag permet de défragmenter automatiquement la mémoire virtuelle au démarrage de l'ordinateur. Programme Freeware en anglais :

Technet.microsoft.com - PageDefrag v2.32 Par Mark Russinovich

 

 

Problèmes :

 

En cas de perte de l'option de défragmentation : réinstaller Defrag :

- aller dans :
C:\Windows\inf\dfrg.inf
- cliquer avec le bouton droit sur dfrg.inf,
- sélectionner Installer.

 

Message "mémoire virtuelle insuffisante" au démarrage de l'ordinateur :

Voir :
http://windows.developpez.com/cours/mem-virtuelle/#L8