Partager via


RAM, mémoire virtuelle, fichier de page et gestion de la mémoire dans Windows

Numéro de la base de connaissances d’origine : 2160852

Résumé

Cet article contient des informations de base sur l’implémentation de la mémoire virtuelle dans les versions 32 bits de Windows.

Dans les systèmes d’exploitation modernes tels que Windows, les applications et de nombreux processus système font toujours référence à la mémoire à l’aide d’adresses de mémoire virtuelle. Les adresses de mémoire virtuelle sont automatiquement traduites en adresses RÉELLES (RAM) par le matériel. Seules les parties principales du noyau du système d’exploitation contournent cette traduction d’adresses et utilisent directement des adresses mémoire réelles.

La mémoire virtuelle est toujours utilisée, même lorsque la mémoire requise par tous les processus en cours d’exécution ne dépasse pas le volume de RAM installé sur le système.

Processus et espaces d’adressage

Tous les processus (par exemple, les exécutables d’application) qui s’exécutent sous des versions 32 bits de Windows sont affectés à des adresses de mémoire virtuelle (un espace d’adressage virtuel), allant de 0 à 4 294 967 295 (2*32-1 = 4 Go), quelle que soit la quantité de RAM installée sur l’ordinateur.

Dans la configuration Windows par défaut, 2 gigaoctets (Go) de cet espace d’adressage virtuel sont désignés pour l’utilisation privée de chaque processus, et les deux autres Go sont partagés entre tous les processus et le système d’exploitation. En règle générale, les applications (par exemple, Bloc-notes, Word, Excel et Lecteur Acrobat) n’utilisent qu’une fraction de l’espace d’adressage privé de 2 Go. Le système d’exploitation affecte des cadres de page RAM uniquement à ces pages de mémoire virtuelle utilisées.

L’extension d’adresse physique (PAE) est la fonctionnalité de l’architecture Intel 32 bits qui étend l’adresse mémoire physique (RAM) à 36 bits. PAE ne modifie pas la taille de l’espace d’adressage virtuel (qui reste à 4 Go), mais uniquement le volume de RAM réel qui peut être traité par le processeur.

La traduction entre l’adresse de mémoire virtuelle 32 bits utilisée par le code qui s’exécute dans un processus et l’adresse RAM 36 bits est gérée automatiquement et de manière transparente par le matériel informatique en fonction des tables de traduction gérées par le système d’exploitation. Toute page de mémoire virtuelle (adresse 32 bits) peut être associée à n’importe quelle page ram physique (adresse 36 bits).

La liste suivante décrit la quantité de RAM prise en charge des différentes versions et éditions de Windows (à compter de mai 2010) :

Version de Windows RAM
Windows NT 4.0 4 Go
Windows 2000 Professionnel 4 Go
Windows 2000 Standard Server 4 Go
Windows 2000 Advanced Server 8 Go
Windows 2000 Datacenter Server 32 Go
Windows XP Professionnel 4 Go
Windows Server 2003 Web Edition 2 Go
Windows Server 2003 Édition Standard 4 Go
Windows Server 2003 Êdition Entreprise 32 Go
Windows Server 2003 Datacenter Edition 64 Go
Windows Vista 4 Go
Windows Server 2008 Standard 4 Go
Windows Server 2008 Entreprise 64 Go
Windows Server 2008 Datacenter 64 Go
Windows 7 4 Go

Fichier d'échange

LA RAM est une ressource limitée, tandis que, à des fins pratiques, la mémoire virtuelle est illimitée. Il peut y avoir de nombreux processus, et chaque processus a ses propres 2 Go d’espace d’adressage virtuel privé. Lorsque la mémoire utilisée par tous les processus existants dépasse la RAM disponible, le système d’exploitation déplace les pages (4 Ko) d’un ou plusieurs espaces d’adressage virtuels sur le disque dur de l’ordinateur. Cela libère cette trame RAM pour d’autres utilisations. Dans les systèmes Windows, ces pages paginées sont stockées dans un ou plusieurs fichiers (Pagefile.sys fichiers) à la racine d’une partition. Il peut y avoir un tel fichier dans chaque partition de disque. L’emplacement et la taille du fichier de page sont configurés dans Propriétés système (cliquez sur Avancé, sur Performances, puis sur le bouton Paramètres).

Les utilisateurs demandent fréquemment à quelle taille dois-je créer le fichier page ? Il n’existe aucune réponse unique à cette question, car elle dépend de la quantité de RAM installée et de la quantité de mémoire virtuelle requise par la charge de travail. S’il n’existe aucune autre information disponible, la recommandation classique de 1,5 fois que la RAM installée est un bon point de départ. Sur les systèmes serveurs, vous souhaitez généralement disposer de suffisamment de RAM afin qu’il n’y ait jamais de pénurie et que le fichier de page n’est pas utilisé. Sur ces systèmes, il n’est pas utile de conserver un fichier de pages volumineux. En revanche, si l’espace disque est volumineux, la maintenance d’un fichier de pages volumineux (par exemple, 1,5 fois la RAM installée) n’entraîne pas de problème, et cela élimine également la nécessité de vous soucier de la taille à faire.

Performances, limites architecturales et RAM

Sur n’importe quel système informatique, à mesure que la charge augmente (le nombre d’utilisateurs, le volume de travail), les performances diminuent, mais de manière non linéaire. Toute augmentation de la charge ou de la demande, au-delà d’un certain point, entraîne une diminution significative des performances. Cela signifie que certaines ressources sont en pénurie critique et sont devenues un goulot d’étranglement.

À un moment donné, la ressource qui est en bref approvisionnement ne peut pas être augmentée. Cela signifie qu’une limite architecturale a été atteinte. Certaines limites architecturales fréquemment signalées dans Windows sont les suivantes :

  • 2 Go d’espace d’adressage virtuel partagé pour le système (noyau)
  • 2 Go d’espace d’adressage virtuel privé par processus (mode utilisateur)
  • 660 Mo de stockage PTE système (Windows Server 2003 et versions antérieures)
  • 470 Mo de stockage de pool paginé (Windows Server 2003 et versions antérieures)
  • 256 Mo de stockage de pool non paginé (Windows Server 2003 et versions antérieures)

Cela s’applique spécifiquement à Windows Server 2003, mais cela peut également s’appliquer à Windows XP et à Windows 2000. Toutefois, Windows Vista, Windows Server 2008 et Windows 7 ne partagent pas toutes ces limites architecturales. Les limites de mémoire utilisateur et noyau (nombres 1 et 2 ici) sont identiques, mais les ressources du noyau telles que les PTE et les différents pools de mémoire sont dynamiques. Cette nouvelle fonctionnalité active à la fois la mémoire paginée et non paginée. Cela permet également aux PTE et au pool de sessions de croître au-delà des limites abordées précédemment, jusqu’au point où le noyau entier est épuisé.

Instructions fréquemment trouvées et entre guillemets, telles que les suivantes :

Avec un serveur Terminal Server, les 2 Go d’espace d’adressage partagé seront entièrement utilisés avant l’utilisation de 4 Go de RAM.

Cela peut être vrai dans certains cas. Toutefois, vous devez surveiller votre système pour savoir s’ils s’appliquent à votre système particulier ou non. Dans certains cas, ces instructions sont des conclusions d’environnements Windows NT 4.0 ou Windows 2000 spécifiques et ne s’appliquent pas nécessairement à Windows Server 2003. Des modifications importantes ont été apportées à Windows Server 2003 pour réduire la probabilité que ces limites architecturales soient atteintes en pratique. Par exemple, certains processus qui se trouvaient dans le noyau ont été déplacés vers des processus non-noyau pour réduire la mémoire utilisée dans l’espace d’adressage virtuel partagé.

Surveillance de l’utilisation de la mémoire ram et de la mémoire virtuelle

Analyseur de performances est l’outil principal permettant de surveiller les performances du système et d’identifier l’emplacement du goulot d’étranglement. Pour démarrer Analyseur de performances, cliquez sur Démarrer, sur Panneau de configuration, sur Outils d’administration, puis double-cliquez sur Analyseur de performances. Voici un résumé de certains compteurs importants et de ce qu’ils vous disent :

  • Mémoire, octets validés : ce compteur est une mesure de la demande de mémoire virtuelle.

    Cela indique le nombre d’octets alloués par les processus et auxquels le système d’exploitation a validé un cadre de page RAM ou un emplacement de page dans le fichier page (ou peut-être les deux). À mesure que les octets validés augmentent plus que la RAM disponible, la pagination augmente et la taille du fichier de page utilisée augmente également. À un moment donné, l’activité de pagination commence à affecter considérablement les performances.

  • Processus, jeu de travail, _Total : ce compteur est une mesure de la mémoire virtuelle en cours d’utilisation active .

    Ce compteur indique la quantité de RAM requise afin que la mémoire virtuelle utilisée pour tous les processus soit en RAM. Cette valeur est toujours un multiple de 4 096, qui est la taille de page utilisée dans Windows. À mesure que la demande de mémoire virtuelle augmente au-delà de la RAM disponible, le système d’exploitation ajuste la quantité de mémoire virtuelle d’un processus dans son ensemble de travail pour optimiser l’utilisation de la RAM disponible et réduire la pagination.

  • Fichier de pagination, %pagefile en cours d’utilisation : ce compteur est une mesure de la quantité de fichier de page en cours d’utilisation.

    Utilisez ce compteur pour déterminer si le fichier de page est une taille appropriée. Si ce compteur atteint 100, le fichier de pages est plein et les choses cesseront de fonctionner. En fonction de la volatilité de votre charge de travail, vous souhaitez probablement que le fichier de page soit suffisamment grand pour qu’il ne soit pas plus de 50 à 075 % utilisé. Si une grande partie du fichier de pages est utilisée, plusieurs disques physiques peuvent améliorer les performances.

  • Mémoire, Pages/S : ce compteur est l’une des mesures les plus mal comprises.

    Une valeur élevée pour ce compteur n’implique pas nécessairement que votre goulot d’étranglement des performances provient d’une pénurie de RAM. Le système d’exploitation utilise le système de pagination à des fins autres que l’échange de pages en raison d’un sur-engagement de mémoire.

  • Mémoire, sortie de pages/s : ce compteur indique le nombre de pages de mémoire virtuelle écrites dans le fichier de pages pour libérer des trames de pages RAM à d’autres fins chaque seconde.

    Il s’agit du meilleur compteur à surveiller si vous pensez que la pagination est votre goulot d’étranglement des performances. Même si les octets validés sont supérieurs à la RAM installée, si la sortie de pages/s est faible ou nulle la plupart du temps, il n’y a aucun problème de performances significatif à partir de la ram insuffisante.

  • Mémoire, octets de cache, mémoire, octets non paginés du pool, mémoire, octets paginés de pool, mémoire, nombre total d’octets du code système, mémoire, nombre total d’octets du pilote système :

    La somme de ces compteurs est une mesure de la quantité de 2 Go de la partie partagée de l’espace d’adressage virtuel de 4 Go réellement utilisée. Utilisez-les pour déterminer si votre système atteint l’une des limites architecturales abordées précédemment.

  • Mémoire, octets disponibles : ce compteur mesure la quantité de RAM disponible pour répondre aux demandes de mémoire virtuelle (nouvelles allocations ou restauration d’une page à partir du fichier de pages).

    Lorsque la RAM est en courte disponibilité (par exemple, les octets validés sont supérieurs à la RAM installée), le système d’exploitation tente de conserver une certaine fraction de RAM installée disponible pour une utilisation immédiate en copiant des pages de mémoire virtuelle qui ne sont pas en cours d’utilisation active dans le fichier de pages. Par conséquent, ce compteur n’atteint pas zéro et n’est pas nécessairement une bonne indication de si votre système est court de RAM.

References

Extensions de fenêtrage d’adresse