{"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\/it\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","title":{"rendered":"Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in 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. Riguardo alla CPU<\/a><\/noindex><\/p>\n<p>In questo articolo parleremo dei contatori delle prestazioni della memoria RAM in vSphere.<br \/>\nSembra che la questione della memoria sia pi\u00f9 chiara rispetto a quella del processore: se ci sono problemi di prestazioni nelle VM, \u00e8 difficile non notarli. Tuttavia, una volta che compaiono, affrontarli diventa molto pi\u00f9 complesso. Ma andiamo con ordine. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3>Un po' di teoria<\/h3>\n<p>\nLa memoria RAM delle macchine virtuali proviene dalla memoria del server su cui operano le VM. Questo \u00e8 abbastanza ovvio:). Se la memoria del server non \u00e8 sufficiente per tutti gli utenti, ESXi inizia a utilizzare tecniche di ottimizzazione del consumo di memoria (memory reclamation techniques). Altrimenti, i sistemi operativi delle VM andrebbero in crash per errori di accesso alla RAM. <\/p>\n<p>Quali tecniche applicare ESXi decide in base al carico di memoria:<\/p>\n<p><b>Stato della memoria<\/b><\/p>\n<p><b>Limite<\/b><\/p>\n<p><b>Azioni<\/b><\/p>\n<p>High<\/p>\n<p>400% di minFree<\/p>\n<p>Dopo aver raggiunto il limite superiore, le grandi pagine di memoria vengono suddivise in pagine pi\u00f9 piccole (TPS opera in modalit\u00e0 standard).<\/p>\n<p>Cancella<\/p>\n<p>100% di minFree<\/p>\n<p>Le grandi pagine di memoria vengono suddivise in pagine pi\u00f9 piccole, TPS funziona forzatamente.<\/p>\n<p>Soft<\/p>\n<p>64% di minFree<\/p>\n<p>TPS + Balloon<\/p>\n<p>Hard<\/p>\n<p>32% di minFree<\/p>\n<p>TPS + Compress + Swap<\/p>\n<p>Basso<\/p>\n<p>16% di 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 \u00e8 la memoria RAM necessaria per il funzionamento dell'iperfvisor. <\/p>\n<p>Fino alla versione ESXi 4.1 inclusa, minFree era di default fisso: 6% della memoria RAM del server (la percentuale poteva essere cambiata tramite l'opzione Mem.MinFreePct su ESXi). Nelle versioni successive, a causa dell'aumento dei volumi di memoria sui server, minFree \u00e8 stato calcolato in base alla quantit\u00e0 di memoria dell'host, anzich\u00e9 come valore fisso percentuale. <\/p>\n<p>Il valore di minFree (di default) viene calcolato come segue:<\/p>\n<p><b>Percentuale di memoria riservata per minFree<\/b><\/p>\n<p><b>Intervallo di 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 residua<\/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>Ad esempio, per un server con 128 GB di RAM, il valore di MinFree sar\u00e0 il seguente:<br \/>\nMinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB <br \/>\nIl valore effettivo pu\u00f2 variare di qualche centinaio di MB, a seconda del server e della memoria RAM.<\/p>\n<p><b>Percentuale di memoria riservata per minFree<\/b><\/p>\n<p><b>Intervallo di memoria<\/b><\/p>\n<p><b>Valore per 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 residua (100 GB)<\/p>\n<p>1024 MB<\/p>\n<p>\nDi solito, solo lo stato High pu\u00f2 essere considerato normale per i banchi di lavoro produttivi. Per i banchi destinati ai test e allo sviluppo sono accettabili gli stati Clear\/Soft. Se la memoria RAM sull'host scende al di sotto del 64% di MinFree, le macchine virtuali in esecuzione su di esso presentano sicuramente problemi di prestazioni.<\/p>\n<p>In ogni stato vengono utilizzate tecniche di recupero della memoria specifiche, a partire dal TPS, che ha praticamente un impatto nullo sulle prestazioni delle VM, fino allo Swapping. Ti parler\u00f2 di loro in modo pi\u00f9 dettagliato. <\/p>\n<p><b>Condivisione di Pagine Trasparenti (TPS).<\/b> Il TPS \u00e8, in parole povere, la deduplicazione delle pagine di RAM delle macchine virtuali sul server.<\/p>\n<p>ESXi cerca le pagine di RAM identiche delle macchine virtuali, calcolando e confrontando gli hash delle pagine, e rimuove i duplicati sostituendoli con riferimenti alla stessa pagina nella memoria fisica del server. Di conseguenza, il consumo di memoria fisica diminuisce e si pu\u00f2 ottenere una certa sovrascrittura della memoria praticamente senza ridurre le prestazioni.<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in 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\/\">Fonte<\/a><\/noindex><\/p>\n<p>Questo meccanismo funziona solo per pagine di memoria di dimensione 4 KB (pagine piccole). Le pagine di dimensioni 2 MB (pagine grandi) non vengono nemmeno tentate di essere deduplicate dal hypervisor: la possibilit\u00e0 di trovare pagine identiche di tale dimensione \u00e8 bassa.<\/p>\n<p>Per impostazione predefinita, ESXi assegna la memoria alle grandi pagine. La suddivisione delle grandi pagine in piccole inizia al raggiungimento della soglia dello stato High e avviene in modo forzato quando si raggiunge lo stato Clear (vedi tabella degli stati dell'hypervisor).<\/p>\n<p>Se desideri che il TPS inizi a funzionare senza attendere che la RAM dell'host sia piena, devi impostare il valore in Advanced Options di ESXi <i>\u201cMem.AllocGuestLargePage\u201d<\/i> a 0 (valore predefinito 1). In questo modo, l'allocazione delle grandi pagine di memoria per le macchine virtuali sar\u00e0 disabilitata.<\/p>\n<p>Da dicembre 2014, in tutte le versioni di ESXi, il TPS tra VM \u00e8 disabilitato per impostazione predefinita, poich\u00e9 \u00e8 stata trovata una vulnerabilit\u00e0 che permette teoricamente di accedere alla RAM di un'altra VM. Maggiori dettagli qui. Non ho trovato informazioni sulla concreta implementazione della vulnerabilit\u00e0 TPS.<\/p>\n<p>La politica TPS \u00e8 controllata tramite l'opzione avanzata <i>\u201cMem.ShareForceSalting\u201d<\/i> su ESXi:<br \/>\n0 \u2014 TPS Inter-VM. Il TPS funziona per le pagine di VM diverse;<br \/>\n1 \u2013 TPS per VM con lo stesso valore \u201csched.mem.pshare.salt\u201d in VMX;<br \/>\n2 (valore predefinito) \u2013 TPS Intra-VM. Il TPS funziona per le pagine all'interno di una VM.<\/p>\n<p>\u00c8 sicuramente sensato disabilitare le pagine di grandi dimensioni e abilitare l'Inter-VM TPS sui banchi di prova. Questo pu\u00f2 anche essere utilizzato per banchi con un gran numero di VMs simili. Ad esempio, sui banchi VDI il risparmio di memoria fisica pu\u00f2 raggiungere decine di percento. <\/p>\n<p><b>Memory Ballooning.<\/b> Il Ballooning non \u00e8 pi\u00f9 una tecnica cos\u00ec innocua e trasparente per il sistema operativo delle VMs, come lo \u00e8 il TPS. Ma se usato correttamente, si pu\u00f2 convivere e persino lavorare con il Ballooning.<\/p>\n<p>Insieme ai Vmware Tools, sulla VM viene installato un driver speciale chiamato Balloon Driver (o vmmemctl). Quando l'ipervisore inizia ad esaurire la memoria fisica e passa allo stato Soft, ESXi richiede alla VM di restituire la memoria operativa non utilizzata tramite questo Balloon Driver. Il driver, a sua volta, opera a livello di sistema operativo e richiede memoria libera a quest'ultimo. L'ipervisore vede quali pagine di memoria fisica sono occupate dal Balloon Driver, preleva memoria dalla macchina virtuale e la restituisce all'host. Non si verificano problemi con il funzionamento del SO, poich\u00e9 a livello di SO la memoria \u00e8 occupata dal Balloon Driver. Di default, il Balloon Driver pu\u00f2 prelevare fino al 65% della memoria della VM.<\/p>\n<p>Se sulla VM non sono installati VMware Tools o se il Ballooning \u00e8 disabilitato (non lo consiglio, ma esiste <noindex><a rel=\"nofollow\" href=\"https:\/\/kb.vmware.com\/s\/article\/1002586\">KB<\/a><\/noindex>:), l'ipervisore passa subito a tecniche pi\u00f9 aggressive per il recupero della memoria. Conclusione: assicurati che i VMware Tools siano installati sulla VM.<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/884df6a7f5610d9bb372a7c34558f280.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>\u00c8 possibile controllare il funzionamento del Balloon Driver dal SO tramite i VMware Tools.<\/i>.<\/p>\n<p><b>Memory Compression.<\/b> Questa tecnica viene utilizzata quando ESXi raggiunge lo stato Hard. Come indica il nome, ESXi cerca di comprimere pagine di memoria operativa da 4 KByte a 2 KByte, liberando cos\u00ec un po' di spazio nella memoria fisica del server. Questa tecnica aumenta significativamente il tempo di accesso al contenuto delle pagine di memoria operativa della VM, poich\u00e9 la pagina deve essere decompressa. A volte non tutte le pagine possono essere compresse e il processo stesso richiede un certo tempo. Pertanto, questa tecnica in pratica non \u00e8 molto efficace.<\/p>\n<p><b>Memory Swapping.<\/b> Dopo una breve fase di Compressione della Memoria, ESXi passa praticamente inevitabilmente (se le VMs non sono migrate su altri host o spente) allo Swapping. E se rimane pochissima memoria (stato Low), l'ipervisore smette anche di assegnare pagine di memoria alle VMs, il che pu\u00f2 causare problemi nei sistemi operativi guest delle VMs.<\/p>\n<p>Ecco come funziona lo Swapping. Quando viene avviata la macchina virtuale, viene creato un file con estensione .vswp. La sua dimensione \u00e8 pari alla memoria volatile non riservata della VM: \u00e8 la differenza tra la memoria configurata e quella riservata. Durante il funzionamento dello Swapping, ESXi scarica le pagine di memoria della macchina virtuale in questo file e inizia a lavorare con esso anzich\u00e9 con la memoria fisica del server. Naturalmente, tale \"memoria\" \u00e8 molto pi\u00f9 lenta rispetto a quella reale, anche se il file .vswp si trova su uno storage veloce.<\/p>\n<p>A differenza del Ballooning, quando alla VM vengono sottratte pagine non utilizzate, nello Swapping le pagine che potrebbero essere attivamente utilizzate dal sistema operativo o dalle applicazioni all'interno della VM possono essere spostate sul disco. Di conseguenza, le prestazioni della VM possono diminuire fino al blocco totale. La VM funziona formalmente e pu\u00f2 essere disattivata correttamente dal sistema operativo, se si ha pazienza \ud83d\ude09<\/p>\n<p>Se una VM \u00e8 finita nello Swap, si tratta di una situazione anomala che sarebbe meglio evitare.<\/p>\n<h3>Le principali metriche delle prestazioni della memoria della macchina virtuale<\/h3>\n<p>\nE siamo arrivati al punto centrale. Per monitorare lo stato della memoria nella VM ci sono le seguenti metriche:<\/p>\n<p><b>Attivo<\/b> \u2014 mostra la quantit\u00e0 di memoria volatile (KB) a cui la VM ha avuto accesso nel periodo di misurazione precedente.<\/p>\n<p><b>Utilizzo<\/b> \u2014 \u00e8 lo stesso di Attivo, ma in percentuale rispetto alla memoria volatile configurata della VM. Si calcola con la seguente formula: attivo \u00f7 dimensione della memoria configurata della macchina virtuale.<br \/>\nUn alto Utilizzo e Attivo, rispettivamente, non \u00e8 sempre indicativo di problemi di prestazioni della VM. Se la VM utilizza la memoria in modo aggressivo (almeno, accede ad essa), non significa che ci sia carenza di memoria. Piuttosto, \u00e8 un motivo per verificare cosa sta succedendo nel sistema operativo.<br \/>\nC'\u00e8 un allarme standard per l'Utilizzo della Memoria per la VM:<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/073132b332da79be15e3bedf2c66cf94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>Shared<\/b> \u2014 quantit\u00e0 di memoria volatile della VM, de-duplicata tramite TPS (all'interno della VM o tra VM).<\/p>\n<p><b>Concesso<\/b> \u2014 quantit\u00e0 di memoria fisica dell'host (KB) che \u00e8 stata concessa alla VM. Include la memoria Condivisa.<\/p>\n<p><b>Consumato<\/b> (Concesso \u2014 Condiviso) \u2014 quantit\u00e0 di memoria fisica (KB) che la VM consuma dall'host. Non include la memoria Condivisa.<\/p>\n<p>Se una parte della memoria della VM viene concessa non dalla memoria fisica dell'host, ma da un file di swap o se la memoria \u00e8 stata sottratta dalla VM tramite il Balloon Driver, questa quantit\u00e0 non viene conteggiata nei valori Concesso e Consumato.<br \/>\nValori elevati di Granted e Consumed sono del tutto normali. Il sistema operativo preleva gradualmente la memoria dall'hypervisor e non la restituisce. Col tempo, per una VM attivamente operante, i valori di questi contatori si avvicinano alla quantit\u00e0 di memoria configurata, e rimangono l\u00ec.<\/p>\n<p><b>Zero<\/b> \u2014 quantit\u00e0 di memoria RAM della VM (Kbyte) che contiene zeri. Questa memoria \u00e8 considerata libera dall'hypervisor e pu\u00f2 essere assegnata ad altre macchine virtuali. Dopo che il sistema operativo guest ha scritto qualcosa nella memoria azzerata, passa a Consumed e non pu\u00f2 essere restituita.<\/p>\n<p><b>Riserva di sovraccarico<\/b> \u2014 quantit\u00e0 di memoria RAM della VM (Kbyte) riservata dall'hypervisor per il funzionamento della VM. Questa \u00e8 una piccola quantit\u00e0, ma deve essere necessariamente disponibile sull'host, altrimenti la VM non si avvia.<\/p>\n<p><b>Balloon<\/b> \u2014 quantit\u00e0 di memoria RAM (Kbyte) prelevata dalla VM tramite Balloon Driver.<\/p>\n<p><b>Compresso<\/b> \u2014 quantit\u00e0 di memoria RAM (Kbyte) che \u00e8 stata compressa.<\/p>\n<p><b>Scambiata<\/b> \u2014 quantit\u00e0 di memoria RAM (Kbyte) che, in assenza di memoria fisica sul server, \u00e8 stata trasferita su disco.<br \/>\nBalloon e gli altri contatori delle tecniche di recupero della memoria sono pari a zero.<\/p>\n<p>Ecco come appare un grafico con i contatori di una VM che funziona normalmente con 150 GB di RAM.<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/4c361a407581b24fc042c91a6d76aa68.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNel grafico sottostante, la VM presenta evidenti problemi. Sotto il grafico si pu\u00f2 vedere che per questa VM sono state utilizzate tutte le tecniche descritte per la gestione della memoria. Balloon per questa VM \u00e8 significativamente pi\u00f9 grande di Consumed. In realt\u00e0, la VM \u00e8 pi\u00f9 morta che viva. <\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in 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>\nCome per la CPU, se vogliamo valutare rapidamente la situazione sull'host e la sua dinamica con intervalli fino a 2 secondi, vale la pena utilizzare ESXTOP.<\/p>\n<p>Lo schermo di ESXTOP per la memoria si attiva con il tasto \u00abm\u00bb e appare come segue (sono stati selezionati i campi B,D,H,J,K,L,O):<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/27383c357fb351bbe8353abf3b08171e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nI seguenti parametri saranno interessanti per noi: <\/p>\n<p><b>Mem overcommit avg<\/b> \u2014 valore medio di overcommit della memoria sull'host negli ultimi 1, 5 e 15 minuti. Se \u00e8 superiore a zero, \u00e8 un motivo per esaminare cosa sta succedendo, ma non \u00e8 sempre un indicatore di problemi.<\/p>\n<p>Nelle righe <b>PMEM\/MB<\/b> e <b>VMKMEM\/MB<\/b> \u2014 informazioni sulla memoria fisica del server e sulla memoria disponibile per il VMkernel. Di interessante qui si pu\u00f2 vedere il valore minfree (in MByte), lo stato della memoria dell'host (nel nostro caso, alto).<\/p>\n<p>Nella riga <b>NUMA\/MB<\/b> si pu\u00f2 vedere la distribuzione della memoria RAM sulle nodi NUMA (socket). In questo esempio la distribuzione \u00e8 irregolare, il che non \u00e8 molto positivo.<\/p>\n<p>Di seguito sono statistiche generali sul server per le tecniche di recupero della memoria:<\/p>\n<p><b>PSHARE\/MB<\/b> \u2014 \u00e8 la statistica TPS;<\/p>\n<p><b>SWAP\/MB<\/b> \u2014 statistica sull'utilizzo dello Swap;<\/p>\n<p><b>ZIP\/MB<\/b> \u2014 statistica sulla compressione delle pagine di memoria;<\/p>\n<p><b>MEMCTL\/MB<\/b> \u2014 statistica sull'utilizzo del Balloon Driver.<\/p>\n<p>Per singole VM, potrebbe interessarci la seguente informazione. Ho nascosto i nomi delle VM per non confondere il pubblico:). Se la metrica ESXTOP \u00e8 analoga al contatore in vSphere, riporto il contatore corrispondente. <\/p>\n<p><b>MEMSZ<\/b> \u2014 volume di memoria configurato sulla VM (MB).<br \/>\nMEMSZ = GRANT + MCTLSZ + SWCUR + untouched.<\/p>\n<p><b>GRANT<\/b> \u2014 Granted in MB.<\/p>\n<p><b>TCHD<\/b> \u2014 Active in MB.<\/p>\n<p><b>MCTL?<\/b> \u2014 se sulla VM \u00e8 stato installato il Balloon Driver.<\/p>\n<p><b>MCTLSZ<\/b> \u2014 Balloon in MB.<\/p>\n<p><b>MCTLGT<\/b> \u2014 volume di memoria RAM (MB) che ESXi desidera sottrarre alla VM tramite il Balloon Driver (Memctl Target).<\/p>\n<p><b>MCTLMAX<\/b> \u2014 volume massimo di memoria RAM (MB) che ESXi pu\u00f2 sottrarre alla VM tramite il Balloon Driver.<\/p>\n<p><b>SWCUR<\/b> \u2014 volume attuale di memoria RAM (MB) ceduto alla VM dal file di Swap. <\/p>\n<p><b>SWGT<\/b> \u2014 volume di memoria RAM (MB) che ESXi desidera cedere alla VM dal file di Swap (Swap Target).<\/p>\n<p>Attraverso ESXTOP \u00e8 possibile visualizzare informazioni pi\u00f9 dettagliate sulla topologia NUMA della VM. Per farlo, \u00e8 necessario selezionare i campi D,G:<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in 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 nodi NUMA su cui si trova la VM. Qui \u00e8 possibile notare subito wide vm che non si adattano a un singolo nodo NUMA.<\/p>\n<p><b>NRMEM<\/b> \u2013 quanti megabyte di memoria la VM preleva da un nodo NUMA remoto.<\/p>\n<p><b>NLMEM<\/b> \u2013 quanti megabyte di memoria la VM preleva da un nodo NUMA locale.<\/p>\n<p><b>N%L<\/b> \u2013 percentuale di memoria della VM sul nodo NUMA locale (se meno dell'80% \u2014 potrebbero sorgere problemi di prestazioni).<\/p>\n<h3>Memoria sull'ipervisor<\/h3>\n<p>\nSe i contatori CPU sull'ipervisor generalmente non suscitano particolare interesse, la situazione con la memoria \u00e8 opposta. Un Alto Utilizzo della Memoria sulla VM non indica sempre un problema di prestazioni, mentre l'Alto Utilizzo della Memoria sull'ipervisor avvia tecniche di gestione della memoria e causa problemi di prestazioni sulla VM. \u00c8 necessario monitorare gli allarmi sull'Utilizzo della Memoria dell'Host e prevenire l'ingresso della VM nello Swap.<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in 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=\"Analisi delle prestazioni delle VM in 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>\nSe la VM \u00e8 finita nello Swap, le sue prestazioni diminuiscono notevolmente. I segni del Ballooning e della compressione svaniscono rapidamente dopo che la memoria RAM \u00e8 tornata disponibile sull'host, mentre la macchina virtuale non si affretta a tornare dalla Swap alla memoria RAM del server. <br \/>\nFino alla versione ESXi 6.0, l'unico modo affidabile e veloce per estrarre le VM dallo Swap era il riavvio (se preciso, lo spegnimento\/accensione del contenitore). A partire da ESXi 6.0 \u00e8 emerso un metodo, seppur non ufficiale, ma funzionante e affidabile per estrarre le VM dallo Swap. In una delle conferenze sono riuscito a parlare con uno degli ingegneri di VMware, responsabile del CPU Scheduler. Ha confermato che il metodo \u00e8 sicuramente funzionante e sicuro. Nel nostro esperienza non abbiamo riscontrato problemi con esso.<\/p>\n<p>Comandi per estrarre la VM dallo Swap <noindex><a rel=\"nofollow\" href=\"http:\/\/www.yellow-bricks.com\/2016\/06\/02\/memory-pages-swapped-can-unswap\/\">ha descritto<\/a><\/noindex> Duncan Epping. Non ripeter\u00f2 la descrizione dettagliata, ma fornir\u00f2 un esempio del suo utilizzo. Come si pu\u00f2 vedere nello screenshot, dopo un po' di tempo dall'esecuzione del comando indicato, lo Swap sulla VM scompare.<\/p>\n<p><img decoding=\"async\" alt=\"Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria\" src=\"\/wp-content\/uploads\/c60d03c59e115d48b209dadc25081c1e.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Consigli per la gestione della memoria operativa su ESXi<\/h3>\n<p>\nPer concludere, ecco alcuni consigli che possono aiutarti a evitare problemi di prestazioni delle VM a causa della memoria operativa:<\/p>\n<ul>\n<li>Evita la sovrascrittura della memoria operativa nei cluster produttivi. \u00c8 consigliabile avere sempre circa il 20-30% di memoria libera nel cluster, affinch\u00e9 il DRS (e l'amministratore) abbiano margine di manovra, e affinch\u00e9 durante la migrazione delle VM non vadano in Swap. Non dimenticare di considerare un margine per la tolleranza ai guasti. \u00c8 spiacevole quando, a causa del malfunzionamento di un server e del riavvio delle VM tramite HA, parte delle macchine va anche in Swap.<\/li>\n<li>Nelle infrastrutture ad alta consolidazione, cerca di NON creare VM con una memoria superiore a met\u00e0 della memoria dell'host. Questo aiuter\u00e0 nuovamente il DRS a distribuire le macchine virtuali tra i server del cluster senza problemi. Questa regola, ovviamente, non \u00e8 universale :)<\/li>\n<li>Fai attenzione all'allerta di utilizzo della memoria dell'host.<\/li>\n<li>Non dimenticare di installare VMware Tools sulle VM e di non disattivare il Ballooning.<\/li>\n<li>Valuta la possibilit\u00e0 di attivare l'Inter-VM TPS e disattivare le Large Pages in ambienti con VDI e di test.<\/li>\n<li>Se la VM ha problemi di prestazioni, verifica se sta utilizzando memoria da un nodo NUMA remoto.<\/li>\n<li>Estrai la VM dallo Swap il pi\u00f9 rapidamente possibile! Oltre tutto, se la VM \u00e8 nello Swap, per ovvi motivi soffre l'archiviazione.<\/li>\n<\/ul>\n<p>\nQuesto \u00e8 tutto riguardo alla memoria operativa. Di seguito troverai articoli sull'argomento per chi desidera approfondire. Il prossimo articolo sar\u00e0 dedicato allo storage.<\/p>\n<p><b class=\"spoiler_title\">Link utili<\/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.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\/it\/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=\"it_IT\" \/>\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\/it\/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\udd47Analisi delle prestazioni delle VM in VMware vSphere. Parte 2: Memoria | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/analiz-proizvoditelnosti-vm-v-vmware-vsphere-chast-2-memory","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/35292","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=35292"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/35292\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=35292"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=35292"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=35292"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}