Fuite de mémoire 64 bits de Windows Server 2008 R2

12

J'ai des problèmes avec l'un de mes serveurs de bureau. Il s'agit d'un serveur Windows 2008 R2 virtualisé avec 6 Go de mémoire RAM. Il ne dispose que de Microsoft SQL Server (mémoire attribuée au maximum = 3 Go), et uniquement d'un logiciel qui ne consomme pas plus de 1 Go de RAM. Cependant, la mémoire RAM du serveur est presque pleine, et en regardant les processus dans le gestionnaire de tâches, ils ne semblent pas résumer cela. J'ai installé RamMap, mais je ne peux pas l'interpréter très facilement, existe-t-il une "valeur élevée" que vous pouvez identifier?

entrez la description de l'image ici

Guillermo Zooby
la source
1
Un tri par "Total" ou "Actif" aurait rendu la réponse assez évidente.
Dmitry Grigoryev

Réponses:

18

Eh bien, je vois ~ 3,2 gigaoctets de mémoire Driver Locked, qui se démarque immédiatement comme suspect.

Ce type de mémoire, la mémoire verrouillée par le pilote, est une mémoire qui a été verrouillée par un pilote en mode noyau. Généralement dans le but de transférer de petites quantités de données, généralement pour de courtes périodes.

Donc, si vous avez une grande partie de la mémoire verrouillée du pilote, pendant longtemps , c'est généralement un signe que quelque chose ne va pas.

Je vais faire une supposition folle ici et deviner que puisque vous avez mentionné qu'il s'agit d'un serveur virtualisé, que c'est le pilote de ballon VMware qui fait cela. Je n'ai pas assez de données pour pouvoir vous expliquer pourquoi, mais il existe de nombreux cas et des fichiers de support VMware, comme celui-ci , qui parlent spécifiquement du pilote de ballon qui conserve par erreur de grandes quantités de mémoire alors qu'il ne le devrait pas. t être.

Vous devez également considérer la possibilité que le pilote de ballon se comporte comme prévu, et il essaie de faire de la mémoire de votre page de serveur car il a désespérément besoin de donner de la mémoire à une autre machine virtuelle sur le même hôte.

Il existe encore une autre possibilité qu'il ne s'agit pas du tout d'un pilote de mémoire dynamique d'hyperviseur, mais plutôt d'un pilote de périphérique non autorisé.

Les pilotes allouent généralement de la mémoire «balisée» avec une balise de 3 ou 4 caractères qui donne un indice sur le pilote responsable de l'allocation.
poolmon.exe, qui fait partie du SDK / DDK de Windows, peut aider à diagnostiquer.

Comme je l'ai dit, je suppose, mais c'est le mieux que je puisse faire avec les données dont je dispose.

Ryan Ries
la source
16

Eh bien, j'ai toutes les versions imaginables de SQL Server sur site, de 2005 à 2016, et je n'ai vu aucune fuite de mémoire aussi énorme que 100% des mem réellement utilisés. Vérifiez si la mémoire dynamique de votre machine virtuelle est activée .

Driver Lockedest une figure sur laquelle vous devez vous concentrer. Dans votre cas spécifique, Driver Lockedest probablement l'un des pilotes Hyper-V, qui a verrouillé toute la mémoire inutilisée (affectée à la machine virtuelle, mais non utilisée par elle atm), afin qu'il puisse la «donner» à une autre machine virtuelle configurée avec la mémoire dynamique, ou même à hôte OS, celui qui en a besoin pour le moment. Vous pouvez le tester en ouvrant un fichier volumineux ou une application gourmande en mémoire à l'intérieur de cette machine virtuelle - la mémoire DriverLocked devrait diminuer à mesure que d'autres mesures augmentent. À mon humble avis cela ne devrait pas être une cause de préoccupation si vous ne l' avez pas surbudgétisation trop de mémoire à travers toutes les machines virtuelles.

Kitet
la source
5
Je vous ai battu de 8 secondes ... bienvenue dans Server Fault. :)
Ryan Ries
Vous l'avez fait, en effet :-)
Kitet