Alertes de sécurité en cours Discussion Discussion
Faire un lien Lien
Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée Assiste.com - Sécurité informatique - Décontamination - Antivirus - Protection - Protection de la Vie Privée

Mémoire virtuelle (PageFile.sys) de Windows

Dernière mise à jour : 2017-04-28T00:00 - 28.04.2017
28.09.2014 - 00h00 - Paris - (Assiste - Pierre Pinard) - Mise à jour § Pour défragmenter le fichier pagefile.sys

La "mémoire virtuelle" de Windows est constituée de la RAM augmentée d'un fichier d'échange (fichier de pagination) présent physiquement sur un volume (un disque dur ou SSD), ce qui permet à Windows d'étendre "virtuellement" son espace d'adressage lorsque des besoins s'en font sentir. Le fichier d'échange ne doit pas être confondu avec une quelconque mémoire " cache ".

Mémoire virtuelle (PageFile.sys) de WindowsMémoire virtuelle (PageFile.sys) de WindowsMémoire virtuelle (PageFile.sys) de Windows

Le " fichier d'échange " de Windows est un fichier présent physiquement sur un volume (un disque dur, une clé USB, un SSD) et qui permet à Windows d'étendre "virtuellement" la mémoire centrale de l'ordinateur (la mémoire RAM), lorsque des besoins s'en font sentir.

Formellement :

La mémoire virtuelle dont dispose Windows est la somme de la taille de la RAM + la taille du fichier d'échange.

Savoir :

Le traitement des instructions (l'exécution des programmes) et les manipulations des données, se font exclusivement dans la mémoire RAM.

Sous Windows, de nombreux programmes peuvent s'exécuter (en apparence) simultanément. Windows lui-même est, en réalité, un vaste ensemble de programmes s'exécutant tous (en apparence) en même temps.

Un peu d'aspirine pour comprendre de manière un peu plus approfondie

Les notions de "en même temps" et de "temps réel", sont totalement fausses dans le monde PC ! Ce ne sont qu'apparences. L'ordinateur de type PC (à architecture Intel / Windows) n'exécute qu'une instruction à la fois (ou deux à huit à la fois, en 2012, dans les systèmes multi-coeur / multi-thread). En réalité, chaque "programme" dispose de l'ordinateur durant une tranche de temps (quelques millisecondes - quelques "cycles horloge") puis c'est au programme suivant d'en disposer etc. ... dans un système de "partage de temps". Les PC à architecture Intel / Windows fonctionnent en "temps partagé" ("Time sharing"), comme les bons vieux IBM 360 des années 1966 ! Les PC ne sont pas des systèmes temps réel ni préamptifs - un programme qui n'a rien à faire n'est pas mis dans un état d'attente (idle), il lui est attribué du temps processeur, comme aux autres, dont il ne fait rien ! Le tout est pondéré par un système de "priorités" qui permet d'allouer un peu plus de cycles à des processus prioritaires et un peu moins à des processus marginaux.

Lorsque vous lancez un nouveau programme, ou lorsqu'un programme "prend la main" pour s'exécuter parce que c'est son tour, il doit se trouver dans la RAM. S'il n'y a pas de place dans la RAM, des portions des autres programmes présents dans la RAM, et dont ce n'est pas le tour de s'exécuter, sont découpés arbitrairement en bloc de 4KO appelés "pages", et ces "pages" sont "vidées" dans le fichier d'échange, également appelé "mémoire paginée". Un algorithme optimise cette opération en tenant compte de divers paramètres dont la priorité. La mémoire RAM ainsi libérée est mise à disposition de l'application-demandeuse pour ses cycles d'exécution. Lorsque c'est à nouveau le tour de l'application qui avait été "vidée" de s'exécuter, le processus recommence et les "pages" vidées de l'application "remontent" en RAM. Ce fonctionnement est connu sous divers noms mais nous retiendrons "Swap-in / Swap-out" et "Roll-in / Roll-out".

Accédez au « Gestionnaire de tâches de Windows » en enfonçant, simultanément, les trois touches "Alt + Ctrl + Suppr".

Clavier - appui simultané sur les 3 touches : Alt et Ctrl (ou Cntrl ou Control) et Suppr (ou Sup ou Delete)
Clavier - appui simultané sur les 3 touches : Alt et Ctrl (ou Cntrl ou Control) et Suppr (ou Sup ou Delete)

Dans l'onglet "processus", une colonne "Erreur de pages" (ou "Défaillance de pages") signale non pas des erreurs (le mot est mal choisi) mais le nombre d'utilisations du fichier d'échange (1 swapp-out = une utilisation, un swapp-in = une utilisation), donc le nombre de fois ou le fichier d'échange a "sauvé la mise" à votre système qui manque de RAM.

Manque de mémoire RAM

On comprend immédiatement que le manque de RAM provoque des millions d'accès disque et donc un ralentissement très sensible des performances de l'ordinateur. Ce n'est pas augmenter la taille du fichier de mémoire paginée qui va améliorer les choses. C'est l'ajout de mémoire RAM.

Simultanément, le bricolage de la taille du cache disque (son augmentation) peut allourdir encore plus ce ralentissement.

Ce processus de Windows est astucieux car il permet d'exploiter des applications très gourmandes en mémoire RAM sans avoir à acheter des barrettes de mémoire (pourtant de moins en moins coûteuses) et sans provoquer une situation de blocage total en cas de manque de RAM. Si le fichier d'échange n'existe pas (vous pouvez tester le cas en supprimant l'utilisation du fichier d'échange dans les propriétés système) et si la RAM est faible, un crash système vous prévient du manque de mémoire (RAM + pagination) avec un message "Mémoire virtuelle insuffisante".

Ce processus est aussi la signature de l'inconsistance de Windows qui ne sait pas gérer la mémoire et qui, véritable usine à gaz de trucs inutiles ralentissant la machine (voir, par exemple : Les services à désactiver dans les différentes versions de Windows), nécessite des plates-formes de plus en plus puissantes pour en faire de moins en moins. Windows est incapable de gérer des objets en dehors de sa mémoire RAM et fait tout monter en RAM pour camoufler sa lourdeur. Ne lui parlez pas de fichier indexé : un index est alors entièrement monté en mémoire etc. ...

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

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

Son emplacement est au choix de l'utilisateur mais, par défaut, il se trouve sur le volume système C:, ce qui n'est pas une bonne idée. Le fichier de mémoire virtuelle, comme tous les fichiers temporaires, devrait être dirigé vers un volume (une partition) dédiée à cela (de manière à pouvoir effectuer un nettoyage aisé). D'autre part, bien que nous recommandions, pour toutes les partitions de Windows, à partir de NT4, d'être en NTFS, nous recommandons, pour la partition recevant les fichiers temporaires et le swapfile, d'être en FAT32 "seulement". Ce système de gestion de fichiers est beaucoup plus rapide que NTFS.

La "vitesse" du fichier d'échange est effroyablement lente par rapport à la vitesse de la RAM de l'ordinateur. Si l'on entend le disque dur fonctionner sans cesse il est temps d'acheter de la RAM pour votre ordinateur - ce sera un formidable coup d'accélération de Windows et de l'ordinateur sans avoir à changer d'ordinateur (et sans avoir à changer de disque dur, après avoir perdu toutes ses données, lorsqu'il succombera aux millions d'accès à la minute imposés par trop peu de RAM).

La taille du fichier d'échange (pagefile.sys) est généralement laissée au bon soin, automatiques, de Windows, mais ceci pose un problème : le fichier d'échange est alors de taille variable et ne cesse de croître puis rapetisser - il fini très vite par ressembler à un patchwork et il faut le défragmenter sinon il ralenti encore plus Windows !

Pour défragmenter le fichier pagefile.sys :

Normalement, il est impossible de défragmenter pagefile.sys. L'une des limitations de la défragmentation est qu'elle n'aura jamais accès aux fichiers qui sont ouverts, dès le démarrage de Windows, en mode d'accès exclusif (y compris lors d'un démarrage en mode sans échec). Jamais aucun logiciel standard de défragmentation, gratuit ou commercial, ne pourra défragmenter pagefile.sys.

PAGEFILE.SYS NE PEUX PAS ÊTRE DÉFRAGMENTÉ

Pour défragmenter le fichier pagefile.sys, utilisez PageDefrag (de Mark Russinovich - SysInternals), uniquement si vous êtes sous Windows client XP 32 bits ou Windows Server 2003 32 bits.
http://technet.microsoft.com/fr-fr/sysinternals/bb897426

Sur d'autres versions de Windows (Windows 64 bits et versions 32 bits de Windows Vista, 7, 8 et suivantes.), PageDefrag ne fonctionne pas et pagefile.sys ne peut pas être défragmenté, même en démarrant en mode sans échec.

Astuce :
Le seul moyen est de monter le disque en disque secondaire (ou en disque externe) et de lancer une défragmentation de ce disque. A ce moment là, tous les fichiers, y compris les ruches du Registre Windows, pagefile.sys et hiberfil.sys sont défragmentés. Après cette opération, on remonte le disque en disque primaire (système) et on peut constater une accélération de Windows si le fichier pagefile.sys était très fragmenté.

Une meilleure voie est de donner au fichier de mémoire virtuelle de Windows une taille fixe. Le problème de fragmentation et de ralentissement est évacué. La taille de ce fichier doit alors être suffisante pour qu'il n'y ait pas de débordement, ce qui provoquerait le crash d'une application, voire le crash de tout le système.

Pour déterminer la taille du pagefile dont vous avez besoin, ce qui est dépendant de votre matériel (RAM & Disques), de vos applications et de la manière de vous en servir, réglez votre mémoire virtuelle en mode automatique (Taille gérée par le système) et observez, régulièrement (2 fois par jour durant une semaine) les nombres indiqués par Windows (taille allouée actuellement et taille maximale) après quoi, défragmentez le disque sur lequel se trouve le fichier de mémoire virtuelle (Explorateur Windows > Clic droit sur le volume > Propriétés ou, mieux, utilisez Defraggler) puis allouez à votre "pagefile", une taille fixe (taille personnalisée) avec pour taille minimum la taille moyenne observée et comme maximum, la taille maximum observée (sans que cela ne puisse dépasser 4096 MO sur les systèmes 32bits et sous Windows XP). L'intérêt de la taille fixe de pagefile.sys est que Windows ne perd plus son temps à augmenter / réduire la taille d'un fichier, par essence changeant, et, d'autre part, ce fichier n'est plus fractionnable (il n'y a plus de ralentissement dues à la fragmentation de ce fichier et vous n'avez plus besoin de le défragmenter pour tenter d'améliorer la vitesse de Windows).

Une autre règle, purement empirique (totalement invérifiable), sur la taille de pagefile.sys consisterait à donner, comme taille maximum, 2,5 fois la taille de la mémoire RAM de votre ordinateur (sans que cela ne dépasse 4096 MO sous Windows XP). Si votre utilisation de l'ordinateur est centrée sur des travaux de type traitement de textes et tableurs, avec des documents de petite taille, la taille de la mémoire virtuelle pourra être plus petite que si vous utilisez des logiciels comme PhotoShop sur des images de très grandes dimenssions en très haute résolution, ou des logiciels de montage vidéo etc. ...

Le tableau suivant est une autre pure construction de l'esprit, souvent rencontré, et qui n'a rien de réaliste.

La seule bonne méthode de calcul de la taille de pagefile.sys

La seule bonne méthode de calcul de la taille du fichier de mémoire virtuelle de Windows (pagefile.sys) est celle des essais et erreurs (et regardez le gestionnaire des tâches pour avoir la taille mémoire réellement utilisée par chaque processus et au total).

Exemple : sur mes machines avec 8 GO de RAM et usages simultanés d'Adobe Photoshop, Adobe Golive, Adobe Dreamwaver, plusieurs documents Word, plusieurs tableaux Exel dont certaines bases de données volumineuses, Firefox avec plusieurs centaines d'onglets ouverts, Opera, Kaspersky PURE, des PDF ouverts, Secunia PSI, etc. ..., mon Pagefile.sys est de 2 GO seulement.


Un tableau empirique à ignorer de tailles du fichier de mémoire virtuelle de WindowsUn tableau empirique à ignorer de tailles du fichier de mémoire virtuelle de WindowsUn tableau empirique à ignorer de tailles du fichier de mémoire virtuelle de Windows

Tableau connu, répété sur bien des forums de discussion, et dont il ne faut pas tenir compte. Il propose une taille fixe conseillée, pour le fichier de mémoire virtuelle pagefile.sys, de manière totalement arbitraire, sans aucun sens pratique ni théorique.

La taille du pagefile.sys est totalement et uniquement dépendante de votre usage de votre ordinateur et des applications utilisées, et ne répond à aucune règle de calcul de taille, ni de conseils, par nature totalement faux. :

Attention - pour modifier la taille du fichier pagefile.sys, vous devez avoir les droits administratifs - si vous faites cette manipulation sous un compte "limité", rien n'est pris en compte.

Ce tableau, très connu, est complètement faux !
Taille de la RAM Taille conseillée de manière arbitraire
1 GO 2,5 GO (4096 MO max sur une machine 32 bits)
1,5 GO 3, 75 GO (4096 MO max sur une machine 32 bits)
2 GO
5 GO (4096 MO max sur une machine 32 bits)
4 GO 10 GO (4096 MO max sur une machine 32 bits)
6 GO 15 GO
8 GO 16 GO
10 GO 16 GO
12 GO 16 GO
14 GO 16 GO
16 GO 16 GO

Le bon emplacement du fichier de mémoire virtuelle de WindowsLe bon emplacement du fichier de mémoire virtuelle de WindowsLe bon emplacement du fichier de mémoire virtuelle de Windows

De préférence, créer une partition dans laquelle ce fichier est placé.
De préférence, cette partition serait mieux placée sur un disque dur physique différent du système (sinon, on perd du temps en déplacement des têtes de lecture).
Si un disque SSD est présent, mettre la mémoire virtuelle sur le volume SSD, ce qui augmentera sensiblement les performance de la machine.

Modifier la taille du fichier de mémoire virtuelle de WindowsComment modifier la taille du fichier de mémoire virtuelle de WindowsModifier la taille du fichier de mémoire virtuelle de Windows

Pour allouer une taille et un emplacement à la mémoire virtuelle, il faut accéder aux "Propriétés système". :
  • Lancement direct de "Propriétés système"
    Sous toutes les versions de Windows, exécuter la commande SYSDM.CPL @0,3
  • Sous Windows XP, Vista
    Démarrer Mémoire virtuelle (PageFile.sys) de Windows Panneau de configuration Mémoire virtuelle (PageFile.sys) de Windows Performances et maintenance Mémoire virtuelle (PageFile.sys) de Windows Système Mémoire virtuelle (PageFile.sys) de Windows Onglet "Avancé Mémoire virtuelle (PageFile.sys) de Windows Clic sur le bouton "Paramètres" dans Performances Mémoire virtuelle (PageFile.sys) de Windows Onglet "Avancé" Mémoire virtuelle (PageFile.sys) de Windows Clic sur le bouton "Modifier" dans Mémoire virtuelle Mémoire virtuelle (PageFile.sys) de Windows Clic sur le volume qui doit contenir votre fichier "PageFile" (généralement C:) Mémoire virtuelle (PageFile.sys) de Windows Sélectionnez "Taille gérée par le système" (ou "Taille personnalisée" et saisir vos nombres) Mémoire virtuelle (PageFile.sys) de Windows Clic sur le bouton "Définir" Mémoire virtuelle (PageFile.sys) de Windows Ok Appliquer Mémoire virtuelle (PageFile.sys) de Windows Ok Mémoire virtuelle (PageFile.sys) de Windows Fermer et redémarrer.
  • Sous Windows 7 et suivants
    Démarrer Mémoire virtuelle (PageFile.sys) de Windows Panneau de configuration Mémoire virtuelle (PageFile.sys) de Windows Afficher par petites icônes Mémoire virtuelle (PageFile.sys) de Windows Système Mémoire virtuelle (PageFile.sys) de Windows Paramètres Système Avancés Mémoire virtuelle (PageFile.sys) de Windows Clic sur le bouton "Paramètres" dans Performances Mémoire virtuelle (PageFile.sys) de Windows Onglet "Avancé" Mémoire virtuelle (PageFile.sys) de Windows Clic sur le bouton "Modifier" dans Mémoire virtuelle Mémoire virtuelle (PageFile.sys) de Windows Décocher la case "Gestion automatique du fichier d'échange pour les lecteurs" Mémoire virtuelle (PageFile.sys) de Windows Clic sur le volume qui doit contenir votre fichier "PageFile" (généralement C:) Mémoire virtuelle (PageFile.sys) de Windows Sélectionnez "Taille gérée par le système" (ou "Taille personnalisée" et saisir vos nombres) Mémoire virtuelle (PageFile.sys) de Windows Clic sur le bouton "Définir" Mémoire virtuelle (PageFile.sys) de Windows Ok Mémoire virtuelle (PageFile.sys) de Windows Ok Mémoire virtuelle (PageFile.sys) de Windows Ok Mémoire virtuelle (PageFile.sys) de Windows Fermer et redémarrer.
Mémoire virtuelle (PageFile) de Windows : Panneau de configuration > Système
Mémoire virtuelle (PageFile) de Windows : Panneau de configuration > Système


Mémoire virtuelle (PageFile) de Windows : Paramètres Système Avancés
Mémoire virtuelle (PageFile) de Windows : Paramètres Système Avancés


Mémoire virtuelle (PageFile) de Windows : Clic sur le bouton "Paramètres" dans Performances
Mémoire virtuelle (PageFile) de Windows : Clic sur le bouton "Paramètres" dans Performances


Mémoire virtuelle (PageFile) de Windows : Onglet "Avancé" > Clic sur le bouton "Modifier" dans Mémoire virtuelle
Mémoire virtuelle (PageFile) de Windows : Onglet "Avancé" > Clic sur le bouton "Modifier" dans Mémoire virtuelle


Mémoire virtuelle (PageFile) de Windows : Faire les réglages personnalisés ou mettre en gestion automatique
Mémoire virtuelle (PageFile) de Windows : Faire les réglages personnalisés ou mettre en gestion automatique


La mmoire virtuelle empchecertaines dcontamination - dmarrer en mode sans checLa mémoire virtuelle bloque certaines décontaminations - Le mode "sans échec"La mmoire virtuelle empchecertaines dcontamination - dmarrer en mode sans chec

Les algorithmes de gestion de la mémoire virtuelle de Windows (le fichier pagefile.sys) optimisent l'occupation de ce fichier. Lorsqu'un programme en cours d'exécution doit être éjecté momentanément de la RAM pour laisser de la place à un autre, seules les données sur lesquelles vous travaillez, et les variables, sont envoyées dans la mémoire virtuelle (le fichier pagefile.sys). Le code en lui-même du programme, invariable, se trouve déjà sur disque, dans le fichier où le programme est installé. C'est de là qu'il sera recherché lorsque le programme remontera en mémoire pour reprendre son tour d'exécution. C'est la raison pour laquelle Windows empêchera toujours de toucher aux fichiers des programmes en cours d'exécution (accès exclusif).

Si le programme est un virus, il " bénéficiera " de la même " protection ". C'est pourquoi les antivirus vous annonceront parfois, pour parfaire une décontamination (selon les virus ou parasites trouvés), qu'ils ont besoin de redémarrer l'ordinateur. Là, dans la liste de redémarrage de Windows, l'antivirus va exécuter en premier les travaux de fin de décontamination avant de permettre le redémarrage de tout le reste.

Vous ne devez pas démarrer / redémarrer Windows en mode de diagnostique (dit mode " sans échec ") pour lancer un antivirus ou un anti-malwares, car cet outil cherche certains virus en mémoire, tandis qu'ils cherchent à s'exécuter (mode « on-execution ». Si l'ordinateur démarre en mode de diagnostique (dit mode " sans échec "), certains virus, qui se camouflent sur disque, ne seront pas détectés. Ils sont obligés de se dévoiler pour se lancer, en cherchant à s'activer en mémoire. Si un outil de sécurité est spécifiquement écrit pour être utilisé en mode de diagnostique (dit mode " sans échec "), nous vous le signalerons dans son mode d'emploi.

Le mode d'accès « on-execution » des outils de sécurité permet aussi :

  • De gagner du temps en n'analysant que ce qui cherche à s'exécuter, donc uniquement du code exécutable, au lieu d'analyser tout et n'importe quoi.
  • D'éviter le problème connu qui fait dire qu'il ne faut jamais avoir plus d'un antivirus ou anti-malwares simultanés. Cet ancien mode de fonctionnement des outils de sécurité, qui faisait intercepter, en mode exclusif, les fichiers tentant de s'ouvrir (« hook - hooker - hooking »), pour les analyser, pouvait provoquer des situations de blocages mutuels entre plusieurs outils de sécurité intervenant simultanément sur le même fichier.

Accessoirement, vous pouvez lancer une seconde fois un antivirus ou un antimalware en mode de diagnostique (dit mode " sans échec "), par acquis de conscience, mais certains antivirus le vérifient et refuseront de se lancer dans ce mode. Lorsque Windows est démarré en mode de diagnostique (dit mode " sans échec "), il est lancé dans une configuration minimum. Tout ce qui tente, habituellement, de s'activer et s'exécuter durant le démarrage de Windows, et qui ne fait pas partie du noyau minimum de Windows, est ignoré (n'est pas lancé).

Seuls les malwares de classe " Root " (" Rootkit "), qui ont réussi à s'incruster dans le noyau de Windows, ne peuvent être évités lors d'un démarrage en mode " Sans échec ". Ils font désormais partie du noyau de Windows et disposent des privilèges les plus élevés, ceux de Windows (" Ring 0 ").

Les niveaux de privilèges dans un système d'exploitation : ring0, ring1, ring2, ring3, ring 0, ring 1, ring 2, ring 3
Les niveaux de privilèges dans un système d'exploitation : ring0, ring1, ring2, ring3, ring 0, ring 1, ring 2, ring 3

Certains s'installent encore plus "haut" : dans le "bootstrap" du disque de démarrage (le "bootstrap" est exécuté avant le chargement de Windows), voire dans le BIOS qui est exécuté en tout premier, à la mise sous tension de l'ordinateur.

Sécurité informatique - Comment je me fais avoir - Comment ne pas me faire avoirSécurité informatique - Comment je me fais avoir - Comment ne pas me faire avoirSécurité informatique - Comment je me fais avoir - Comment ne pas me faire avoir

Sécurité informatique - Contre-mesuresSécurité informatique - Contre-mesuresSécurité informatique - Contre-mesures

Derrière le rideauDerrière le rideauDerrière le rideau

RéférencesRéférences" Références "

RessourcesRessources" Ressources "

 Requêtes similairesRequêtes similaires" Requêtes similaires "

Mémoire virtuelle de Windows
Virtual Memory
Fichier d'échange
Pagination
Paging
Mémoire paginée
Swap
Swap file
Swapfile
Swap-in
Swap-out
Swapping
Roll-in
Roll-out
Pagefile
Pagefile.sys
Win386.swp
386spart.par
FiFo
First In
First Out