Mémoire vive, mémoire virtuelle, fichier d’accueil et gestion de la mémoire dans Windows

S’applique à :   Windows 7 Service Pack 1, Windows Server 2012 R2
Numéro de la ko 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 référencent toujours la mémoire à l’aide d’adresses mémoire virtuelle. Les adresses de mémoire virtuelle sont automatiquement converties 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’adressa traitement

Tous les processus (par exemple, les exécutables d’application) qui s’exécutent sous les versions 32 bits de Windows se voit attribuer des adresses de mémoire virtuelle (un espace d’adressare 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’adressare virtuel sont désignés pour l’utilisation privée de chaque processus, et les 2 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 Reader Acrobat) n’utilisent qu’une fraction des 2 Go d’espace d’adressare privé. Le système d’exploitation affecte des cadres de page RAM uniquement aux pages de mémoire virtuelle en cours d’utilisation.

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’adressarage 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 mémoire virtuelle 32 bits utilisée par le code en cours d’exécution 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 DE RAM physique (adresse 36 bits).

La liste suivante décrit la quantité de RAM prise en charge par Windows versions et éditions (depuis mai 2010) :

Version de Windows Mémoire 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 Serveur 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 Enterprise 64 Go
Windows Server 2008 Datacenter 64 Go
Windows 7 4 Go

Fichier d'échange

La mémoire ram est une ressource limitée, alors que pour des raisons pratiques, la mémoire virtuelle est illimitée. Il peut y avoir de nombreux processus et chaque processus possède son propre espace d’adressare virtuel privé de 2 Go. Lorsque la mémoire utilisée par tous les processus existants dépasse la RAM disponible, le système d’exploitation déplace des pages (pièces de 4 Ko) d’un ou plusieurs espaces d’adressag virtuels sur le disque dur de l’ordinateur. Cela libère ce cadre de RAM pour d’autres utilisations. Dans 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 fichier de ce type 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é, Cliquez sur Performances, puis cliquez sur le bouton Paramètres page).

Les utilisateurs me demandent souvent quelle est la taille du fichier d’accueil . Il n’existe pas de réponse unique à cette question, car elle dépend de la quantité de RAM installée et de la quantité de mémoire virtuelle nécessaire à cette charge de travail. S’il n’existe aucune autre information disponible, la recommandation classique de 1,5 fois la RAM installée constitue un bon point de départ. Sur les systèmes serveur, vous souhaitez généralement avoir suffisamment de RAM afin de ne jamais manquer et de ne pas utiliser le fichier d’accès. Sur ces systèmes, il n’est pas utile de gérer un fichier page de grande taille. En revanche, si l’espace disque est insérable, la maintenance d’un fichier d’accès en page de grande taille (par exemple, 1,5 fois la RAM installée) ne pose pas de problème, ce qui élimine également le besoin de se soucier de la taille de la mémoire vive.

Performances, limites architecturales et RAM

Sur n’importe quel système informatique, à mesure que la charge augmente (nombre d’utilisateurs, volume de travail), les performances diminuent, mais de manière nonligne. 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 dans un approvisionnement extrêmement court et sont devenues un goulot d’étranglement.

À un moment donné, la ressource qui est dans l’approvisionnement court 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’adressare virtuel partagé pour le système (noyau)
  • 2 Go d’espace d’adressare virtuel privé par processus (mode utilisateur)
  • 660 Mo de stockage PTE système (Windows Server 2003 et les antérieures)
  • 470 Mo de stockage de pool paginé (Windows Server 2003 et les antérieures)
  • 256 Mo de stockage de pool nonpaged (Windows Server 2003 et les antérieures)

Cela s’applique Windows Server 2003 spécifiquement, 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 des utilisateurs et du noyau (numéros 1 et 2 ici) sont les mêmes, mais les ressources du noyau telles que les ptEs et divers pools de mémoire sont dynamiques. Cette nouvelle fonctionnalité active à la fois la mémoire pagaie et la mémoire non pagaie. Cela permet également aux ptEs et au pool de sessions de dépasser les limites évoquées précédemment, jusqu’au point où le noyau entier est épuisé.

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

Avec un serveur Terminal Server, les 2 Go d’espace d’adressare partagé seront entièrement utilisés avant que 4 Go de RAM ne soient utilisés.

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 déclarations 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 afin de réduire la probabilité que ces limites architecturales soient en réalité atteintes dans la pratique. Par exemple, certains processus qui se sont produits dans le noyau ont été déplacés vers des processus autres que le noyau afin de réduire la mémoire utilisée dans l’espace d’adressas virtuel partagé.

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

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

  • Mémoire, octets engagé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 auquel le système d’exploitation a engagé un cadre de page RAM ou un emplacement de page dans le fichier de pages (ou peut-être les deux). À mesure que la taille des octets engagés augmente plus vite que la RAM disponible, la pagination augmente et la taille du fichier d’accueil utilisé augmente également. À un moment donné, l’activité de pagination commence à affecter considérablement les performances.

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

    Ce compteur indique la quantité de RAM nécessaire pour que la mémoire virtuelle utilisée pour tous les processus soit en RAM. Cette valeur est toujours un multiple de 4 096, c’est-à-dire 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 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 d’accès est plein et les choses cesseront de fonctionner. En fonction de la grande taille de votre charge de travail, vous souhaitez probablement que le fichier de page soit suffisamment grand pour qu’il ne soit pas utilisé à plus de 50 à 075 %. Si une grande partie du fichier d’accès est utilisée, le fait d’en avoir plusieurs sur différents disques physiques peut améliorer les performances.

  • Mémoire, pages/s : ce compteur est l’une des mesures les plus récentes.

    Une valeur élevée pour ce compteur ne signifie pas nécessairement que votre goulot d’étranglement de performances provient d’un manque 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 des pages/s : ce compteur indique le nombre de pages de mémoire virtuelle écrites dans le fichier d’échange pour libérer des cadres de page ram à d’autres fins chaque seconde.

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

  • Mémoire, octets de cache, mémoire, octets non pagés du pool, mémoire, octets pagés dans le 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’adressare virtuel de 4 Go en cours d’utilisation. Utilisez-les pour déterminer si votre système atteint l’une des limites architecturales abordées précédemment.

  • Mémoire, MOctets disponibles : ce compteur mesure la quantité de RAM disponible pour satisfaire les demandes de mémoire virtuelle (nouvelles allocations ou pour restaurer une page à partir du fichier d’pages).

    Lorsque la MÉMOIRE RAM est en nombre court (par exemple, les octets engagés sont supérieurs à la RAM installée), le système d’exploitation essaie de conserver une certaine fraction de ram installée disponible pour une utilisation immédiate en copiant les pages de mémoire virtuelle qui ne sont pas en cours d’utilisation dans le fichier de pages. Par conséquent, ce compteur n’atteint pas zéro et n’indique pas nécessairement si votre système manque de RAM.

Références

Extensions de fenage d’adresses