RAM, mémoire virtuelle, fichier d’échange et gestion de la mémoire dans Windows

S’applique à : Microsoft Windows XP Home EditionMicrosoft Windows XP ProfessionalMicrosoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)

Résumé


Cet article contient des informations de base sur la mise en oeuvre de la mémoire virtuelle dans les versions 32 bits de Windows. En ce qui concerne Windows 2000, Windows XP, Windows Server 2003, Windows Vista et Windows Server 2008. (Étant donné que Windows Server 2008 R2 est disponible uniquement dans une version 64 bits, ces informations ne s’applique pas à celle-ci.)

Plus d'informations


Dans les systèmes d’exploitation modernes tels que Windows, les applications et les nombreux système processus toujours faire référence à mémoire à l’aide des adresses de mémoire virtuelle. Les adresses de mémoire virtuelle sont automatiquement convertis en réel (RAM) adresses par le matériel. Uniquement les parties centrales du noyau du système d’exploitation ignorer cette traduction d’adresse et utilisent directement des adresses de mémoire réelle.

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

Les processus et les espaces d’adressage

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

Dans la configuration de 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 2 autres Go est partagé entre tous les processus et le système d’exploitation. En général, les applications (par exemple, le bloc-notes, Word, Excel et Acrobat Reader) utilisent seulement une fraction de 2 Go d’espace d’adressage privé. Le système d’exploitation affecte les cadres RAM uniquement aux pages de mémoire virtuelle en cours d’utilisation.

Extension d’adresse physique (PAE) est la fonctionnalité de l’architecture Intel 32 bits qui s’étend de l’adresse de la mémoire physique (RAM) à 36 bits. Extension d’adresse physique ne modifie pas la taille de l’espace d’adressage virtuel (ce qui reste à 4 Go), mais uniquement le volume de RAM réel qui peut être traité par le processeur. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :

268363 Extensions d’adresses physiques (PAE) dans Windows 2000
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 de la mémoire vive 36 bits est gérée automatiquement et de façon transparente par le matériel de l’ordinateur en fonction des tables de traduction qui sont gérés par le système d’exploitation. N’importe quelle page de mémoire virtuelle (adresse 32 bits) peut être associé à n’importe quelle page de mémoire vive physique (adresse 36 bits).

La liste suivante décrit la quantité de RAM prenant en charge les éditions et versions de Windows différentes (à partir de mai 2010) :
Windows NT 4.0 4 GO
Windows 2000 Professionnel 4 GO
Windows 2000 Server Standard 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 Standard Edition 4 GO
Windows Server 2003 Enterprise Edition 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 mémoire vive est une ressource limitée, considérant que, pour les utilisations les plus pratiques, la mémoire virtuelle est illimitée. Il peut y avoir de nombreux processus, et chaque processus a son propre 2 Go d’espace d’adressage virtuel privé. Lorsque la mémoire utilisée par tous les processus existants dépasse la mémoire vive disponible, le système d’exploitation déplace des pages (pièces de 4 Ko) d’un ou plusieurs espaces d’adressage virtuel pour le disque dur de l’ordinateur. Cela permet de libérer ce bloc de mémoire vive pour d’autres utilisations. Dans les systèmes Windows, ces pages « paginées out » sont stockés dans un ou plusieurs fichiers (Pagefile.sys) à la racine d’une partition. Il peut exister un tel fichier dans chaque partition de disque. L’emplacement et la taille du fichier d’échange est configuré dans les Propriétés système (cliquez sur Options avancéeset cliquez sur performances, puis cliquez sur le bouton paramètres ).

Les utilisateurs demandent fréquemment « quelle taille dois-je attribuer au fichier d'échange? » Il n’existe pas une seule réponse à cette question car il dépend de la quantité de RAM installée et sur la quantité de mémoire virtuelle requiert que la charge de travail. Si aucune autre information n’est disponible, la recommandation standard de 1,5 fois la mémoire RAM installée est un bon point de départ. Sur les systèmes serveur, vous souhaitez généralement avoir suffisamment de mémoire vive afin qu’il n’y a jamais une pénurie et que le fichier d’échange n’est pratiquement pas utilisée. Sur ces systèmes, conserver un fichier d'échange de très grande taille peut s'avérer inutile. D'autre part, si l'espace disque est suffisant, la maintenance d'un fichier d'échange volumineux (par exemple, 1,5 fois la mémoire RAM installée) ne pose pas de problème et élimine également le besoin de vous inquiéter de la taille à définir.

RAM, des performances et des limites architecturales

Sur tout ordinateur, à mesure que la charge augmente (le nombre d’utilisateurs, le volume de travail), les performances diminuent, mais d’une manière non linéaire. Toute augmentation de la charge ou à la demande, au-delà d’un certain point, entraîne une diminution considérable des performances. Cela signifie que certaines ressources est extrêmement pénurie et qu’il est devenu un goulot d’étranglement.

À un moment donné, la ressource est en pénurie ne peut pas être augmentée. Cela signifie qu’une limite architecturale a été atteint. Certaines limites architecturales fréquemment rapportés dans Windows sont les suivantes :
  • 2 Go d’espace d’adresse virtuelle partagée pour le système (noyau)
  • 2 Go d’espace d’adressage virtuel par processus (mode utilisateur)
  • 660 Mo du système de stockage PTE (Windows Server 2003 et versions antérieur)
  • 470 Mo de stockage de mémoire paginée (Windows Server 2003 et versions antérieur)
  • 256 Mo de stockage en pool non paginée (Windows Server 2003 et versions antérieur)
Cela s’applique spécifiquement à Windows Server 2003, mais cela peut s’appliquent également à Windows XP et Windows 2000. Cependant, Windows Vista, Windows Server 2008 et Windows 7 ne pas tous partagent ces limites architecturales. Les limites de l’utilisateur et de la mémoire du noyau (numéros 1 et 2) sont les mêmes, mais les ressources du noyau PTE des différents pools de mémoires sont dynamiques. Cette nouvelle fonctionnalité active la mémoire paginée et non paginée. Cela permet également de PTE et pool de sessions de dépasser les limites mentionnées précédemment, jusqu’au point où le noyau entier est épuisé.

Instructions fréquemment trouvées et entre guillemets comme suit :
Avec un serveur Terminal Server, le 2 Go d’espace d’adressage partagé sera totalement utilisé avant de 4 Go de RAM est utilisée. »
Cela est vrai dans certains cas. Toutefois, vous devez surveiller votre système pour savoir si leur appliquent à votre système particulier ou non. Dans certains cas, ces instructions sont des conclusions à partir des 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 seront en fait atteint dans la pratique. Par exemple, certains des processus dans le noyau ont été déplacés à un processus non-noyau pour réduire la mémoire utilisée dans l’espace d’adresse virtuelle partagée.

Analyse de l’utilisation de mémoire RAM et la mémoire virtuelle

L’Analyseur de performances est l’outil de principe pour la surveillance des performances du système et pour l’identification de goulot d’étranglement. Pour démarrer l’Analyseur de performances, cliquez sur Démarreret cliquez sur Panneau de configuration, sur Outils d’administration, puis double-cliquez sur Analyseur de performances. Voici un résumé de certains compteurs importants et qu’ils vous dire :
  • Mémoire, octets validés : ce compteur est une mesure de la demande en mémoire virtuelle.

    Ce champ indique le nombre d’octets alloué par le processus et à laquelle le système d’exploitation a commis un cadre de page de mémoire RAM ou un emplacement de la page dans le fichier d’échange (ou les deux). Octets dédiés devient supérieure à la mémoire vive disponible, pagination augmente et augmente également la taille du fichier d’échange qui est utilisée. À un certain moment, 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 mémoire vive est nécessaire afin que la mémoire virtuelle utilisée pour tous les processus est dans la mémoire vive. Cette valeur est toujours un multiple de 4 096, qui est la taille de page qui est utilisée dans Windows. Comme la demande de la mémoire virtuelle des augmente au-delà de la mémoire vive disponible, le système d’exploitation ajuste la quantité de mémoire virtuelle d’un processus est dans son jeu de travail pour optimiser l’utilisation de mémoire vive disponible et la réduction de la pagination.
  • Fichier d’échange, fichier d’échange % en cours d’utilisation: ce compteur est une mesure de la proportion du fichier d’échange est réellement utilisé.
    Utilisez ce compteur pour déterminer si le fichier d’échange est d’une taille appropriée. Si ce compteur atteint 100, le fichier d'échange est plein, et certains éléments cesseront de fonctionner. En fonction de la volatilité de votre charge de travail, vous souhaiterez probablement que le fichier d'échange soit suffisamment volumineux afin qu'il ne soit pas utilisé à plus de 50-75 pour cent. Si la majeure partie du fichier d’échange est utilisé, à plus d’un sur des disques physiques, peut améliorer les performances.
  • Mémoire, Pages/s: ce compteur est une des mesures les plus mal comprises.

    Une valeur élevée de ce compteur n’implique pas nécessairement que votre goulot d’étranglement de performances découle d’un manque de mémoire vive. Le système d’exploitation utilise le système d’échange à des fins autres que la permutation des pages en raison de l’engagement de dépassement de mémoire.
  • Mémoire, Pages en sortie/s: ce compteur affiche le nombre de pages de mémoire virtuelle ont été écrites dans le fichier d’échange pour libérer des cadres de page de mémoire vive à d’autres fins par seconde.

    C’est le meilleur compteur à surveiller si vous pensez que la pagination est votre goulot d’étranglement de performances. Même si les Octets validés est supérieure à la mémoire RAM installée, si les Pages en sortie/s est faible ou égale à zéro la plupart du temps, il n’existe aucun problème de performances à partir de la mémoire vive est insuffisante.
  • Mémoire, octets du Cache,
    Mémoire, octets de réserve non paginée,
    Mémoire, octets de réserve paginée
    Mémoire, octets Total dans le Code système,
    Mémoire, le Total des octets dans le 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 est en réalité utilisé. Utilisez-les pour déterminer si votre système a atteint une des limites architecturales abordés décrits précédemment.
  • Mémoire, les méga-octets disponibles: ce compteur mesure la quantité de RAM est disponible pour répondre à des demandes de mémoire virtuelle (deux nouvelles allocations, ou pour restaurer une page à partir du fichier d’échange).

    Lorsque RAM est en pénurie (par exemple, octets validés est supérieure à la mémoire RAM installée), le système d’exploitation tente de conserver une certaine fraction de mémoire vive 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 d’échange. Par conséquent, ce compteur n’arrivent pas à zéro et n’est pas nécessairement une bonne indication de si votre système manque de mémoire vive.
Pour plus d’informations sur ces sujets, visitez les sites de blog et les sites Web Microsoft suivants :