{"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\/pt\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","title":{"rendered":"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" 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 o CPU<\/a><\/noindex><\/p>\n<p>Neste artigo, vamos falar sobre contadores de desempenho da mem\u00f3ria RAM no vSphere.<br \/>\nParece que a mem\u00f3ria \u00e9 mais clara do que o processador: se houver problemas de desempenho na VM, \u00e9 dif\u00edcil n\u00e3o notar. Mas, se eles aparecerem, \u00e9 muito mais complicado resolv\u00ea-los. Vamos falar sobre tudo isso. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Um pouco de teoria<\/h3>\n<p>\nA mem\u00f3ria RAM das m\u00e1quinas virtuais vem da mem\u00f3ria do servidor em que as VMs est\u00e3o rodando. Isso \u00e9 bastante \u00f3bvio :). Se a mem\u00f3ria RAM do servidor n\u00e3o for suficiente para todos os que desejam, o ESXi come\u00e7a a aplicar t\u00e9cnicas de otimiza\u00e7\u00e3o do consumo de mem\u00f3ria (memory reclamation techniques). Caso contr\u00e1rio, os sistemas operacionais das VMs falhariam com erros de acesso \u00e0 RAM. <\/p>\n<p>Quais t\u00e9cnicas o ESXi aplica depende da carga da mem\u00f3ria:<\/p>\n<p><b>Estado da mem\u00f3ria<\/b><\/p>\n<p><b>Limite<\/b><\/p>\n<p><b>A\u00e7\u00f5es<\/b><\/p>\n<p>Alto<\/p>\n<p>400% do minFree<\/p>\n<p>Ap\u00f3s atingir o limite superior, as grandes p\u00e1ginas de mem\u00f3ria s\u00e3o divididas em pequenas (TPS opera no modo padr\u00e3o).<\/p>\n<p>Limpar<\/p>\n<p>100% do minFree<\/p>\n<p>Grandes p\u00e1ginas de mem\u00f3ria s\u00e3o divididas em pequenas, o TPS opera for\u00e7adamente.<\/p>\n<p>Soft<\/p>\n<p>64% do minFree<\/p>\n<p>TPS + Balloon<\/p>\n<p>Dif\u00edcil<\/p>\n<p>32% do minFree<\/p>\n<p>TPS + Compress + Swap<\/p>\n<p>Baixo<\/p>\n<p>16% do minFree<\/p>\n<p>Compress + Swap + Block<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2015\/03\/02\/what-happens-at-which-vsphere-memory-state\/\">Fonte<\/a><\/noindex> <\/p>\n<p>minFree \u00e9 a mem\u00f3ria RAM necess\u00e1ria para o funcionamento do hipervisor. <\/p>\n<p>At\u00e9 o ESXi 4.1 inclu\u00eddo, o minFree era fixo por padr\u00e3o \u2014 6% do volume de RAM do servidor (a porcentagem podia ser alterada pela op\u00e7\u00e3o Mem.MinFreePct no ESXi). Nas vers\u00f5es posteriores, devido ao aumento dos volumes de mem\u00f3ria nos servidores, o minFree passou a ser calculado com base no volume de mem\u00f3ria do host, e n\u00e3o como um valor percentual fixo. <\/p>\n<p>O valor do minFree (por padr\u00e3o) \u00e9 calculado da seguinte forma:<\/p>\n<p><b>Porcentagem de mem\u00f3ria reservada para minFree<\/b><\/p>\n<p><b>Faixa de mem\u00f3ria<\/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>Mem\u00f3ria 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\/\">Fonte<\/a><\/noindex><\/p>\n<p>Por exemplo, para um servidor com 128 GB de RAM, o valor de MinFree seria:<br \/>\nMinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB <br \/>\nO valor real pode diferir por algumas centenas de MB, dependendo do servidor e da mem\u00f3ria RAM.<\/p>\n<p><b>Porcentagem de mem\u00f3ria reservada para minFree<\/b><\/p>\n<p><b>Faixa de mem\u00f3ria<\/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>Mem\u00f3ria restante (100 GB)<\/p>\n<p>1024 MB<\/p>\n<p>\nNormalmente, para ambientes produtivos, apenas o estado High pode ser considerado adequado. Para ambientes de teste e desenvolvimento, os estados Clear\/Soft podem ser aceit\u00e1veis. Se a mem\u00f3ria RAM no host estiver abaixo de 64% MinFree, as VMs que operam nele certamente apresentar\u00e3o problemas de desempenho.<\/p>\n<p>Em cada estado, s\u00e3o aplicadas t\u00e9cnicas espec\u00edficas de recupera\u00e7\u00e3o de mem\u00f3ria, come\u00e7ando pelo TPS, que praticamente n\u00e3o afeta o desempenho das VMs, at\u00e9 o Swapping. Vou explicar mais sobre isso. <\/p>\n<p><b>Transparent Page Sharing (TPS).<\/b> TPS \u00e9, grosso modo, a deduplica\u00e7\u00e3o de p\u00e1ginas de mem\u00f3ria RAM de m\u00e1quinas virtuais no servidor.<\/p>\n<p>O ESXi procura p\u00e1ginas de mem\u00f3ria RAM iguais entre as m\u00e1quinas virtuais, calculando e comparando os hashes das p\u00e1ginas, e remove as duplicatas, substituindo-as por refer\u00eancias \u00e0 mesma p\u00e1gina na mem\u00f3ria f\u00edsica do servidor. Como resultado, o consumo de mem\u00f3ria f\u00edsica \u00e9 reduzido e \u00e9 poss\u00edvel obter um certo overcommitment de mem\u00f3ria praticamente sem perda de desempenho.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" 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\/\">Fonte<\/a><\/noindex><\/p>\n<p>Este mecanismo funciona apenas para p\u00e1ginas de mem\u00f3ria de 4 KB (small pages). O hipervisor sequer tenta deduplicar p\u00e1ginas de 2 MB (large pages): a probabilidade de encontrar p\u00e1ginas id\u00eanticas desse tamanho n\u00e3o \u00e9 grande.<\/p>\n<p>Por padr\u00e3o, o ESXi aloca mem\u00f3ria para large pages. A fragmenta\u00e7\u00e3o de large pages em small pages come\u00e7a ao atingir o limiar do estado High e ocorre for\u00e7adamente quando o estado Clear \u00e9 alcan\u00e7ado (veja a tabela de estados do hipervisor).<\/p>\n<p>Se voc\u00ea deseja que o TPS comece a funcionar sem esperar que a mem\u00f3ria RAM do host fique cheia, nas Op\u00e7\u00f5es Avan\u00e7adas do ESXi \u00e9 necess\u00e1rio definir o valor <i>\u201cMem.AllocGuestLargePage\u201d<\/i> como 0 (por padr\u00e3o 1). Assim, a aloca\u00e7\u00e3o de large pages para m\u00e1quinas virtuais ser\u00e1 desativada.<\/p>\n<p>Desde dezembro de 2014, em todas as vers\u00f5es do ESXi, o TPS entre VMs est\u00e1 desativado por padr\u00e3o, pois foi descoberta uma vulnerabilidade que teoricamente permite acessar a mem\u00f3ria RAM de outra VM a partir de uma. Mais detalhes aqui. N\u00e3o encontrei informa\u00e7\u00e3o sobre a implementa\u00e7\u00e3o pr\u00e1tica da explora\u00e7\u00e3o da vulnerabilidade TPS.<\/p>\n<p>A pol\u00edtica de TPS \u00e9 controlada atrav\u00e9s da op\u00e7\u00e3o avan\u00e7ada <i>\u201cMem.ShareForceSalting\u201d<\/i> no ESXi:<br \/>\n0 \u2014 Inter-VM TPS. O TPS funciona para p\u00e1ginas de diferentes VMs;<br \/>\n1 \u2013 TPS para VMs com o mesmo valor de \u201csched.mem.pshare.salt\u201d no VMX;<br \/>\n2 (por padr\u00e3o) \u2013 Intra-VM TPS. O TPS funciona para p\u00e1ginas dentro da VM.<\/p>\n<p>Definitivamente faz sentido desativar p\u00e1ginas grandes e ativar o Inter-VM TPS em ambientes de teste. Isso tamb\u00e9m pode ser utilizado em ambientes com um grande n\u00famero de VMs id\u00eanticas. Por exemplo, em ambientes com VDI, a economia de mem\u00f3ria f\u00edsica pode alcan\u00e7ar dezenas de porcento. <\/p>\n<p><b>Memory Ballooning.<\/b> O Ballooning n\u00e3o \u00e9 mais uma t\u00e9cnica t\u00e3o inofensiva e transparente para o sistema operacional da VM como o TPS. Mas, se aplicado corretamente, \u00e9 poss\u00edvel viver e at\u00e9 trabalhar com o Ballooning.<\/p>\n<p>Junto com o VMware Tools, \u00e9 instalado na VM um driver especial chamado Balloon Driver (vmmemctl). Quando o hipervisor come\u00e7a a ficar sem mem\u00f3ria f\u00edsica e entra no estado Soft, o ESXi solicita \u00e0 VM que devolva a mem\u00f3ria RAM n\u00e3o utilizada atrav\u00e9s deste Balloon Driver. O driver, por sua vez, atua no n\u00edvel do sistema operacional e solicita mem\u00f3ria livre a ele. O hipervisor v\u00ea quais p\u00e1ginas de mem\u00f3ria f\u00edsica foram ocupadas pelo Balloon Driver, retira a mem\u00f3ria da m\u00e1quina virtual e a devolve ao host. N\u00e3o h\u00e1 problemas no funcionamento do SO, j\u00e1 que no n\u00edvel do SO a mem\u00f3ria est\u00e1 ocupada pelo Balloon Driver. Por padr\u00e3o, o Balloon Driver pode retirar at\u00e9 65% da mem\u00f3ria da VM.<\/p>\n<p>Se o VMware Tools n\u00e3o estiver instalado na VM ou se o Ballooning estiver desativado (n\u00e3o recomendo, mas existe <noindex><a rel=\"nofollow\" href=\"https:\/\/kb.vmware.com\/s\/article\/1002586\">KB<\/a><\/noindex>:), o hipervisor imediatamente recorre a t\u00e9cnicas mais r\u00edgidas de recupera\u00e7\u00e3o de mem\u00f3ria. Conclus\u00e3o: certifique-se de que o VMware Tools esteja instalado na VM.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/884df6a7f5610d9bb372a7c34558f280.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>O funcionamento do Balloon Driver pode ser verificado a partir do SO atrav\u00e9s do VMware Tools.<\/i>.<\/p>\n<p><b>Memory Compression.<\/b> Esta t\u00e9cnica \u00e9 aplicada quando o ESXi chega ao estado Hard. Como o pr\u00f3prio nome sugere, o ESXi tenta comprimir as p\u00e1ginas de 4 Kbytes de mem\u00f3ria RAM para 2 Kbytes e, assim, liberar um pouco de espa\u00e7o na mem\u00f3ria f\u00edsica do servidor. Essa t\u00e9cnica aumenta significativamente o tempo de acesso ao conte\u00fado das p\u00e1ginas de mem\u00f3ria da VM, uma vez que a p\u00e1gina precisa ser descomprimida previamente. \u00c0s vezes, nem todas as p\u00e1ginas conseguem ser comprimidas, e o pr\u00f3prio processo leva um certo tempo. Portanto, essa t\u00e9cnica na pr\u00e1tica n\u00e3o \u00e9 muito eficaz.<\/p>\n<p><b>Memory Swapping.<\/b> Ap\u00f3s uma breve fase de Memory Compression, o ESXi praticamente inevitavelmente (se as VMs n\u00e3o migraram para outros hosts ou n\u00e3o foram desligadas) passa para o Swapping. E se a mem\u00f3ria restante for muito baixa (estado Low), o hipervisor tamb\u00e9m para de alocar p\u00e1ginas de mem\u00f3ria para as VMs, o que pode causar problemas nos sistemas operacionais convidados das VMs.<\/p>\n<p>\u00c9 assim que funciona o Swapping. Ao ligar a m\u00e1quina virtual, \u00e9 criado um arquivo com a extens\u00e3o .vswp. O tamanho desse arquivo \u00e9 igual \u00e0 mem\u00f3ria RAM n\u00e3o reservada da MV: \u00e9 a diferen\u00e7a entre a mem\u00f3ria configurada e a mem\u00f3ria reservada. Durante o funcionamento do Swapping, o ESXi descarrega as p\u00e1ginas de mem\u00f3ria da m\u00e1quina virtual para esse arquivo e come\u00e7a a trabalhar com ele em vez da mem\u00f3ria f\u00edsica do servidor. Claro, essa mem\u00f3ria \u201coperacional\u201d \u00e9 significativamente mais lenta do que a verdadeira, mesmo que o .vswp esteja em um armazenamento r\u00e1pido.<\/p>\n<p>Ao contr\u00e1rio do Ballooning, onde p\u00e1ginas n\u00e3o utilizadas s\u00e3o retiradas da MV, no Swapping, p\u00e1ginas que est\u00e3o ativamente em uso pelo sistema operacional ou aplica\u00e7\u00f5es dentro da MV podem ser transferidas para o disco. Como resultado, o desempenho da MV cai drasticamente, podendo at\u00e9 travar. A MV formalmente continua funcionando e pelo menos pode ser desligada corretamente a partir do sistema operacional. Se voc\u00ea tiver paci\u00eancia \ud83d\ude09<\/p>\n<p>Se a MV foi para o Swap \u2014 isso \u00e9 uma situa\u00e7\u00e3o an\u00f4mala, que deve ser evitada sempre que poss\u00edvel.<\/p>\n<h3>Principais contadores de desempenho da mem\u00f3ria da m\u00e1quina virtual<\/h3>\n<p>\nAgora chegamos ao principal. Para monitorar o estado da mem\u00f3ria na MV, existem os seguintes contadores:<\/p>\n<p><b>Active<\/b> \u2014 mostra o volume de mem\u00f3ria operacional (KB) ao qual a MV teve acesso no per\u00edodo anterior de medi\u00e7\u00e3o.<\/p>\n<p><b>Usage<\/b> \u2014 o mesmo que Active, mas em porcentagem da mem\u00f3ria operacional configurada da MV. \u00c9 calculado pela seguinte f\u00f3rmula: active \u00f7 tamanho da mem\u00f3ria configurada da m\u00e1quina virtual.<br \/>\nUm alto Usage e Active, respectivamente, nem sempre s\u00e3o indicadores de problemas de desempenho da MV. Se a MV utiliza agressivamente a mem\u00f3ria (pelo menos, est\u00e1 acessando-a), isso n\u00e3o significa que est\u00e1 sem mem\u00f3ria. \u00c9 mais um motivo para verificar o que est\u00e1 acontecendo no sistema operacional.<br \/>\nH\u00e1 um Alarme padr\u00e3o por Uso de Mem\u00f3ria para a MV:<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/073132b332da79be15e3bedf2c66cf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Compartilhado<\/b> \u2014 volume de mem\u00f3ria operacional da MV, desduplicada com TPS (dentro da MV ou entre MVs).<\/p>\n<p><b>Concedido<\/b> \u2014 volume de mem\u00f3ria f\u00edsica do host (KB) que foi alocada para a MV. Inclui o compartilhado.<\/p>\n<p><b>Consumido<\/b> (Concedido \u2014 Compartilhado) \u2014 volume de mem\u00f3ria f\u00edsica (KB) que a MV consome do host. N\u00e3o inclui o compartilhado.<\/p>\n<p>Se parte da mem\u00f3ria da MV for alocada n\u00e3o da mem\u00f3ria f\u00edsica do host, mas de um arquivo de swap ou a mem\u00f3ria for retirada da MV atrav\u00e9s do Balloon Driver, esse volume n\u00e3o \u00e9 contabilizado em Concedido e Consumido.<br \/>\nValores altos de Granted e Consumed s\u00e3o completamente normais. O sistema operacional gradualmente retira mem\u00f3ria do hypervisor e n\u00e3o a devolve. Com o tempo, para uma VM que est\u00e1 em opera\u00e7\u00e3o ativa, os valores desses contadores se aproximam da quantidade de mem\u00f3ria configurada e permanecem l\u00e1.<\/p>\n<p><b>Zero<\/b> \u2014 a quantidade de mem\u00f3ria RAM da VM (Kbytes) que cont\u00e9m zeros. Essa mem\u00f3ria \u00e9 considerada livre pelo hypervisor e pode ser alocada para outras m\u00e1quinas virtuais. Ap\u00f3s a guest OS escrever algo na mem\u00f3ria zerada, ela passa para Consumed e n\u00e3o retorna mais.<\/p>\n<p><b>Reserved Overhead<\/b> \u2014 a quantidade de mem\u00f3ria RAM da VM (Kbytes) reservada pelo hypervisor para o funcionamento da VM. \u00c9 um pequeno volume, mas deve estar dispon\u00edvel no host; caso contr\u00e1rio, a VM n\u00e3o iniciar\u00e1.<\/p>\n<p><b>Balloon<\/b> \u2014 a quantidade de mem\u00f3ria RAM (Kbytes) retirada da VM atrav\u00e9s do Balloon Driver.<\/p>\n<p><b>Compressed<\/b> \u2014 a quantidade de mem\u00f3ria RAM (Kbytes) que foi comprimida.<\/p>\n<p><b>Swapped<\/b> \u2014 a quantidade de mem\u00f3ria RAM (Kbytes) que, por falta de mem\u00f3ria f\u00edsica no servidor, foi movida para o disco.<br \/>\nBalloon e outros contadores de t\u00e9cnicas de recupera\u00e7\u00e3o de mem\u00f3ria s\u00e3o iguais a zero.<\/p>\n<p>Assim \u00e9 como aparece o gr\u00e1fico com os contadores de uma VM funcionando normalmente com 150 GB de RAM.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/4c361a407581b24fc042c91a6d76aa68.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNo gr\u00e1fico abaixo, a VM apresenta problemas claros. Abaixo do gr\u00e1fico, pode-se ver que todas as t\u00e9cnicas de gerenciamento de mem\u00f3ria foram aplicadas a esta VM. O Balloon para esta VM \u00e9 consideravelmente maior do que o Consumed. Na verdade, a VM est\u00e1 mais morta do que viva. <\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/fcc8f196fc7d158e82de4737c5ebe776.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>ESXTOP<\/h3>\n<p>\nAssim como com a CPU, se queremos avaliar rapidamente a situa\u00e7\u00e3o no host e sua din\u00e2mica em intervalos de at\u00e9 2 segundos, \u00e9 bom usar o ESXTOP.<\/p>\n<p>A tela do ESXTOP para Mem\u00f3ria \u00e9 chamada com a tecla 'm' e aparece da seguinte forma (campos B, D, H, J, K, L, O foram selecionados):<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/27383c357fb351bbe8353abf3b08171e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOs par\u00e2metros interessantes para n\u00f3s ser\u00e3o os seguintes: <\/p>\n<p><b>Mem overcommit avg<\/b> \u2014 valor m\u00e9dio de sobrecompromisso de mem\u00f3ria no host por 1, 5 e 15 minutos. Se for maior que zero, \u00e9 um motivo para verificar o que est\u00e1 acontecendo, mas nem sempre indica a presen\u00e7a de problemas.<\/p>\n<p>Na linha <b>PMEM\/MB<\/b> e <b>VMKMEM\/MB<\/b> \u2014 informa\u00e7\u00f5es sobre a mem\u00f3ria f\u00edsica do servidor e a mem\u00f3ria dispon\u00edvel para o VMkernel. Aqui, podemos ver o valor de minfree (em MB), o estado da mem\u00f3ria do host (neste caso, alto).<\/p>\n<p>Na linha <b>NUMA\/MB<\/b> pode-se ver a distribui\u00e7\u00e3o da mem\u00f3ria RAM pelos n\u00f3s NUMA (sockets). Neste exemplo, a distribui\u00e7\u00e3o \u00e9 desigual, o que, em princ\u00edpio, n\u00e3o \u00e9 muito bom.<\/p>\n<p>A seguir, est\u00e3o as estat\u00edsticas gerais do servidor sobre t\u00e9cnicas de recupera\u00e7\u00e3o de mem\u00f3ria:<\/p>\n<p><b>PSHARE\/MB<\/b> \u2014 s\u00e3o estat\u00edsticas TPS;<\/p>\n<p><b>SWAP\/MB<\/b> \u2014 estat\u00edsticas de uso de Swap;<\/p>\n<p><b>ZIP\/MB<\/b> \u2014 estat\u00edsticas de compress\u00e3o de p\u00e1ginas de mem\u00f3ria;<\/p>\n<p><b>MEMCTL\/MB<\/b> \u2014 estat\u00edsticas de utiliza\u00e7\u00e3o do Balloon Driver.<\/p>\n<p>Para m\u00e1quinas virtuais individuais, podemos nos interessar pelas seguintes informa\u00e7\u00f5es. Os nomes das VMs foram ocultados para n\u00e3o confundir o p\u00fablico:). Se a m\u00e9trica ESXTOP for semelhante ao contador no vSphere, trago o contador correspondente. <\/p>\n<p><b>MEMSZ<\/b> \u2014 volume de mem\u00f3ria configurado na VM (MB).<br \/>\nMEMSZ = GRANT + MCTLSZ + SWCUR + untouched.<\/p>\n<p><b>GRANT<\/b> \u2014 Granted em MB.<\/p>\n<p><b>TCHD<\/b> \u2014 Active em MB.<\/p>\n<p><b>MCTL?<\/b> \u2014 se o Balloon Driver est\u00e1 instalado na VM.<\/p>\n<p><b>MCTLSZ<\/b> \u2014 Balloon em MB.<\/p>\n<p><b>MCTLGT<\/b> \u2014 volume de mem\u00f3ria RAM (MB) que o ESXi deseja retirar da VM atrav\u00e9s do Balloon Driver (Memctl Target).<\/p>\n<p><b>MCTLMAX<\/b> \u2014 volume m\u00e1ximo de mem\u00f3ria RAM (MB) que o ESXi pode retirar da VM atrav\u00e9s do Balloon Driver.<\/p>\n<p><b>SWCUR<\/b> \u2014 volume atual de mem\u00f3ria RAM (MB) alocado \u00e0 VM a partir do arquivo Swap. <\/p>\n<p><b>SWGT<\/b> \u2014 volume de mem\u00f3ria RAM (MB) que o ESXi deseja alocar \u00e0 VM a partir do arquivo Swap (Swap Target).<\/p>\n<p>Atrav\u00e9s do ESXTOP, tamb\u00e9m \u00e9 poss\u00edvel ver informa\u00e7\u00f5es mais detalhadas sobre a topologia NUMA da VM. Para isso, \u00e9 necess\u00e1rio selecionar os campos D,G:<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/3fde4ab9d54c709f66313020437255c2.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>NHN<\/b> \u2013 N\u00f3s NUMA nos quais a VM est\u00e1 localizada. Aqui, podemos imediatamente notar VMs amplas que n\u00e3o cabem em um \u00fanico n\u00f3 NUMA.<\/p>\n<p><b>NRMEM<\/b> \u2013 quantos megabytes de mem\u00f3ria a VM est\u00e1 retirando de um n\u00f3 NUMA remoto.<\/p>\n<p><b>NLMEM<\/b> \u2013 quantos megabytes de mem\u00f3ria a VM est\u00e1 retirando de um n\u00f3 NUMA local.<\/p>\n<p><b>N%L<\/b> \u2013 porcentagem de mem\u00f3ria da VM no n\u00f3 NUMA local (se menos de 80% \u2014 podem surgir problemas de desempenho).<\/p>\n<h3>Mem\u00f3ria no hipervisor<\/h3>\n<p>\nSe os contadores de CPU do hipervisor geralmente n\u00e3o s\u00e3o de interesse especial, a situa\u00e7\u00e3o \u00e9 oposta com a mem\u00f3ria. Um alto uso de mem\u00f3ria na VM nem sempre indica um problema de desempenho, mas um alto uso de mem\u00f3ria no hipervisor definitivamente inicia as t\u00e9cnicas de gerenciamento de mem\u00f3ria e causa problemas de desempenho na VM. Devemos monitorar os alarmes de uso de mem\u00f3ria do host e evitar que a VM entre em Swap.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/27931f9a8607000dc9a7ca483c03ad68.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/4a1c0d6199a340dd62e5c923611ddd6e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Unswap<\/h3>\n<p>\nSe a VM entrar em Swap, seu desempenho diminui significativamente. Os vest\u00edgios de Ballooning e compress\u00e3o desaparecem rapidamente ap\u00f3s a chegada de mem\u00f3ria RAM livre no host, mas a m\u00e1quina virtual n\u00e3o se apressa a voltar do Swap para a mem\u00f3ria RAM do servidor. <br \/>\nAt\u00e9 a vers\u00e3o ESXi 6.0, a \u00fanica maneira confi\u00e1vel e r\u00e1pida de tirar uma VM do Swap era reiniciar (mais especificamente, desligar\/ligar o cont\u00eainer). A partir do ESXi 6.0, surgiu um m\u00e9todo que, embora n\u00e3o oficialmente reconhecido, \u00e9 funcional e seguro para remover VMs do Swap. Em uma das confer\u00eancias, conversei com um dos engenheiros da VMware que trabalha no CPU Scheduler. Ele confirmou que o m\u00e9todo \u00e9 totalmente funcional e seguro. Em nossa experi\u00eancia, n\u00e3o tivemos problemas com isso.<\/p>\n<p>Comandos para tirar VMs do Swap <noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2016\/06\/02\/memory-pages-swapped-can-unswap\/\">descreveu<\/a><\/noindex> Duncan Epping. N\u00e3o vou repetir a descri\u00e7\u00e3o detalhada, apenas vou dar um exemplo de uso. Como pode ser visto na captura de tela, algum tempo ap\u00f3s a execu\u00e7\u00e3o do comando fornecido, o Swap na VM desaparece.<\/p>\n<p><img decoding=\"async\" alt=\"An\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria\" src=\"\/wp-content\/uploads\/c60d03c59e115d48b209dadc25081c1e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Dicas para gerenciar a mem\u00f3ria RAM no ESXi<\/h3>\n<p>\nPor fim, aqui est\u00e3o algumas dicas que podem ajud\u00e1-lo a evitar problemas de desempenho em VMs causados pela mem\u00f3ria RAM:<\/p>\n<ul>\n<li>Evite a superutiliza\u00e7\u00e3o de mem\u00f3ria RAM em clusters produtivos. \u00c9 recomend\u00e1vel sempre manter cerca de 20-30% de mem\u00f3ria livre no cluster, para que o DRS (e o administrador) tenha espa\u00e7o para manobras, e durante a migra\u00e7\u00e3o as VMs n\u00e3o sejam enviadas ao Swap. Al\u00e9m disso, n\u00e3o se esque\u00e7a de deixar uma reserva para a toler\u00e2ncia a falhas. \u00c9 desagrad\u00e1vel quando, ao falhar um servidor e reiniciar VMs com HA, algumas m\u00e1quinas ainda v\u00e3o para o Swap.<\/li>\n<li>Em infraestruturas com alta consolida\u00e7\u00e3o, tente N\u00c3O criar VMs com mais da metade da mem\u00f3ria do host. Isso, novamente, ajudar\u00e1 o DRS a distribuir as m\u00e1quinas virtuais pelos servidores do cluster sem problemas. Essa regra, \u00e9 claro, n\u00e3o \u00e9 universal :).<\/li>\n<li>Fique atento ao Alarme de Uso de Mem\u00f3ria do Host.<\/li>\n<li>N\u00e3o se esque\u00e7a de instalar o VMware Tools nas VMs e n\u00e3o desative o Ballooning.<\/li>\n<li>Considere ativar o Inter-VM TPS e desativar o Large Pages em ambientes com VDI e em ambientes de teste.<\/li>\n<li>Se a VM estiver enfrentando problemas de desempenho, verifique se ela n\u00e3o est\u00e1 usando mem\u00f3ria de um n\u00f3 NUMA remoto.<\/li>\n<li>Tire as VMs do Swap o mais r\u00e1pido poss\u00edvel! Al\u00e9m disso, se a VM estiver no Swap, por motivos \u00f3bvios, o armazenamento ser\u00e1 afetado.<\/li>\n<\/ul>\n<p>\nIsso \u00e9 tudo que tenho sobre mem\u00f3ria RAM. Abaixo, artigos sobre o tema para aqueles que desejam se aprofundar nos detalhes. O pr\u00f3ximo artigo ser\u00e1 dedicado ao armazenamento.<\/p>\n<p><b class=\"spoiler_title\">Links \u00dateis<\/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>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\u00e1lise de desempenho de VMs no VMware vSphere. Parte 2: Mem\u00f3ria | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/35292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=35292"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/35292\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=35292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=35292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=35292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}