Ciao a tutti, su di una host con esx 4.1 mi trovo in una sitazione, relativa all'utilizzo della memoria, un pò strana nel senso che l'host utilizza il 92% di tutta la memoria mentre le due vm ne utilizzano rispettivamente il 10% e l' 8%.
Vorrei capire il perchè di tutto quest'utilizzo di memoria da parte di esx considerando che solo qualche giorno addietro l'host utilizzava il 30% della memoria, potrebbe esserci qualche problema ? che tipo di verifica potrei fare ?
Grazie.
-
Salvatore.
Attenzione perchè mi sa che stai guardando solo la Active memory, mentre se osservi la memoria allocata ("Host memory" per ogni VM) vedrai che è molta di più (7.17 GB per VM1 e 1.03 GB per VM2). E' memoria fisica che è stata assegnata alle due VM e dal punto di vista dell'host risulta utilizzata (ecco perchè hai un consumo alto), anche se effettivamente le VM non la stanno accedendo. L'allocazione dipende dal tipo di s.o. Guest che hai nella VM e da come questo sfrutta la ram a disposizione, per cui non significa che ciò che vedi sia automaticamente un problema. Piuttosto una VM con 8GB di Ram ma che ne sfrutta solo un 10% "potrebbe" (non so se è il tuo caso) essere sovradimensionata.
Ciao,
il tool migliore resta sempre esxtop, da eseguire da command line.
Potrebbe essere qualche processo di ESXi, qualche driver aggiuntivo.......Questi non vengono ovviamente computati nel calcolo della memoria delle varie VM.
Ciao,
Luca.
cerco di aggiungere un dato in più in merito all'utilizzo della memoria, in merito alla vm a cui sono assegnati 8GB (e quindi se possa sovradimensionata o meno) questa ha come OS WIndows ed attualmente usa solo 2.5GB di memoria però allego un report di Veeam Monitor e non capisco il perchè di tanto utilizzo (faccio riferimento al valore consumed).
in effetti non è un dato in più (corrisponde a quello fornito da vsphere) però non capisco se è tanta o no !
grazie.
-
Salvatore.
Beh, il valore di 2.5 corrisponde, hai 1.51 di shared + 0,63 di active, cui aggiungere l'overhead: se sono 8 Gb assegnati non è trascurabile.
Io ridurrei l'assegnazione di memoria visto che non li usi mai tutti.
Attenzione anche che hai preso più di 1 Gb di balloning, controlla se non hai aggregato troppe VM su quel nodo (anche il valore di tps è indicativo a tal proposito).
Occhio che la consumed memory è relativa all'host, che ha in carico anche altre VM. Da docs ufficiali:
Consumed Host Memory - Amount of machine memory used on the host. Consumed memory includes Includes memory used by the Service Console, the VMkernel, vSphere services, plus the total consumed metrics for all running virtual machines.
Active Guest Memory - Amount of guest “physical” memory actively used.
Bisognerebbe quindi regionare sui parametri di host memory prendendo in considerazione tutte le VM ospitate.
Ciao,
Luca.
su questo host ci sono solo due vm in esecuzione quindi considerando la tipologia di macchina non credo siano tante.
Quindi i valori host memory e consumed fanno riferimento alla memoria utilizzata dall’host per gestire questa VM, è così ?
In allegato l'attuale utilizzo della memoria in riferimento all'host (ci sono 10GB di memoria fisica).
Grazie.
-
Salvatore.
Esatto, è la ram che l'host sta usando per la VM.
2 VM possono essere poche ma nel tuo caso hai allocato 11 GB per le 2 VM mentre l'host ha 10 GB di ram; se le VM chiedessero il 100% di ram (o anche meno perchè non ho contato SC e VMkernel) il tuo host sarebbe costretto a swappare (con decadimento delle performance). Non è il numero di VM che conta ma quanta ram gli devi mettere a disposizione...
Ciao, concordo con te che non è una questione di quante VM sono sull'host bensì di quante risorse le vengono assegnate, però il mio dubbio per cui ho aperto la discussione nasce dal fatto che attualmente non ho problemi di prestazioni sulle VM però a livello di host ho come memoria usata un valore pari al 90% !..e per questo mi chiedo il perchè.
Effettivamente allora come si diceva all'inizio tale valore non rappresenta di per sè un un indice di sofferenza della macchina però se così fosse allora credo sia fuorviante e probabilmente sarebbe opportuno che vsphere 'presenterebbe' le risorse in uso (in particolare l'utilizzo della memoria) in una forma diversa da quella attuale.
In conclusione io faccio sempre molta difficoltà a capire partendo dagli indici offerti da vsphere (resource allocation sia per l'host sia per le vm) se una vm necessita o meno di ulteriore memoria (o se al contrario è sovradimensionata) e per capirlo mi resta soltanto da analizzare il comportamento dell'OS installato sulla VM stessa.
Grazie.
-
Salvatore.
Ciao,
il valore di occupazione di memoria sull'esx non è altro che la somma della memoria assegnata alle vm, almeno finchè ci sono risorse, dopo di che entrano in gioco i meccanismi di memory reclamation (nell'ordine: page sharing, balooning, compression e swapping)
La regola standard è che la somma della ram assegnata alle vm sia minore della ram fisica dell'esx, nel tuo caso ne hai allocato di più.
Per capire invece se una vm è ben dimensionata devi monitorare lato OS quanta memoria effettiva utilizza oppure lato esx l'active memory ti dà abbastanza l'idea di quanta memeria le vm accedono, potrebbe essere che la vm a cui hai assegnato 8 GB in realtà non ne utilizzi mai più di tot, allora quel tot più un certo margine sarà la memoria ottimale da assegnare.
In ogni caso la cosa da evitare è di andare in swap, caso in cui hai degrado di performance
Saluti
Simone
quale grafico si può analizzare per verificare se la VM vada in swap?
1) Col Performance Monitor (Advanced): selezioni Memory e nelle options puoi abilitare Swap Out e Swap In (memoria scritta sullo swap e viceversa).
La stessa cosa la puoi fare a livello di host.
2) Selezioni la VM, vai su Resource Allocation e vedi se nella Guest Memory "Swapped" e diverso da zero
