Scusate ma ho un piccolo dubbio... nel leggere qua e la come gestisce vmware la memoria host nei riguardi delle varie vm mi è capitato di leggere (vado a ricordo!) che una vm guest può superare la memoria massima allocata.
Da qui volevo chiedervi se ho capito bene alcune considerazioni....
ho un os guest VM1 con 4GB ram assegnata; in normale esercizio immagino che me ne usi ad es. 2, di queste 2 sicuramente qualcosa sarà in share memory con altre vm presenti, giusto? e sotto questo aspetto posso "giocare" alla voce resource allocation memory per variare lo shares tra normal, low, oppure variare il reservation se non ho intenzione di condividerla con altre, giusto?
Ammettiamo ora che per qualche processo particolare abbia "fame" di ram, VM1 potrebbe andare oltre i 4 GB? cioè potrebbe andare oltre al limite che gli ho assegnato alla voce hardware?
grazie.
non so se ho capito bene, comunque se assegni a una VM 4 GB di ram, per il sistema operativo guest è come se avesse a disposizione 4 GB di ram fisica e quindi di più non ne userà mai.
La memoria che si puo' sovraallocare è quella dell' host: puoi avere un host con 4 GB di ram e creare due VM con 3 GB l'una (sto esagerando): l'hypervisor cerchera' di soddisfare le richieste usando sharing, ballooning, swap....
si su questo tuo esempio non avevo dubbi, io mi riferisco al fatto che abbia una vm di 4GB possa chiederne di più mentre è in attività.
Nell'esempio che ho posto poniamo di avere un host di 84GB.
Secondo le mie conoscenze a richiesta maggiore dovrebbe intervenire lo swap (della guest os) che poi ovviamente si traduce in i/o sulla san o dischi dell'host!
sì: a livello di guest se il s.o. ha bisogno usa lo swap, cioe' scrive su disco. Il disco è un .vmdk quindi ovviamente c'è lavoro per lo storage.
Detto questo non riesco ancora a capire la domanda... perché la VM dovrebbe usare più RAM di quella che gli allochi? E' vero che c'è un overhead usato dall'hypervisor ma è piccino, soprattutto in un host da 84GB.
la domanda è proprio quella... può succedere che la VM prenda più ram rispetto a quella assegnata? purtroppo non trovo l'articolo che avevo letto, a questo punto credo di ricordare male.
Ma allora pongo un'altra domanda, a che serve la voce "limit"?
l'help dice
A virtual machine cannot benefit from more memory resources than its configured virtual hardware memory size. The ESX/ESXi host caps memory resource use to the maximum useful for the virtual machine, so you can accept the default of Unlimited memory resources.
ok ma non capisco l'utilizzo dell'impostazione in limit se poi "comanda" cio che è stato impostato nell'hardware!
non ho mai usato queste impostazioni, posso immaginare che quel limite si possa impostare in caso si voglia far vedere al s.o. una certa RAM fisica ma limitarne il consumo a un livello inferiore.
Se è così, sono casi piuttosto particolari.
scusa se insisto ma non sono d'accordo... infatti alla voce reservation c'è un indicatore che ti da il valore assegnato a livello hardware, al contrario alla voce limit puoi arrivare a quasi al 100% della memoria dell'host.
ci deve essere un altra spiegazione.
Ciao a tutti
prima di tutto spero di aver individuato correttamente la questione 😄
per quello che mi ricordo il limit fa riferimento all'utilizzo fisico delle risorse sull'host ovvero pone un cap sulle risorse disponibili su nodo che la vm in
questione può utilizzare ,questo spiegherebbe nel tuo caso l'utilizzo della swap del S.O virtuale dovuta ad un probabile applicativo (o servizio...)
che ha richiesto alla VM più memoria rispetto al limit configurato
Provo a fare un po' chiarezza, non è detto che ci riesca:smileylaugh:
- Sulla prima domanda, è possibile far aumentare "a caldo" la memoria di una VM accesa attraverso la funzione Hot-Add disponibile solo sulle versioni Enterprise e Enterprise+ e funziona solo su determinati sistemi operativi. Questa funzione NON è automatica ma si può decidere che una VM accesa con 4 GB di vRAM possa passare a 8 senza doverla riavviare.
- Il parametro Limit della Memoria della VM coincide con la Memoria assegnata, ma si può decidere di mettere un valore più basso. In questo caso la VM potrà usare al massimo di RAM fisica del server, se disponibile, la quantità indicata dal valore di Limit. Nel caso in cui la VM voglia usare più memoria di quella indicata dal limit verrà forzato l'utilizzo del file vswp anche se c'è disponibile della RAM fisica. Io non lo uso molto.
My 2 cents
Max
grazie Max, direi che sia chiarissimo. Sul Limit è come l'avevo capito io (anche se non sono riuscito probabilmente a spiegarmi).
In effetti sembra una cosa assurda ma penso lo scenario di utilizzo sia quello in cui un applicativo 'antipatico' rifiuta di partire se non vede almeno TOT RAM fisica sulla VM. Però noi sappiamo che ne sfrutta molta meno quindi lo vogliamo "accontentare" senza effettivamente sprecare ram allocandola a una vm che non la sfrutta mai.
ciao
@Daniele: da quello che dici mi confermi che se anche imposto ad es. a 4GB una VM lei può per motivi causati dal suo os. + prg o servizi prenderne di più! giusto?
@Massimiliano: "Il parametro Limit della Memoria della VM coincide con la Memoria assegnata" ... ??? ma se guardi di default la voce limit è impostata come unlimited e in grigio viene indicato un valore che è quasi il tot. della ram fisica (reale) del nodo esx. Quindi se io voglio che la mia vm abbia 4BG di rma e solo quelli deve usare devo impostarli sia alla voce hardwareche alla voce limit?
ciao
Lascia perdere il Wizard, se è Unlimited arrivi al massimo di quella assegnata, una VM non può in autonomia aumentare la propria memoria, se un sistema operativo avrà bisogno di usare più memeria userà il suo pagefile
Max
ok ma concedimi questo dubbio: che senso ha per la vmware dare la possibilità di impostare un limite di memoria superiore (e anche di molto) rispetto a quella che si assegna nell'hardware se mi dici che le vm di più non possono prendere? una "svista" dei loro programmatori?
ciao
Serve come sistema di sicurezza, metti mai che a qualcuno scappi una configurazione sbagliata. Non ci fosse potresti impostare un valore molto superiore di memoria, e ESXi per soddisfare la richiesta dovrebbe utilizzare il suo swap, degradando in modo sensibile le performance e soprattutto anche quelle delle altre VM.
Ciao,
Luca.
ciao
no una vm non può usare più memoria di quanto gli viene assegnata superato questo limite entrano in gioco i file di paging o swap (del S.O)
il limite che configuri non è relativo alla memoria della vm , ma relativo alle pagine di memoria che vengono schedulate sul nodo da quella macchina