Tengo problemas en uno de los servidores de mi oficina. Es un servidor virtualizado de Windows 2008 R2 con 6 GB de memoria RAM. Solo tiene Microsoft SQL Server (memoria asignada máxima = 3GB), y solo un software que no consume más de 1 GB de RAM. Sin embargo, la memoria RAM del servidor está casi llena, y mirando los procesos en el administrador de tareas no parece sumar esto. He instalado RamMap, pero no puedo interpretarlo fácilmente, ¿hay algún "alto valor" que pueda identificar?
windows-server-2008
sql-server
virtual-machines
memory
cache
Guillermo Zooby
fuente
fuente
Respuestas:
Bueno, veo ~ 3.2 gigabytes de memoria bloqueada por el controlador, que inmediatamente se destaca como sospechosa.
Este tipo de memoria, memoria bloqueada por el controlador, es memoria que ha sido bloqueada por un controlador en modo kernel. Típicamente con el propósito de transferir pequeñas cantidades de datos, generalmente por cortos períodos de tiempo.
Entonces, si tiene una gran cantidad de memoria bloqueada por el controlador, durante mucho tiempo, generalmente es una señal de que algo no está bien.
Voy a adivinar aquí y supongo que, dado que mencionó que es un servidor virtualizado, es el controlador de globo VMware el que está haciendo esto. No tengo suficientes datos para poder decirle por qué está haciendo esto, pero hay muchos casos y KB de soporte de VMware, como este , que hablan específicamente sobre el controlador del globo que retiene erróneamente grandes cantidades de memoria cuando no debería ' t be.
También debe considerar la posibilidad de que el controlador de globo se esté comportando como se diseñó, y está tratando de hacer que su servidor salga de la memoria porque necesita desesperadamente darle memoria a otra VM en el mismo host.
Existe otra posibilidad más de que no sea un controlador de memoria dinámica de hipervisor, sino un controlador de dispositivo no autorizado.
Los controladores generalmente asignan memoria que está "etiquetada" con una etiqueta de 3 o 4 caracteres que da una pista de qué conductor fue responsable de hacer la asignación.
poolmon.exe, parte del SDK / DDK de Windows, puede ayudar a diagnosticar.
Como dije, supongo, pero es lo mejor que puedo hacer con los datos que tengo.
fuente
Bueno, tengo todas las versiones imaginables de SQL Server en las instalaciones, de 2005 a 2016, y no he visto ninguna pérdida de memoria tan grande como el 100% de la memoria realmente utilizada. Vea si tiene habilitada la memoria dinámica para su máquina virtual .
Driver Locked
es una figura en la que debes concentrarte. En su caso específico,Driver Locked
es probablemente uno de los controladores de Hyper-V, que bloqueó toda la memoria no utilizada (asignada a VM, pero no utilizada por atm), por lo que puede "dársela" a alguna otra VM configurada con memoria dinámica, o incluso a host OS, lo que lo necesite en este momento. Puede probarlo abriendo un archivo grande o una aplicación de uso intensivo de memoria dentro de esa máquina virtual: la memoria DriverLocked debería disminuir a medida que aumente alguna otra métrica. En mi humilde opinión, esto no debería ser motivo de preocupación si no aprovisionó demasiado de su memoria en todas las máquinas virtuales.fuente