configurer sa mémoire virtuelle
=========================
la mémoire virtuelle, c’est de l’espace mémoire que windows crée sur un DD pour décharger les données montées en mémoire vive, lorsque celle ci est trop sollicitée, de manière à éviter les messages d’erreur du genre « mémoire insuffisante… » voire un plantage de l’application…
L’avantage, compte tenu des prix en baisse des DD, est que le coût de la mémoire au Mo est beaucoup moins élevé que celui de la mémoire vive…
1er inconvénient toutefois: c’est que la vitesse de transfert d’un DD (20 à 50 Mo/s) est 50 à 100 fois plus faible que celle de la RAM qui peut atteindre 3 Go/s. Mieux vaut donc investir dans de la RAM si on cherche les performances : y’a pas photo entre posséder plus de mémoire vive et s’appuyer au maximum sur la mémoire virtuelle…
2ème conséquenc:, l’optimisation de la mémoire virtuelle dépend avant tout du type de DD que l’on possède (IDE ou SATA) et de sa vélocité+++
est-ce que pour autant la RAM permet de se passer de mémoire virtuelle ? ben non… d’autant moins que les plateformes actuelles sont de plus en plus tournées vers des utilisations multi-taches où il peut souvent y avoir 10 ou 15 applications tournant en même temps dont certaines, telles les jeux de dernière génération, les logiciels 3D, les retouches photos ou les montages vidéos peuvent entrainer des pointes d’utilisation de la mémoire dépassant le Go : d’où la nécessité du pagefile…
Maintenant comment optimiser tout ça ?
1) vous l’avez compris :
avoir beaucoup de RAM +++ (1 Go minimum dans l’idéal…)
2) avoir un pagefile de taille suffisante :
on lit, ça et là, 1,5x ou 2,5x la RAM : en fait il n’y a pas de taille bien prédéfinie, tout dépend de la quantité de RAM embarquée et de l’utilisation qu’on veut faire de l’ordinateur.
avec 512 Mo de RAM,
1Go de mémoire virtuelle est probablement suffisant mais il faut reconnaître qu’avec les DD actuels > 100 Go, on peut quand même aller jusqu’à 1,5 Go pour la mémoire virtuelle sans perte d’espace significative sur le DD…
A contrario, et à partir du moment où on a un pagefile de taille suffisante (1 Go par exemple) ce n’est pas en augmentant la taille du pagefile qu’on augmentera les performances : tout ce qu’on fera c’est perdre inutilement de l’espace disque…
pour savoir si la taille du pagefile est suffisante sur votre système vous pouvez aller jeter un œil dans
l’onglet performances du gestionnaire de taches de windows et regarder quelle est le pourcentage d’utilisation de votre pagefile avec vos applications les plus gourmandes ainsi que la courbe d’historique d’usage : et si on approche trop souvent de la valeur d’entrée du pagefile permanent il est alors recommandé d’augmenter le pagefile pour éviter d’utiliser trop souvent le pagefile dynamique…
Pour accéder à la fenêtre de mémoire virtuelle (MV) :
- Démarrer
- panneau de configuration
- système
- onglet "avancé"
- dans le cadre "performances" cliquer sur "paramètres"
- onglet "avancé"
- cliquer sur "mémoire virtuelle
et la fenêtre de MV s'ouvre.
Pour modifier les valeurs de MV :
- cliquer sur la partition où se situe la MV (par défaut la MV est sur C:, mais elle peut être mise sur une autre partition)
- cliquer sur "taille personnalisée" et dans les fenêtres "taille mini" et "taille maxi" mettre les 2 valeurs que l'on veut voir attribuées à la MV (1000 et 1000 par exemple pour obtenir un pagefile permanent de 1 Go)
- cliquer sur définir
- OK
- fermer
- redémarrer l’ordinateur
et c’est terminé.
3) créer un fichier contigu pour le page file en défragmentant au préalable le DD :
en effet s’il est créé sur un DD mal défragmenté, le fichier d’échange sera fragmenté en de nombreux endroits, là où il reste de l’espace libre en définitive, et les têtes pour utiliser ce pagefile fragmenté, devront continuellement se déplacer pour lire et écrire ça et là avec un temps de latence entre chaque changement de zone correspondant au temps d’accès du DD, d’où évidemment une perte de temps+++.
Avec un pagefile contigu toutes les données de mémoire virtuelle seront écrites les unes à côté des autres, l’optimisation étant maximale puisque les têtes n’auront plus à parcourir sans cesse le DD pour lire ou écrire sur le pagefile.
Pour défragmenter la MV :
- cliquer sur "aucun fichier d’échange"
- définir
- OK
- fermer les fenêtres
- redémarrer l’ordinateur en mode sans échec
- faire une défragmentation de C : (si la MV est sur C)
- redémarrer l’ordinateur
- retourner dans ta fenêtre de mémoire virtuelle et cliquer sur C : (ou autre partition)
- cliquer sur "taille personnalisée" et mettre les 2 mêmes valeurs dans les 2 fenêtres (1000 et 1000 par exemple)
- définir
- OK
- fermer les fenêtres
- redémarrer l’ordinateur
et c’est terminé.
4) créer ce pagefile à l’extérieur des plateaux du DD :
En effet pour un même laps de temps, une tête de lecture/écriture parcourera beaucoup plus de distance (et donc de données) à l’extérieur d’un disque qu’en son centre, les performances étant environ 2 fois plus élevées à l’extérieur qu’au centre +++
L'idéal, si on souhaite laisser le pagefile sur C:, est de configurer le pagefile dès que l'on vient de terminer l'installation de windows, avant d'installer les programmes (de manière à laisser ce pagefile le plus possible à l'extérieur du DD), en optant pour un pagefile permanent (voir le paragraphe 6).
5) créer une partition spécialement dédiée au page file :
Partition de 1 Go qu’on peut donc mettre en périphérie d'un 2ème DD lors de son installation, facile à défragmenter, contigüe par définition,... bref que des avantages…
Pour ce il suffit, lors du partitionnement du DD, de réserver la 1ère partition au pagefile en lui donnant la taille qu'on souhaite voir attribuée au pagefile (1 Go ou 1,5 Go par exemple), la 1ère partition créée sur un DD étant en effet celle qui se situe la plus en périphérie du DD.
6) opter pour un pagefile permanent
(c'est à dire avec les 2 mêmes valeurs dans les 2 fenêtres de taille mini et taille maxi, par exemple 1000 et 1000 pour avoir un pagefile permanent de 1 Go).
Plutôt que dynamique (qui est la configuration par défaut attribuée par XP, par exemple 384 et 768 Mo),
ceci afin d'économiser les ressources système (en effet XP recalcule en permanence la taille de la MV dès que son utilisation dépasse la taille mini attribuée)
et éviter la fragmentation du pagefile (car dès que cette taille mini est dépassée XP va inscrire les données un peu partout sur la partition, là où il y a de la place), en sachant que le seul intérêt du fichier dynamique est d’économiser de l’espace disque, ce qui n’a plus beaucoup d’importance avec les DD actuels de grande capacité (souvent > 100 Go).
7) où mettre ce page file ?
l’idéal est de mettre le pagefile sur un autre DD que le disque système : ainsi pendant que les têtes du 1er disque travaillent sur les fichiers système de l’OS, les têtes du 2ème disque lisent et écrivent sur le pagefile ce qui évidemment fait gagner du temps plutôt que ce soit les mêmes têtes qui fassent tout le boulot…
encore faut-il bien le configurer (cf points 2 à 6) et notamment le mettre sur la 1er partition +++ car sinon les performances seront moins bonnes que si on l’avait laissé sur le disque système !!!…
MAIS ce n’est pas toujours vrai et il vaut mieux parfois conserver son pagefile sur le 1er DD :
- 1ère raison lorsque le 2ème DD est un vieux disque tournant à 5200 rpm (et avec 2 Mo de cache), ce qui est encore assez souvent le cas… on perd alors forcément en performance quant à l’accès à la mémoire virtuelle.
- 2ème raison lorsqu’on a mis, sur ce 2eme DD, des programmes que l’on utilise ou des jeux avec lesquels on joue : dans ce cas les têtes vont devoir faire d’incessants aller-retours entre les programmes en question et le pagefile, d’où une baisse des performances de l’accès à la mémoire virtuelle et dans ce cas elle serait certainement plus performante sur le 1er DD...
- 3ème raison lorsqu’on on a, comme beaucoup de gens sur ce forum, 2 DD IDE branchés sur la même nappe : en effet la norme ATA ne permet pas d’utiliser en même temps les 2 périphériques branchés sur un même port IDE. Ainsi si on branche le DD contenant le pagefile en esclave du DD système, on ne gagnera pas la moindre performance (au contraire ?).
La solution est donc de mettre chacun des 2 DD sur une nappe différente, mais dans ce cas ce seront les périphériques optiques qui risquent d’être pénalisés si les mémoires tampons des DD et lecteur/graveur ne sont pas suffisamment grandes…
La solution idéale serait en fait de mettre chaque DD et lecteur/graveur sur une nappe différente (en utilisant au besoin un contrôleur additionnel), ou mieux encore de n’investir que dans des disques SATA qui par définition ont un port spécifique indépendant des autres ports (et des taux de transfert plus importants), ou mieux encore de mettre le page file sur un volume RAID 0 (le top du top) pendant que le système est, lui, placé sur un autre volume RAID 0 (mais il faut alors plus de matos et d'argent…).
- annexe A:
le pagefile doit-il être réparti sur une ou plusieurs partitions d’un DD et/ou sur un ou plusieurs DD ?
L’idéal est en fait de le mettre
sur une seule partition par DD, en périphérie de ce DD,
mais sur plusieurs DD (si on en a les moyens…).
En effet si sur un même DD vous mettez le pagefile sur plusieurs partitions, alors l’accès mémoire virtuelle sera forcément plus lent lorsqu’il devra travailler sur les partitions les plus au centre du DD (cf point 4).
D’autre part et pour la même raison il vaut mieux la répartir sur plusieurs DD, toujours en périphérie des disques +++, en sachant par exemple que si on a 4 DD et qu’on souhaite un pagefile de 1,5 Go il faudra dédier 0,5 Go par DD (3 x 0,5 = 1,5). (hors configuration RAID 0…)
* Il vaut mieux cependant (mais ce n'est pas indispensable) conserver un pagefile de 5 à 10 Mo sur la partition système, ce qui seul permettra au système de capturer un fichier Memory.dmp en cas d'erreur "STOP" en mode noyau, fichier très utile pour le débogage.
* et c'est grace au pagefile de 1,5 Go créé sur le 2ème DD que l’accès à la mémoire virtuelle sera optimisé, car c’est cette partition la moins sollicitée par le système qui sera utilisé la plupart du temps.
Ainsi seront respectés les 2 objectifs en termes de récupération et d'optimisation.
- annexe B :
XP n'est quand même pas très malin : même lorsqu’on a beaucoup de RAM il continue de se servir du pagefile…
Or comme on l’a vu en préambule ça va quand même beaucoup plus vite lorsqu’XP utilise la RAM…
pour le forcer à charger et conserver en mémoire vive (au lieu du pagefile) certains fichiers système et pilotes (et ainsi booster l’utilisation), on peut modifier la base de registre : démarrer > exécuter > regedit > chercher la clé suivante : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Mémory Management > doubleclic sur l’option « DisablePagingExecutive » et mettre « 1 » à la place de « 0 » > fermer l’éditeur de registre puis redémarrer l’ordi.
Surtout souvenez vous que c’est surtout dans la RAM qu’il faut investir…
Complément
Swapfile c’était le nom donné au fichier d’échange sous windows 3.x : à l’époque, quand la mémoire vive était pleine,
tout un programme était déchargé de la mémoire vive vers ce swapfile pour libérer de la mémoire vive * Pagefile est le nom donné à ce fichier d’échange à partir de windows 95, qui correspond finalement à un swapfile amélioré : en effet au lieu de copier l’intégralité d’un programme en mémoire virtuelle ce sont des
blocs de 4 kilos qui sont transférés à la demande, ce transfert se faisant par ailleurs en
préventif pour toujours maintenir suffisamment d’espace libre en mémoire vive, contrairement au swapfile qui ne transférait les données que lorsque la mémoire vive était pleine (donc perte de performances…) * Quant au pagefile dynamique, ça consiste à laisser le soin au système d’aller chercher de la place sur le DD pour la mémoire virtuelle lorsque la partie permanente est pleine. C’est ce qui apparaît dans la fenêtre de configuration de la mémoire virtuelle dans les fenêtres taille initiale et taille maximale : taille initiale représente l’espace permanent attribué au pagefile, la différence entre taille maximale et taille initiale représente la partie dynamique du pagefile. Le problème c’est que ce pagefile dynamique va se mettre sur le DD là où il y a de la place, et donc le pagefile est forcément fragmenté, et donc perd rapidement en performances. C’est pour ça qu’il vaut mieux supprimer la partie dynamique du pagefile pour ne laisser qu’un page file permanent où l’on va mettre les mêmes valeurs dans taille initiale et taille maximale
Question\Réponse
tu proposes de mettre le pagefile sur le second disque dur, or j'ai vu qu'il était mieux de garder 2 à 50 megas sur le disque système ?
très bonne question ... En cas de blocage inattendu de l’ordi un fichier de l'image mémoire partielle enregistre un ensemble d'informations utiles pour identifier la cause du blocage. Cette option nécessite un fichier d'échange d'au moins 2 Mo sur la partition système. Windows crée un nouveau fichier chaque fois que l’ordinateur cesse de répondre de manière inattendue. Un historique de ces fichiers est stocké dans le dossier %SystemRoot%\Minidump. Mais si on supprime complètement le pagefile de la partition de démarrage, Windows ne peut pas créer de fichier de vidage (Memory.dmp) dans lequel écrire les informations de débogage en cas de message d'erreur "STOP" en mode noyau, ce qui évidemment va compliquer la procédure de débogage. La solution optimale consiste en fait à créer un petit pagefile de 5 ou 10 Mo sur la partition système, puis à créer un pagefile sur une autre partition à accès moins fréquents. Grace à un algorithme interne destiné à déterminer quel est le meilleur pagefile à utiliser pour gérer la mémoire virtuelle, Windows va utiliser en priorité le pagefile de la partition la moins souvent utilisée plutôt que celui de la partition système. Ainsi seront respectés les 2 objectifs en termes de récupération et d'optimisation : * grace au pagefile de 5 à 10 Mo de la partition système, le PC est bien configuré pour capturer un fichier Memory.dmp en cas d'erreur "STOP" en mode noyau * et grace au pagefile créé sur un 2ème DD, l’accès à la mémoire virtuelle est optimisée car c’est cette partition la moins sollicitée par le système qui sera utilisé la plupart du temps. je vais préciser celà dans le tuto...
Remerciement a romsk pour ce travail
discussion et problèmes pratiques de ce sujet ici
Voici d'autres pages que vous pouvez consulter :
polo©2007