VMware Global Community
xacolabril
Expert
Expert
Jump to solution

Explicación uso de memoria

Buenas,

he estado revisando con bastante afán e intentando entender los contadores de rendimiento de una VM en relación a los consumos de memoria. Me surgen dudas.

Tengo bastante claro que:

1) Memory Granted = Memory Consumed + Shared Memory

2) Shared Memory = Memory Zero + RAM COMPARTIDA

3) Para el valor de RAM COMPARTIDA, es decir memoria compartida con otras VMs utilizando la deduplicación del Page Sharing sin tener en cuenta zonas de memoria que están a 0. creo que no hay ningún contador que indique este valor directamente.

4) El Memory Overhead no entra en estos cómputos.

5) Memory Granted = Memoria total que vemos en Windows.

6) Memory Usage (%) = (Memory Active / Memory Granted ) * 100

Mis dudas surgen aquí:

En este punto aparece la Active Memory, pero.... ?dónde entra en juego la Active Memory? ¿se trata de una zona de memoria de la Memory Consumed?

He visto también que la Shared Memory = Memoria disponible en windows, pero no entiendo bien el concepto, ya que realmente hay RAM COMPARTIDA con otroas VMs y entiendo que esta RAM se está utilizando y por lo tanto no debería estar disponible...

Viendo los dos puntos anteriores, entonces la memoria usada, que vemos en windows debería ser la Memory Consumed.

¿Qué nos indica pues Memoryr USage (%)? ¿Quizá un parámetro de trabajo de la memoria? Es decir, de la memoria consumida, hay una parte que es la memoria activa que está trabajando y de esta zona que realmente está tabajando, el Memory USage (%) nos dice el indicador de uso de la memoria?

En fin... quedan expuestas.

Saludos!

Xavier

VMware Certified Professional VCP3 and VCP4.

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other information helpful or correct, please consider awarding points. Thank you.

Xavier Colomé Abril. VMware Certified Professional VCP3, VCP4 and VCP5. [Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.] [If you find this or any other information helpful or correct, please consider awarding points. Thank you.]
Reply
0 Kudos
1 Solution

Accepted Solutions
amalanco8
VMware Employee
VMware Employee
Jump to solution

ok vamos a tratar de dejar los puntos claros,

shared memory = aquella memoria virtual (guest physical memory) que es compartida entre VMs utilizando (TPS-transparent page sharing (memoria identica) y la memoria en zeros) basicamente la mem deduplicada con tps y toda aquella de un guest que contenga zeros.

Memory Granted= es la cantidad de memoria mapeada en ese momento a dicha maquina virtual, aquí se incluye el overhead (la cantidad de memoria necesaria para virtualizar dicha vm).No es memoria garantizada, si hablaramos de "garantizar" estariamos viendo reservaciones.

Memory Active = es aquella memoria que el vmkernel ha visto teniendo actividad recientemente (lectura y escritura) por lo cual no esta en idle. El vmkernel toma estadisticas de 100 paginas cada 30 segundos.

Memory Zero= memoria con puros ceros, windows en el momento que bootea "toca" la memoria y escribe puros ceros en ella, esta memoria forma parte de la memoria compartida.

Entonces memory shared=memory zero+ TPS (esta es la seccion amarilla faltante en tu diagrama).

Esta imagen me ayudo a mi en su momento a entender este embrollo:

11638_11638.PNG

Memory granted = (VM1)contamos la cantidad de "flechas o apuntadores" que salen de los bloque de "guest physical memory" a los bloques de "machine memory", tenemos 5 flechas o 5 bloques mapeados a un bloque fisico, por ende si cada bloque es de 4KB, tenemos 20 KB de memory granted.

Memory consumed = (VM1) aca vamos a contar la cantidad de bloques mapeados, ya no contamos la cantidad de "apuntadores" sino bloques, entonces tenemos 3 bloques mapeados de la VM1 a la "machine memory" (memoria del host ESX/ESXi),pero si observamos tenemos un bloque compartido con la VM2, por lo tanto tenemos 2.5 bloques de 4KB que en total serian 10 KB.

memory shared (memoria de VMS)= Aca vamos a observar ambas maquinas VM1 y VM2, contamos todos aquellos bloques de "guest physical memory" que apuntan a un mismo bloque en "machine memory" (mem del ESX) ,entonces tenemos 6 bloques, por lo cual 6x4=24 KB compartidos, esto viene siendo al nivel de guest physical memory que basicamente es memoria virtual o de las vms.

memory shared common (memoria de ESX) = contamos la cantidad de bloques compartidos al nivel de "machine memory", tenemos 3 bloques compartidos, por lo cual la memoria compartida entre todas las vms (en este caso 1 y 2) es de 12KB. esta es la memoria compartida directamente del ESX (fisica).

El problema que tenemos con windows y el task manager esta en que cuando se inicia windows se utiliza mucha de la memoria (la llena de ceros), y en el caso que no exista contencion de recursos la memoria no se le quita a dicha vm, por lo cual podemos ver un consumo mas elevado dentro del task manager mientras que el consumo del guest en el ESX es mucho menor, ya que la memoria activa de esa vm es mucho menor

Espero haberte aclarado las dudas, este tema para mi tambien fue muy dificil de entender en su momento te recomendaria que vieras la siguiente presentación del VMworld 2008

http://www.vmworld.com/docs/DOC-2353

saludos.

If you find this information useful, please award points for "correct" / "helpful".

My blog virtualización en tu idioma

blog.hispavirt.com // virtualización en tu idioma VCDX#141

View solution in original post

Reply
0 Kudos
12 Replies
pcerda
Virtuoso
Virtuoso
Jump to solution

Hola,

La Active Memory es la memoria actualmente utilizada por la maquina virtual, al dividirla por la memoria otorgada y multiplicar el resultado por 100, da el % de la memoria utilizada de esa maquina virtual en particular.




Regards / Saludos

-


Patricio Cerda !http://www.images.wisestamp.com/linkedin.png!

VMware VCP-410

Join to Virtualizacion en Español group in Likedin

See My Blog

See My Linkedin Profile

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other answer useful please consider awarding points by marking the answer helpful or correct. Thank you.

Regards / Saludos - Patricio Cerda - vExpert 2011 / 2012 / 2013
Reply
0 Kudos
xacolabril
Expert
Expert
Jump to solution

Es lo que esperaba encontrar, pero por lo que he visto Active Memory no es lo mismo que memoria utilizada por la VM (viendo desde el task manager).

Saludos.

Xavier

VMware Certified Professional VCP3 and VCP4.

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other information helpful or correct, please consider awarding points. Thank you.

Xavier Colomé Abril. VMware Certified Professional VCP3, VCP4 and VCP5. [Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.] [If you find this or any other information helpful or correct, please consider awarding points. Thank you.]
Reply
0 Kudos
dquintana
Virtuoso
Virtuoso
Jump to solution

Hola Xacolabrill,

Pegale una mirada a este linlk, acá estan todas tus rtas. http://www.vmware.com/files/pdf/techpaper/vsp_41_perf_memory_mgmt.pdf

Active Memory is defined as the amount of guest memory that is currently being used by the guest

operating system and its applications

Abrazo






<br>Por favor no olvides calificar las respuestas que te resultaron de ayuda o fueron correctas.

Please, don't forget the awarding points for "helpful" and/or "correct" answers.

Regards/Saludos

________________________________________

Ing. Diego Quintana

VCP 410- VCP 310 - VAC - VTSP - VSP- vExpert 2010

Unete al grupo de Virtualizacion en Español en Likedin

Wetcom Group - (Web Site)

!http://www.images.wisestamp.com/linkedin.png![!http://www.images.wisestamp.com/twitter.png!|http://www.twitter.com/daquintana]

!http://feeds.feedburner.com/WetcomGroup.1.gif!

Ing. Diego Quintana - VMware Communities Moderator - Co Founder & CEO at Wetcom Group - vEXPERT From 2010 to 2020- VCP, VSP, VTSP, VAC - Twitter: @daquintana - Blog: http://www.wetcom.com-blog & http://www.diegoquintana.net - Enjoy the vmware communities !!!

Reply
0 Kudos
jose_maria_gonz
Virtuoso
Virtuoso
Jump to solution

Efectivamente, como apunta mi compañero pcerda, es la cantidad de memoria que esa VM esta usando en ese preciso instante.

Ojo que el contador en se llama si no recuerdo mal active guest memory y no active memory.

Saludos,

Jose Maria Gonzalez,

Founder and President of JmG Virtual Consulting, S.L

-


Mi empresa: JmG Virtual Consulting, S.L - Lideres y Expertos en Virtualizacion

Mi blog: El blog de Virtualizacion en Español - con Jose Maria Gonzalez.

Mi twitter: El blog de Virtualizacion en Español - con Jose Maria Gonzalez

VMware vExpert 2009, vExpert 2010, VCI, VCP4, VCP3, VCP2, RHCE, MCSE

Autor del libro <a href="http://www.lulu.com/product/tapa-blanda/101-secretos-de-vmware-vsphere/6345031" target="_blank">101 Secretos de VMware vSphere</a>

Autor del libro VMware ESX y VMware VCP Hecho Fácil

-


If you find this or any other answer useful please consider awarding points by marking the answer helpful or correct.

<a href="http://feedproxy.google.com/ElBlogDeVirtualizacionEnEspanol">!http://feedproxy.google.com/ElBlogDeVirtualizacionEnEspanol.2.gif!</a>

Reply
0 Kudos
xacolabril
Expert
Expert
Jump to solution

En mi caso con ESX 3.5 el contador parece llamarse "Active Memory (KB)"...

¿Es posible obtener este valor de algún contador de Windows?

Saludos.

Xavier

VMware Certified Professional VCP3 and VCP4.

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other information helpful or correct, please consider awarding points. Thank you.

Xavier Colomé Abril. VMware Certified Professional VCP3, VCP4 and VCP5. [Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.] [If you find this or any other information helpful or correct, please consider awarding points. Thank you.]
Reply
0 Kudos
amalanco8
VMware Employee
VMware Employee
Jump to solution

Que tal Xacolabril, para obtener los valores de active memory utiliza "perfmon" de windows solo que para que puedas observar los valores reales y correctos necesitas agregar contadores de las VMware tools, en el momento que las instalas se te crean estos contadores que inician con "VM .." mira:

If you find this information useful, please award points for "correct" / "helpful".

My blog virtualización en tu idioma

blog.hispavirt.com // virtualización en tu idioma VCDX#141
Reply
0 Kudos
xacolabril
Expert
Expert
Jump to solution

Gracias, pero en mi caso tengo ESX 3.5 y las tools parece que no traen los contadores...

Saludos.

Xavier

VMware Certified Professional VCP3 and VCP4.

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other information helpful or correct, please consider awarding points. Thank you.

Xavier Colomé Abril. VMware Certified Professional VCP3, VCP4 and VCP5. [Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.] [If you find this or any other information helpful or correct, please consider awarding points. Thank you.]
Reply
0 Kudos
amalanco8
VMware Employee
VMware Employee
Jump to solution

que tal, ¿Que valor requieres? el que el sistema operativo te reporta o el del vmkernel?, en el caso del OS en perfmon tambien tenemos los contadores propios de Windows para la memoria activa. Si tu lo que necesitas es saber el valor real de la memoria activa con respecto al ESX(i), con esxtop lo puedes hacer sin problemas, simplemente ve a la vista de memoria "ingresando la tecla m", despues solo ingresamos la tecla "f" para habilitar ciertos campos asegurate que tengas el campo ACTV habilitado:

Una vez que lo activaste regresas a la vista de los contadores y ya tendras el valor de "TCHD" , este te dirá cual es el calculo aprox de la memoria utilizada por dicha vm:

Espero te sea de ayuda.

saludos.

If you find this information useful, please award points for "correct" / "helpful".

My blog virtualización en tu idioma

blog.hispavirt.com // virtualización en tu idioma VCDX#141
Reply
0 Kudos
xacolabril
Expert
Expert
Jump to solution

No, simplemente me gustaría entender cómo funcionan los parámetros de memoria. Es decir, todos los parámetros aparecen de algún lado y muchos de ellos deben estar relacionados de alguna manera.

Según he podido entender, el tema sería el siguiente:

Memory Granted = Memoria garantizada a la VM, que en teoría corresponde a la memoria asignada a la VM y que podemos ver desde el taskmanager.

Memory Zero + = a la Shared Memory. Pero qué es la zona amarilla exactamente? Memoria compartida que no están todos sus bits a 0? Es decir, compartida con otras VMs que tengan páginas de memoria idènticas a esta VM?

La shared memory, he leído que es la memoria disponiuble a nivel de task manager de windows, pero, realmente es asi???

Shared Memory + Memory Consumed = Memory Granted. Esto si sumamos, da bien.

Si la shared Memory es la memoria disponible, entonces la Memory Consumed debería ser la Memory used a nivel de Task Manageer, pero a veces no corresponde de esa manera...

La active Memory? Es una zona de la Memory Consumed? y la otra parte? es decir, la Memory Consumed - Memory Active? Qué es? Memoria consumida por la VM pero que realmente no se está utilizando?

Estas son mis dudas....

Saludos.

Xavier

VMware Certified Professional VCP3 and VCP4.

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other information helpful or correct, please consider awarding points. Thank you.

Xavier Colomé Abril. VMware Certified Professional VCP3, VCP4 and VCP5. [Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.] [If you find this or any other information helpful or correct, please consider awarding points. Thank you.]
Reply
0 Kudos
amalanco8
VMware Employee
VMware Employee
Jump to solution

ok vamos a tratar de dejar los puntos claros,

shared memory = aquella memoria virtual (guest physical memory) que es compartida entre VMs utilizando (TPS-transparent page sharing (memoria identica) y la memoria en zeros) basicamente la mem deduplicada con tps y toda aquella de un guest que contenga zeros.

Memory Granted= es la cantidad de memoria mapeada en ese momento a dicha maquina virtual, aquí se incluye el overhead (la cantidad de memoria necesaria para virtualizar dicha vm).No es memoria garantizada, si hablaramos de "garantizar" estariamos viendo reservaciones.

Memory Active = es aquella memoria que el vmkernel ha visto teniendo actividad recientemente (lectura y escritura) por lo cual no esta en idle. El vmkernel toma estadisticas de 100 paginas cada 30 segundos.

Memory Zero= memoria con puros ceros, windows en el momento que bootea "toca" la memoria y escribe puros ceros en ella, esta memoria forma parte de la memoria compartida.

Entonces memory shared=memory zero+ TPS (esta es la seccion amarilla faltante en tu diagrama).

Esta imagen me ayudo a mi en su momento a entender este embrollo:

11638_11638.PNG

Memory granted = (VM1)contamos la cantidad de "flechas o apuntadores" que salen de los bloque de "guest physical memory" a los bloques de "machine memory", tenemos 5 flechas o 5 bloques mapeados a un bloque fisico, por ende si cada bloque es de 4KB, tenemos 20 KB de memory granted.

Memory consumed = (VM1) aca vamos a contar la cantidad de bloques mapeados, ya no contamos la cantidad de "apuntadores" sino bloques, entonces tenemos 3 bloques mapeados de la VM1 a la "machine memory" (memoria del host ESX/ESXi),pero si observamos tenemos un bloque compartido con la VM2, por lo tanto tenemos 2.5 bloques de 4KB que en total serian 10 KB.

memory shared (memoria de VMS)= Aca vamos a observar ambas maquinas VM1 y VM2, contamos todos aquellos bloques de "guest physical memory" que apuntan a un mismo bloque en "machine memory" (mem del ESX) ,entonces tenemos 6 bloques, por lo cual 6x4=24 KB compartidos, esto viene siendo al nivel de guest physical memory que basicamente es memoria virtual o de las vms.

memory shared common (memoria de ESX) = contamos la cantidad de bloques compartidos al nivel de "machine memory", tenemos 3 bloques compartidos, por lo cual la memoria compartida entre todas las vms (en este caso 1 y 2) es de 12KB. esta es la memoria compartida directamente del ESX (fisica).

El problema que tenemos con windows y el task manager esta en que cuando se inicia windows se utiliza mucha de la memoria (la llena de ceros), y en el caso que no exista contencion de recursos la memoria no se le quita a dicha vm, por lo cual podemos ver un consumo mas elevado dentro del task manager mientras que el consumo del guest en el ESX es mucho menor, ya que la memoria activa de esa vm es mucho menor

Espero haberte aclarado las dudas, este tema para mi tambien fue muy dificil de entender en su momento te recomendaria que vieras la siguiente presentación del VMworld 2008

http://www.vmworld.com/docs/DOC-2353

saludos.

If you find this information useful, please award points for "correct" / "helpful".

My blog virtualización en tu idioma

blog.hispavirt.com // virtualización en tu idioma VCDX#141
Reply
0 Kudos
xacolabril
Expert
Expert
Jump to solution

Gracias, parece que es lo que andaba buscando.

Saludos.

Xavier

VMware Certified Professional VCP3 and VCP4.

-


Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.

If you find this or any other information helpful or correct, please consider awarding points. Thank you.

Xavier Colomé Abril. VMware Certified Professional VCP3, VCP4 and VCP5. [Si encuentras que esta o cualquier otra respuesta ha sido de utilidad, vótalas. Gracias.] [If you find this or any other information helpful or correct, please consider awarding points. Thank you.]
Reply
0 Kudos
amalanco8
VMware Employee
VMware Employee
Jump to solution

Excelente, espero sea de ayuda Smiley Wink

saludos.

If you find this information useful, please award points for "correct" / "helpful".

My blog virtualización en tu idioma

blog.hispavirt.com // virtualización en tu idioma VCDX#141
Reply
0 Kudos