Hyper-V Performance – Parte II – Consumo de Memoria.

Continuo con esta serie de Post sobre como medir el rendimiento de nuestros Hyper-V, despues de la CPU hoy llega la memoria RAM.

 

Obviamente lo dividimos en la parte del Host de virtualización, ya sea Windows Server 2012 con el rol de Hyper-V o sea Hyper-V server 2012, y la parte de las máquinas virtuales (VMs).

 

Host.- Los principales contadores para monizar la memoria del Host son los siguientes:

 

  • \Memory\Available MBytes.- Microsoft nos recomienda monitorizar la memoria disponible de cada Host de virtualización a través de esta orquilla de valores:

0001

  • \Memory\Pages /Sec.- Con este contador monitorizaremos las páginas que se están leyendo o escribiendo en disco por segundo, para tratar de detectar errores de paginación, o sea, que tengamos un caso que el sistema operativo no dispone de mas memoria disponible y está utilizando el disco duro para volcar el resto de  memoria que necesita, con su correspondiente impacto negativo en el rendimiento.   Microsoft nos recomienda esta orquilla de valores a la hora de medir este contador:

0002

Como ejemplo, un alto número de paginas por segundo unido a una baja memoria disponible nos está indicando una falta de memoria en el servidor, obviamente.

 

Recordamos los principios básicos de la relación existente entre la memoria y la paginación a disco “a mas memoria RAM asignada a un equipo menos paginará en disco“, sin olvidarnos de que “no siempre disponemos de toda la memoria RAM que queremos y/o necesitamos”.

 

Virtual Machines.- En este caso se nos presentan dos opciones de configuración en la gestión de la memoria:

 

  • Sin memoria Dinámica configurada.- Al no tener configurada esta característica, utilizaríamos los mismos contadores que para un Host de virtualización. Volvemos al punto anterior.

 

 

  • Con memoria Dinámica configurada.- Tenemos los siguientes contadores de rendmiento:
  • \Hyper-V Dinamic Memory Balancer\Available Memory.- Este contador representa la cantidad de memoria que queda disponible en el “nodo balancer” (gestor del balanceo de memoria entre las VM cuando están configuradas con memoria dinámica), y que puede ser asignada a las VMs.

Aqui prestaremos atención a que el valor de dicho contador no esté próximo a 0, que nos indicará que el sistema está cerca del consumo del 100% de la memoria, con los consiguientes problemas de rendimiento en las mismas.

  • \Hyper-V Dinamic Memory Balancer\Physical Memory.- Este contador representa la cantidad de memoria en la VM. Es muy util para entender el consumo histórico de una VM.

Tendremos que tener cuidado de que el valor que nos da este contador no esté cerca de la memoria máxima asignada, ya que nos indicaría que este servidor está consumiendo toda su memoria RAM y, probablemente, esté paginando a disco y necesite mas.

  • \Hyper-V Dinamic Memory Balancer\Average.- Este último contador representa la presión media sobre el “nodo balancer”. Esta es la orquilla de valores recomendados:

0003

 

Por defecto en Windows Server 2012 con el rol de Hyper-V, automáticamente se fija una memoria para el Host. Para sistemas operativos anteriores, como Windows Server 2008 R2, necesitamos habilitar y configurar una entrada en el registro:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization

  • Nombre:MemoryReserve
  • Tipo: DWORD
  • Valor: Memoria a reservar en MB.

 

Dos cosas para terminar. Recordar que estos datos no son extrapolables al 100% a todos y cada uno de nuestros entornos, como ya dije en el Post anterior, son recomendaciones. Y, segundo, recordar, también, en el caso de configurar memoria dinámica a las VMs, qué parámetros tenemos que tener en cuenta:

 

Buena semana a todos,

Be Sociable, Share!
    Tagged . Bookmark the permalink.

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>