{"id":35292,"date":"2019-10-31T22:03:28","date_gmt":"2019-10-31T19:03:28","guid":{"rendered":"https:\/\/prohoster.info\/blog\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory\/"},"modified":"2019-10-31T22:03:28","modified_gmt":"2019-10-31T19:03:28","slug":"analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","title":{"rendered":"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/be3cfe4d8ff6491b5e32a247b996ded3.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/452884\/\">Parte 1. Sobre la CPU<\/a><\/noindex><\/p>\n<p>En este art\u00edculo hablaremos sobre los contadores de rendimiento de la memoria RAM en vSphere.<br \/>\nParece que con la memoria es todo m\u00e1s claro que con el procesador: si hay problemas de rendimiento en una VM, es dif\u00edcil no notarlos. Pero cuando aparecen, es mucho m\u00e1s complicado solucionarlos. Pero vayamos por partes. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Un poco de teor\u00eda<\/h3>\n<p>\nLa memoria RAM de las m\u00e1quinas virtuales proviene de la memoria del servidor en el que operan las VMs. Esto es bastante obvio :). Si el servidor no tiene suficiente memoria RAM para todos los que la necesitan, ESXi comienza a aplicar t\u00e9cnicas de optimizaci\u00f3n del uso de la memoria (t\u00e9cnicas de recuperaci\u00f3n de memoria). De lo contrario, los sistemas operativos de las VMs fallar\u00edan debido a errores de acceso a la RAM. <\/p>\n<p>Qu\u00e9 t\u00e9cnicas aplica ESXi depende de la carga de la memoria RAM:<\/p>\n<p><b>Estado de la memoria<\/b><\/p>\n<p><b>L\u00edmite<\/b><\/p>\n<p><b>Acciones<\/b><\/p>\n<p>Alto<\/p>\n<p>400% de minFree<\/p>\n<p>Despu\u00e9s de alcanzar el l\u00edmite superior, las grandes p\u00e1ginas de memoria se dividen en peque\u00f1as (TPS funciona en modo est\u00e1ndar).<\/p>\n<p>Limpiar<\/p>\n<p>100% de minFree<\/p>\n<p>Las grandes p\u00e1ginas de memoria se dividen en peque\u00f1as, TPS funciona forzosamente.<\/p>\n<p>Soft<\/p>\n<p>64% de minFree<\/p>\n<p>TPS + Balloon<\/p>\n<p>Duro<\/p>\n<p>32% de minFree<\/p>\n<p>TPS + Comprimir + Intercambiar<\/p>\n<p>Bajo<\/p>\n<p>16% de minFree<\/p>\n<p>Comprimir + Intercambiar + Bloquear<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2015\/03\/02\/what-happens-at-which-vsphere-memory-state\/\">Fuente<\/a><\/noindex> <\/p>\n<p>minFree es la memoria RAM necesaria para el funcionamiento del hipervisor. <\/p>\n<p>Hasta ESXi 4.1 inclusive, minFree por defecto era fijo: 6% de la capacidad de memoria RAM del servidor (el porcentaje se pod\u00eda cambiar a trav\u00e9s de la opci\u00f3n Mem.MinFreePct en ESXi). En versiones posteriores, debido al aumento en las capacidades de memoria en los servidores, minFree empez\u00f3 a calcularse en funci\u00f3n de la capacidad de memoria del host, en lugar de como un valor porcentual fijo. <\/p>\n<p>El valor de minFree (por defecto) se calcula de la siguiente manera:<\/p>\n<p><b>Porcentaje de memoria reservado para minFree<\/b><\/p>\n<p><b>Rango de memoria<\/b><\/p>\n<p>6%<\/p>\n<p>0-4 GB<\/p>\n<p>4%<\/p>\n<p>4-12 GB<\/p>\n<p>2%<\/p>\n<p>12-28 GB<\/p>\n<p>1%<\/p>\n<p>Memoria restante<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2013\/06\/14\/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up\/\">Fuente<\/a><\/noindex><\/p>\n<p>Por ejemplo, para un servidor con 128 GB de RAM, el valor de MinFree ser\u00e1 el siguiente:<br \/>\nMinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB <br \/>\nEl valor real puede diferir en un par de cientos de MB, esto depende del servidor y la memoria RAM.<\/p>\n<p><b>Porcentaje de memoria reservado para minFree<\/b><\/p>\n<p><b>Rango de memoria<\/b><\/p>\n<p><b>Valor para 128 GB<\/b><\/p>\n<p>6%<\/p>\n<p>0-4 GB<\/p>\n<p>245,76 MB<\/p>\n<p>4%<\/p>\n<p>4-12 GB<\/p>\n<p>327,68 MB<\/p>\n<p>2%<\/p>\n<p>12-28 GB<\/p>\n<p>327,68 MB<\/p>\n<p>1%<\/p>\n<p>Memoria restante (100 GB)<\/p>\n<p>1024 MB<\/p>\n<p>\nGeneralmente, para entornos de producci\u00f3n solo se considera normal el estado Alto. Para entornos de pruebas y desarrollo, los estados Limpiar\/Suave pueden ser aceptables. Si la memoria RAM en el host queda por debajo del 64% de MinFree, las VMs que operan en \u00e9l seguramente experimentar\u00e1n problemas de rendimiento.<\/p>\n<p>En cada estado se aplican ciertas t\u00e9cnicas de reclamaci\u00f3n de memoria, comenzando con TPS, que pr\u00e1cticamente no afecta el rendimiento de la VM, y terminando con swapping. Hablar\u00e9 de ellas con m\u00e1s detalle. <\/p>\n<p><b>Transparent Page Sharing (TPS).<\/b> TPS es, en t\u00e9rminos simples, deduplicaci\u00f3n de p\u00e1ginas de memoria RAM de m\u00e1quinas virtuales en el servidor.<\/p>\n<p>ESXi busca p\u00e1ginas de memoria RAM id\u00e9nticas de m\u00e1quinas virtuales, calculando y comparando el hash de las p\u00e1ginas, y elimina las duplicadas, reemplaz\u00e1ndolas por enlaces a la misma p\u00e1gina en la memoria f\u00edsica del servidor. Como resultado, el consumo de memoria f\u00edsica se reduce y se puede lograr cierta sobreasignaci\u00f3n de memoria pr\u00e1cticamente sin disminuir el rendimiento.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/c36972169fea245fd1298b03ebf471d2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.vladan.fr\/vmware-transparent-page-sharing-tps-explained\/\">Fuente<\/a><\/noindex><\/p>\n<p>Este mecanismo solo funciona para p\u00e1ginas de memoria de 4 KB (p\u00e1ginas peque\u00f1as). El hipervisor ni siquiera intenta deduplicar p\u00e1ginas de 2 MB (p\u00e1ginas grandes): la probabilidad de encontrar p\u00e1ginas id\u00e9nticas de ese tama\u00f1o no es alta.<\/p>\n<p>Por defecto, ESXi asigna memoria a las p\u00e1ginas grandes. La fragmentaci\u00f3n de p\u00e1ginas grandes en peque\u00f1as comienza al alcanzar un umbral de estado Alto y ocurre de forma forzosa cuando se alcanza el estado Claro (ver tabla de estados del hipervisor).<\/p>\n<p>Si desea que TPS comience a funcionar sin esperar a llenar la memoria RAM del host, debe establecer el valor en las Opciones Avanzadas de ESXi <i>\u201cMem.AllocGuestLargePage\u201d<\/i> en 0 (por defecto 1). Entonces, la asignaci\u00f3n de grandes p\u00e1ginas de memoria para m\u00e1quinas virtuales se desactivar\u00e1.<\/p>\n<p>Desde diciembre de 2014, en todos los lanzamientos de ESXi, TPS entre VMs est\u00e1 desactivado por defecto, ya que se encontr\u00f3 una vulnerabilidad que te\u00f3ricamente permite acceder a la memoria RAM de otra VM desde una. M\u00e1s detalles aqu\u00ed. No he encontrado informaci\u00f3n sobre la implementaci\u00f3n pr\u00e1ctica de la explotaci\u00f3n de la vulnerabilidad TPS.<\/p>\n<p>La pol\u00edtica TPS se controla a trav\u00e9s de la opci\u00f3n avanzada <i>\u201cMem.ShareForceSalting\u201d<\/i> en ESXi:<br \/>\n0 \u2014 TPS inter-VM. TPS funciona para p\u00e1ginas de diferentes VMs;<br \/>\n1 \u2013 TPS para VMs con el mismo valor de \u201csched.mem.pshare.salt\u201d en VMX;<br \/>\n2 (por defecto) \u2013 TPS intra-VM. TPS funciona para p\u00e1ginas dentro de la VM.<\/p>\n<p>Sin duda, tiene sentido desactivar las p\u00e1ginas grandes e incluir TPS inter-VM en bancos de pruebas. Tambi\u00e9n se puede utilizar para entornos con un gran n\u00famero de VMs similares. Por ejemplo, en entornos con VDI, el ahorro de memoria f\u00edsica puede alcanzar d\u00e9cimas de porcentaje. <\/p>\n<p><b>Memory Ballooning.<\/b> El Ballooning ya no es tan inofensivo y transparente para el sistema operativo de las m\u00e1quinas virtuales como lo es TPS. Pero con un uso adecuado, se puede convivir e incluso trabajar con Ballooning.<\/p>\n<p>Junto con Vmware Tools, se instala un controlador especial en la m\u00e1quina virtual, llamado Balloon Driver (tambi\u00e9n conocido como vmmemctl). Cuando al hipervisor le falta memoria f\u00edsica y entra en estado Soft, ESXi solicita a la m\u00e1quina virtual que devuelva la memoria RAM no utilizada a trav\u00e9s de este Balloon Driver. A su vez, el controlador opera a nivel del sistema operativo y solicita memoria libre de este. El hipervisor ve qu\u00e9 p\u00e1ginas de memoria f\u00edsica ha ocupado el Balloon Driver, toma memoria de la m\u00e1quina virtual y la devuelve al host. No hay problemas en el funcionamiento del sistema operativo, ya que a nivel del sistema operativo la memoria est\u00e1 ocupada por el Balloon Driver. Por defecto, el Balloon Driver puede reclamar hasta el 65% de la memoria de la m\u00e1quina virtual.<\/p>\n<p>Si no est\u00e1n instalados VMware Tools en la m\u00e1quina virtual o si se desactiva el Ballooning (no lo recomiendo, pero existe <noindex><a rel=\"nofollow\" href=\"https:\/\/kb.vmware.com\/s\/article\/1002586\">KB<\/a><\/noindex>:), el hipervisor inmediatamente recurre a t\u00e9cnicas m\u00e1s dr\u00e1sticas para la reclamaci\u00f3n de memoria. Conclusi\u00f3n: aseg\u00farate de que VMware Tools est\u00e9n instalados en la m\u00e1quina virtual.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/884df6a7f5610d9bb372a7c34558f280.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Se puede verificar el funcionamiento del Balloon Driver desde el sistema operativo a trav\u00e9s de VMware Tools.<\/i>.<\/p>\n<p><b>Compresi\u00f3n de Memoria.<\/b> Esta t\u00e9cnica se aplica cuando ESXi alcanza el estado Hard. Como indica el nombre, ESXi intenta comprimir p\u00e1ginas de 4 Kbytes de memoria RAM a 2 Kbytes y as\u00ed liberar un poco de espacio en la memoria f\u00edsica del servidor. Esta t\u00e9cnica aumenta significativamente el tiempo de acceso al contenido de las p\u00e1ginas de memoria de la m\u00e1quina virtual, ya que la p\u00e1gina debe descomprimirse previamente. A veces, no todas las p\u00e1ginas se pueden comprimir, y el propio proceso lleva cierto tiempo. Por lo tanto, en la pr\u00e1ctica, esta t\u00e9cnica no es muy efectiva.<\/p>\n<p><b>Intercambio de Memoria.<\/b> Despu\u00e9s de una breve fase de Compresi\u00f3n de Memoria, ESXi pr\u00e1cticamente inevitablemente (si las m\u00e1quinas virtuales no se han trasladado a otros hosts o no se han apagado) pasa al intercambio. Y si queda muy poca memoria (estado Bajo), el hipervisor tambi\u00e9n deja de asignar p\u00e1ginas de memoria a la m\u00e1quina virtual, lo que puede causar problemas en los sistemas operativos invitados de la m\u00e1quina virtual.<\/p>\n<p>As\u00ed es como funciona el Swapping. Al encender la m\u00e1quina virtual, se crea un archivo con la extensi\u00f3n .vswp. Su tama\u00f1o es igual a la memoria RAM no reservada de la VM: esta es la diferencia entre la memoria configurada y la reservada. Durante el proceso de Swapping, ESXi descarga las p\u00e1ginas de memoria de la m\u00e1quina virtual a este archivo y comienza a trabajar con \u00e9l en lugar de con la memoria f\u00edsica del servidor. Por supuesto, esta \"memoria RAM\" es varios \u00f3rdenes de magnitud m\u00e1s lenta que la real, incluso si .vswp est\u00e1 en un almacenamiento r\u00e1pido.<\/p>\n<p>A diferencia del Ballooning, cuando se quitan p\u00e1ginas no utilizadas de la VM, en el Swapping pueden trasladarse al disco p\u00e1ginas que est\u00e1n siendo utilizadas activamente por el sistema operativo o aplicaciones dentro de la VM. Como resultado, el rendimiento de la VM disminuye incluso hasta colapsar. La VM sigue funcionando formalmente y al menos se puede apagar correctamente desde el sistema operativo. Si tienes paciencia \ud83d\ude09<\/p>\n<p>Si la VM ha sido desplazada a Swap, esta es una situaci\u00f3n an\u00f3mala que es mejor evitar si es posible.<\/p>\n<h3>Principales contadores de rendimiento de la memoria de la m\u00e1quina virtual<\/h3>\n<p>\nAqu\u00ed llegamos a lo importante. Para monitorear el estado de la memoria en la VM, existen los siguientes contadores:<\/p>\n<p><b>Activo<\/b> \u2014 muestra la cantidad de memoria RAM (KB) a la que la VM tuvo acceso en el per\u00edodo de medici\u00f3n anterior.<\/p>\n<p><b>Uso<\/b> \u2014 lo mismo que Activo, pero en porcentaje de la memoria RAM configurada de la VM. Se calcula con la siguiente f\u00f3rmula: activo \u00f7 tama\u00f1o de memoria configurada de la m\u00e1quina virtual.<br \/>\nUn alto Uso y Activo, respectivamente, no siempre son indicadores de problemas de rendimiento en la VM. Si la VM est\u00e1 utilizando la memoria de manera agresiva (como m\u00ednimo, accediendo a ella), no significa que falte memoria. M\u00e1s bien, es motivo para investigar qu\u00e9 est\u00e1 ocurriendo en el sistema operativo.<br \/>\nHay una alarma est\u00e1ndar por Uso de Memoria para la VM:<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/073132b332da79be15e3bedf2c66cf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Compartido<\/b> \u2014 cantidad de memoria RAM de la VM, deduplicada mediante TPS (dentro de la VM o entre VMs).<\/p>\n<p><b>Concedido<\/b> \u2014 cantidad de memoria f\u00edsica del host (KB) que se ha asignado a la VM. Incluye Compartida.<\/p>\n<p><b>Consumido<\/b> (Concedido \u2014 Compartido) \u2014 cantidad de memoria f\u00edsica (KB) que la VM consume del host. No incluye Compartida.<\/p>\n<p>Si parte de la memoria de la VM se asigna no desde la memoria f\u00edsica del host, sino desde un archivo de intercambio o se retira de la VM mediante el Driver de Balloon, esta cantidad no se tiene en cuenta en Concedido y Consumido.<br \/>\nLos altos valores de Granted y Consumed son totalmente normales. El sistema operativo gradualmente retira memoria del hipervisor y no la devuelve. Con el tiempo, en una VM activamente operativa, los valores de estos contadores se acercan al volumen de memoria configurada y permanecen all\u00ed.<\/p>\n<p><b>Cero<\/b> \u2014 el volumen de memoria RAM de la VM (Kbytes) que contiene ceros. Esta memoria es considerada libre por el hipervisor y puede ser asignada a otras m\u00e1quinas virtuales. Despu\u00e9s de que el sistema operativo invitado haya escrito algo en la memoria nulificada, esta se convierte en Consumed y ya no se devuelve.<\/p>\n<p><b>Reserved Overhead<\/b> \u2014 el volumen de memoria RAM de la VM (Kbytes) reservado por el hipervisor para la operaci\u00f3n de la VM. Es un volumen peque\u00f1o, pero debe estar disponible en el host; de lo contrario, la VM no se iniciar\u00e1.<\/p>\n<p><b>Balloon<\/b> \u2014 el volumen de memoria RAM (Kbytes) extra\u00eddo de la VM mediante el Balloon Driver.<\/p>\n<p><b>Compressed<\/b> \u2014 el volumen de memoria RAM (Kbytes) que se ha logrado comprimir.<\/p>\n<p><b>Swapped<\/b> \u2014 el volumen de memoria RAM (Kbytes) que, por falta de memoria f\u00edsica en el servidor, ha sido trasladado al disco.<br \/>\nBalloon y otros contadores de t\u00e9cnicas de recuperaci\u00f3n de memoria son iguales a cero.<\/p>\n<p>As\u00ed es como se ve el gr\u00e1fico con los contadores de una VM funcionando correctamente con 150 GB de RAM.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/4c361a407581b24fc042c91a6d76aa68.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEn el gr\u00e1fico a continuaci\u00f3n, la VM presenta claros problemas. Debajo del gr\u00e1fico se puede ver que para esta VM se han utilizado todas las t\u00e9cnicas descritas para la gesti\u00f3n de la memoria. Balloon es significativamente mayor que Consumed para esta VM. De hecho, la VM est\u00e1 m\u00e1s muerta que viva. <\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/fcc8f196fc7d158e82de4737c5ebe776.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>ESXTOP<\/h3>\n<p>\nAl igual que con la CPU, si queremos evaluar r\u00e1pidamente la situaci\u00f3n en el host, as\u00ed como su din\u00e1mica en intervalos de hasta 2 segundos, se recomienda utilizar ESXTOP.<\/p>\n<p>La pantalla de ESXTOP para la memoria se activa con la tecla \"m\" y se ve de la siguiente manera (se seleccionaron los campos B,D,H,J,K,L,O):<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/27383c357fb351bbe8353abf3b08171e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLos siguientes par\u00e1metros ser\u00e1n interesantes para nosotros: <\/p>\n<p><b>Mem overcommit avg<\/b> \u2014 el valor promedio de sobreasignaci\u00f3n de memoria en el host durante 1, 5 y 15 minutos. Si est\u00e1 por encima de cero, es un motivo para examinar qu\u00e9 est\u00e1 sucediendo, aunque no siempre indica la presencia de problemas.<\/p>\n<p>En las l\u00edneas <b>PMEM\/MB<\/b> y <b>VMKMEM\/MB<\/b> \u2014 informaci\u00f3n sobre la memoria f\u00edsica del servidor y la memoria disponible para VMkernel. Aqu\u00ed se puede ver el valor minfree (en MB), el estado de la memoria del host (en nuestro caso, alto).<\/p>\n<p>En la l\u00ednea <b>NUMA\/MB<\/b> se puede ver la distribuci\u00f3n de la memoria RAM entre los nodos NUMA (z\u00f3calos). En este ejemplo, la distribuci\u00f3n es desigual, lo cual no es muy bueno en general.<\/p>\n<p>A continuaci\u00f3n se presenta la estad\u00edstica general del servidor sobre las t\u00e9cnicas de recuperaci\u00f3n de memoria:<\/p>\n<p><b>PSHARE\/MB<\/b> \u2014 es la estad\u00edstica de TPS;<\/p>\n<p><b>SWAP\/MB<\/b> \u2014 estad\u00edstica del uso de Swap;<\/p>\n<p><b>ZIP\/MB<\/b> \u2014 estad\u00edstica de compresi\u00f3n de p\u00e1ginas de memoria;<\/p>\n<p><b>MEMCTL\/MB<\/b> \u2014 estad\u00edstica del uso del Balloon Driver.<\/p>\n<p>Para cada VM, puede interesarnos la siguiente informaci\u00f3n. He ocultado los nombres de las VMs para no confundir a la audiencia:). Si la m\u00e9trica ESXTOP es an\u00e1loga al contador en vSphere, indico el contador correspondiente. <\/p>\n<p><b>MEMSZ<\/b> \u2014 el volumen de memoria configurado en la VM (MB).<br \/>\nMEMSZ = GRANT + MCTLSZ + SWCUR + untouched.<\/p>\n<p><b>GRANT<\/b> \u2014 Granted en megabytes.<\/p>\n<p><b>TCHD<\/b> \u2014 Activo en megabytes.<\/p>\n<p><b>MCTL?<\/b> \u2014 si est\u00e1 instalado el Balloon Driver en la VM.<\/p>\n<p><b>MCTLSZ<\/b> \u2014 Balloon en megabytes.<\/p>\n<p><b>MCTLGT<\/b> \u2014 cantidad de RAM (megabytes) que ESXi desea recuperar de la VM a trav\u00e9s del Balloon Driver (Memctl Target).<\/p>\n<p><b>MCTLMAX<\/b> \u2014 cantidad m\u00e1xima de RAM (megabytes) que ESXi puede recuperar de la VM a trav\u00e9s del Balloon Driver.<\/p>\n<p><b>SWCUR<\/b> \u2014 cantidad actual de RAM (megabytes) asignada a la VM desde el archivo de Swap. <\/p>\n<p><b>SWGT<\/b> \u2014 cantidad de RAM (megabytes) que ESXi desea asignar a la VM desde el archivo de Swap (Swap Target).<\/p>\n<p>Tambi\u00e9n a trav\u00e9s de ESXTOP se puede ver informaci\u00f3n m\u00e1s detallada sobre la topolog\u00eda NUMA de la VM. Para esto, se deben seleccionar los campos D,G:<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/3fde4ab9d54c709f66313020437255c2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>NHN<\/b> \u2013 nodos NUMA donde se encuentra la VM. Aqu\u00ed se pueden notar inmediatamente VMs amplias que no caben en un solo nodo NUMA.<\/p>\n<p><b>NRMEM<\/b> \u2013 cu\u00e1ntos megabytes de memoria toma la VM de un nodo NUMA remoto.<\/p>\n<p><b>NLMEM<\/b> \u2013 cu\u00e1ntos megabytes de memoria toma la VM de un nodo NUMA local.<\/p>\n<p><b>N%L<\/b> \u2013 porcentaje de memoria de la VM en el nodo NUMA local (si es menos del 80% \u2014 pueden surgir problemas de rendimiento).<\/p>\n<h3>Memoria en el hipervisor<\/h3>\n<p>\nSi los contadores de CPU en el hipervisor generalmente no representan un gran inter\u00e9s, la situaci\u00f3n con la memoria es diferente. Un alto uso de memoria en la VM no siempre indica un problema de rendimiento, pero un alto uso de memoria en el hipervisor s\u00ed activa t\u00e9cnicas de gesti\u00f3n de memoria y provoca problemas de rendimiento en la VM. Debemos estar atentos a las alarmas de uso de memoria del host y evitar que las VMs caigan en Swap.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/27931f9a8607000dc9a7ca483c03ad68.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/4a1c0d6199a340dd62e5c923611ddd6e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Unswap<\/h3>\n<p>\nSi la VM ha ca\u00eddo en Swap, su rendimiento disminuye dr\u00e1sticamente. Las huellas del Ballooning y la compresi\u00f3n desaparecen r\u00e1pidamente despu\u00e9s de que hay memoria RAM libre en el host, pero la m\u00e1quina virtual no se apresura a volver de Swap a la RAM del servidor. <br \/>\nHasta la versi\u00f3n ESXi 6.0, la \u00fanica forma confiable y r\u00e1pida de sacar una VM del Swap era reiniciar (m\u00e1s precisamente, apagar\/encender el contenedor). A partir de ESXi 6.0, surgi\u00f3 un m\u00e9todo que, aunque no es del todo oficial, es funcional y confiable para sacar una VM del Swap. En una de las conferencias, tuve la oportunidad de hablar con uno de los ingenieros de VMware a cargo del programador de CPU. Confirm\u00f3 que este m\u00e9todo es completamente seguro y operativo. En nuestra experiencia, no hemos tenido problemas con \u00e9l.<\/p>\n<p>Comandos para sacar VMs del Swap <noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2016\/06\/02\/memory-pages-swapped-can-unswap\/\">describi\u00f3<\/a><\/noindex> Duncan Epping. No repetir\u00e9 la descripci\u00f3n completa, solo ofrecer\u00e9 un ejemplo de su uso. Como se puede ver en la captura de pantalla, despu\u00e9s de un tiempo tras ejecutar el comando, el Swap en la VM desaparece.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lisis del rendimiento de las VM en VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/c60d03c59e115d48b209dadc25081c1e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Consejos para la gesti\u00f3n de memoria en ESXi<\/h3>\n<p>\nPor \u00faltimo, aqu\u00ed hay algunos consejos que te ayudar\u00e1n a evitar problemas de rendimiento en las VMs debido a la memoria:<\/p>\n<ul>\n<li>No permitas la sobreasignaci\u00f3n de memoria en los cl\u00fasteres productivos. Es recomendable mantener siempre un ~20-30% de memoria libre en el cl\u00faster para que el DRS (y el administrador) tengan espacio para maniobrar, y para que al migrar las VMs no vayan al Swap. Adem\u00e1s, no olvides dejar un margen para la tolerancia a fallos. No es agradable cuando, tras la falla de un servidor y el reinicio de las VMs mediante HA, algunas m\u00e1quinas tambi\u00e9n terminan en Swap.<\/li>\n<li>En infraestructuras con alta consolidaci\u00f3n, trata de NO crear VMs con m\u00e1s de la mitad de la memoria del host. Esto nuevamente ayudar\u00e1 a que el DRS distribuya las m\u00e1quinas virtuales sin problemas entre los servidores del cl\u00faster. Esta regla, por supuesto, no es universal :).<\/li>\n<li>Vigila la alarma de uso de memoria del host.<\/li>\n<li>No olvides instalar VMware Tools en las VMs y no desactives el Ballooning.<\/li>\n<li>Considera habilitar Inter-VM TPS y desactivar Large Pages en entornos con VDI y entornos de prueba.<\/li>\n<li>Si una VM est\u00e1 experimentando problemas de rendimiento, verifica si est\u00e1 utilizando memoria de un nodo NUMA remoto.<\/li>\n<li>Saca las VMs del Swap lo m\u00e1s r\u00e1pido posible. Adem\u00e1s, si una VM est\u00e1 en Swap, por razones obvias, el almacenamiento compartido sufre.<\/li>\n<\/ul>\n<p>\nCon esto concluye mi discusi\u00f3n sobre la memoria. A continuaci\u00f3n, art\u00edculos sobre el tema para aquellos que deseen profundizar en los detalles. El pr\u00f3ximo art\u00edculo estar\u00e1 dedicado al almacenamiento.<\/p>\n<p><b class=\"spoiler_title\">Enlaces \u00fatiles<\/b><noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2015\/03\/02\/what-happens-at-which-vsphere-memory-state\/\">http:\/\/www.yellow-bricks.com\/2015\/03\/02\/what-happens-at-which-vsphere-memory-state\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2013\/06\/14\/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up\/\">http:\/\/www.yellow-bricks.com\/2013\/06\/14\/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.vladan.fr\/vmware-transparent-page-sharing-tps-explained\/\">https:\/\/www.vladan.fr\/vmware-transparent-page-sharing-tps-explained\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2016\/06\/02\/memory-pages-swapped-can-unswap\/\">http:\/\/www.yellow-bricks.com\/2016\/06\/02\/memory-pages-swapped-can-unswap\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kb.vmware.com\/s\/article\/1002586\">https:\/\/kb.vmware.com\/s\/article\/1002586<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.vladan.fr\/what-is-vmware-memory-ballooning\/\">https:\/\/www.vladan.fr\/what-is-vmware-memory-ballooning\/<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kb.vmware.com\/s\/article\/2080735\">https:\/\/kb.vmware.com\/s\/article\/2080735<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/kb.vmware.com\/s\/article\/2017642\">https:\/\/kb.vmware.com\/s\/article\/2017642<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/labs.vmware.com\/vmtj\/vmware-esx-memory-resource-management-swap\">https:\/\/labs.vmware.com\/vmtj\/vmware-esx-memory-resource-management-swap<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/blogs.vmware.com\/vsphere\/2013\/10\/understanding-vsphere-active-memory.html\">https:\/\/blogs.vmware.com\/vsphere\/2013\/10\/understanding-vsphere-active-memory.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.vmware.com\/support\/developer\/converter-sdk\/conv51_apireference\/memory_counters.html#overhead\">https:\/\/www.vmware.com\/support\/developer\/converter-sdk\/conv51_apireference\/memory_counters.html<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/docs.vmware.com\/en\/VMware-vSphere\/6.5\/vsphere-esxi-vcenter-server-65-monitoring-performance-guide.pdf\">https:\/\/docs.vmware.com\/en\/VMware-vSphere\/6.5\/vsphere-esxi-vcenter-server-65-monitoring-performance-guide.pdf<\/a><\/noindex><\/p>\n<p>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/dataline\/blog\/455820\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0427\u0430\u0441\u0442\u044c 1. \u041f\u0440\u043e CPU \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u043e\u0433\u043e\u0432\u043e\u0440\u0438\u043c \u043f\u0440\u043e \u0441\u0447\u0435\u0442\u0447\u0438\u043a\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043f\u0430\u043c\u044f\u0442\u0438 (RAM) \u0432 vSphere. \u0412\u0440\u043e\u0434\u0435 \u0431\u044b \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e \u0432\u0441\u0435 \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e, \u0447\u0435\u043c \u0441 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043e\u043c: \u0435\u0441\u043b\u0438 \u043d\u0430 \u0412\u041c \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u044e\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0438\u0445 \u0441\u043b\u043e\u0436\u043d\u043e \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u044c. \u0417\u0430\u0442\u043e \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u043f\u043e\u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f, \u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u0441 \u043d\u0438\u043c\u0438 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0441\u043b\u043e\u0436\u043d\u0435\u0435. \u041d\u043e \u043e\u0431\u043e \u0432\u0441\u0435\u043c \u043f\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0443. \u041d\u0435\u043c\u043d\u043e\u0433\u043e \u0442\u0435\u043e\u0440\u0438\u0438 \u041e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u0430\u043c\u044f\u0442\u044c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35292","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0412\u041c \u0432 VMware vSphere. \u0427\u0430\u0441\u0442\u044c 2: Memory | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:03:28+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:03:28+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47An\u00e1lisis de rendimiento de VMs en VMware vSphere. Parte 2: Memoria | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0410\u043d\u0430\u043b\u0438\u0437 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0412\u041c \u0432 VMware vSphere. \u0427\u0430\u0441\u0442\u044c 2: Memory | ProHoster","og:url":"https:\/\/prohoster.info\/es\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:03:28+00:00","article:modified_time":"2019-10-31T19:03:28+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35292","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 22:41:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:01:22","updated":"2026-01-21 22:41:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=35292"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/35292\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=35292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=35292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=35292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}