J'ai un serveur Windows 2003 fonctionnant un peu lentement où les frais de validation et l'utilisation du fichier d'échange remontent et remontent jusqu'à ce que je redémarre finalement. Pour résoudre ce problème, je dois découvrir ce qui consomme toute la mémoire, et c'est là que réside le grand mystère.
Statistiques actuelles du Gestionnaire des tâches:
Physical Memory (K): 2096400
Commit Charge (K): 5364848
Page file usage: 5.11 GB
Très bien, nous allons donc tirer SysInternals Process Explorer et vérifier la taille du jeu de travail de tout ce qui fonctionne. Le plus grand coupable est une instance de Tomcat utilisant 121 980 Ko WS, 481 284 Ko VM Size. Rien là-dedans ne permet d'expliquer la charge de validation de 5 Go.
Étape suivante: Sysinternals pslist : pslist -m
, divisé par la sortie sommes des colonnes et des colonnes de 61 pour calculer les processus qui sont rapportés.
SUM (Working Set) : 681,484 K
SUM (Private Bytes): 593,424 K
Suis-je fondamentalement incompris de ce que les outils rapportent? J'ai toujours eu l'impression qu'un système d'exploitation engagerait en réalité beaucoup moins de mémoire que la quantité totale de mémoire virtuelle mappée par un processus, en supposant qu'il n'utilisera jamais vraiment autant, et que regarder VM ici est un hareng rouge.