Se vi dovesse capitare di provare ad avviare una macchina virtuale in Hyper-V (su una macchina di sviluppo, una workstation, dove vengono fatti girare molti software e non solo VM) e di vedere un simpatico errore che vi dice che la memoria è insufficiente per avviarla, ma in realtà ne avete a disposizione, vi consiglio di controllare quali applicazioni avete in esecuzione.
Mi spiego meglio: semplificando (Raf perdonami se scrivo castronerie) ogni applicazione ha una dimensione minima e massima delle pagine di memoria occupabile (chiamato Working Set).
Mi trovavo nella situazione di avere 6GB di RAM liberi e non poter avviare una macchina da 2GB. Intollerabile.
Ricercando nella KB ho trovato questa patch qui, che però non era applicabile al mio Windows Server 2008 R2. Mi sono armato di Windows Internals, perchè quel “When you try to start a Hyper-V virtual machine, the operation may fail because of a memory allocation issue.” puzzava di bruciato da morire.
Leggendo la sezione relativa al Memory Management e ai Working Set, mi è venuto in mente di cercare dove potessi trovare dei dati espliciti senza iniziare a ravanare coi tools di Sysinternals, ed ho ricordato che in System Information (msinfo32.exe) c’era molto di quello che cercavo.
Infatti, ecco il colpevole:
Quel simpaticone di MetroTwit ha un Max Working Set di 4GB (è in kb il valore)!
Quindi MetroTwit verrà probabilmente rimpiazzato, e io mi sono guadagnato il rancio serale
PS.: Per ulteriori informazioni qui.