Je dois commenter les commentaires de la question, en particulier la confusion entre "table de page" et "fichier de page". Ce n'est pas une réponse mais cela ne rentrera pas dans l'espace autorisé pour les commentaires.
Le "tableau des pages" est en effet très différent du fichier d'échange. L'utilisation de n Mo de RAM pour les tables de pages ne signifie pas que vous utilisez n Mo d'espace de fichier d'échange. Et bien que certaines entrées de table de pages (PTE, qui sont les tables de pages) se réfèrent au contenu du fichier d'échange, toutes ne le font pas.
Les tables de pages sont des structures en mémoire qui sont utilisées par la MMU du CPU pour effectuer la traduction d'adresses à partir d'adresses virtuelles (encore une fois, pas le fichier d'échange) vers des adresses physiques, et par le système d'exploitation pour garder une trace de l'espace d'adressage virtuel et aider à résoudre les erreurs de page. Les tables de pages se composent d'entrées de table de pages (PTE). Chaque PTE occupe 8 octets et définit 4K octets d'espace d'adressage virtuel - c'est-à-dire une page virtuelle. Il y a, en gros, un PTE pour chaque page non libre d'espace d'adressage virtuel.
Soit dit en passant, bien que le fichier d'échange puisse subir une fragmentation à la fois externe et interne (le premier n'est généralement pas un gros problème; le second peut être amélioré en le rendant environ quatre fois plus gros qu'il doit l'être), les tableaux de pages ne le peuvent pas. Ils sont déjà en quelque sorte toujours fragmentés, et cela n'a aucune importance.
Chaque PTE a un bit "valide". Pour les pages "valides", alias "résidentes", le PTE contient le numéro de page physique qui correspond au numéro de page virtuel associé au PTE; il est utilisé directement par la MMU.
Pour les pages "invalides", la MMU soulève un défaut de page et le PTE a alors de nombreux formats et interprétations possibles.
Remarque: tout ce qui précède s'applique à tout système d'exploitation qui permet la pagination sur x86 / x64. Les éléments suivants sont largement spécifiques à Windows, mais de nombreux concepts s'appliquent à d'autres systèmes d'exploitation, avec des différences dans les détails de mise en œuvre.
Pour une page dans le cache de pages, le PTE contient toujours le numéro de page physique. Pour les pages qui ont été perdues de RAM et écrites dans le fichier d'échange, le PTE contient le numéro de fichier d'échange et le décalage dans le fichier d'échange où le contenu de la page a été écrit. D'autres contenus PTE possibles sont des références à des descripteurs d'adresses virtuelles , des références à des "prototypes PTE", des références à exiger zéro page, etc., dans lesquelles je ne vais pas entrer. Il suffit de dire que seuls certains des PTE se réfèrent à des emplacements dans les fichiers d'échange.
Je mentionne tout cela principalement pour montrer que le fichier d'échange et les tableaux de pages, bien que liés, ne sont certainement pas la même chose.
Les tableaux de pages sont organisés en arborescence. Il existe une telle arborescence, ou collection de tables de pages, différente pour chaque processus - c'est ce qui permet à chaque processus de définir sa propre instance d'espace d'adressage virtuel. La table des pages à la racine de l'arborescence doit toujours être en RAM. Les autres sont paginables; elles sont même inexistantes où elles correspondraient à de grandes régions (minimum de 2 Mo) d'espace d'adressage virtuel non défini ou libre.
Les entrées de table de pages dans les tables aux "feuilles" de l'arborescence correspondent à des pages d'espace d'adressage virtuel. Les PTE dans les tables de niveau supérieur - celles les plus proches de la racine (et la racine elle-même) - indiquent où se trouvent les tables de niveau inférieur suivantes (si elles existent).
Le nombre affiché par RAMmap est la mémoire physique (RAM) occupée par toutes les tables de pages résidentes (en RAM) pour tous les processus plus le système d'exploitation.
Ce qui est important ici, c'est que le système de l'OQ avait 2,5 Go de RAM liés à des tables de pages. Cela signifie qu'au moins 2,5 Go de tables de pages sont définis. Étant donné que les tableaux de pages sont eux-mêmes paginables, la taille virtuelle pourrait être beaucoup plus grande que la taille physique, ce que tout RAMmap peut nous montrer. Mais supposons que ce soit "seulement" 2,5 Go. À huit octets par PTE, cela représente environ 320 millions de PTE. Étant donné que chaque PTE définit une page - 4K octets - d'espace d'adressage virtuel, cela signifie que plus de 1,2 téraoctets d'espace d'adressage virtuel sont définis par des tables de pages en mémoire .
Ce n'est pas impossible mais c'est beaucoup.
Pour référence, sur mon système d'atmosphère, j'ai environ 125 Mo de RAM dans les tables de pages. Cela n'indiquerait qu'environ 65 Go d'espace d'adressage virtuel. Mon utilisation virtuelle réelle est beaucoup plus élevée (125 To uniquement pour les processus) mais c'est parce que la plupart des tables de pages ne sont pas en RAM. Les "grandes pages", une autre chose que je ne devrais pas aborder ici, peuvent également aider à expliquer les différents rapports entre la taille des tables de pages et la taille de l'espace d'adressage virtuel utilisé.
Donc: pour trouver le coupable, j'irais d'abord chercher dans l'Analyseur de performances sous la catégorie Processus pour les processus avec une valeur de compteur "Virtual Bytes" élevée.