domenica 21 giugno 2009

Virtualbox: usa troppa CPU? Decapitatelo!!!!


Mi servivano due macchine virtuali debian per fare degli esperimenti.
Il "serverino" con la nuova memoria sembrava adatto ad ospitarle.
Peccato che dopo aver installato virtualbox-ose e le due macchine virtuali non rimanessero risorse sufficienti a far girare il tutto.

Ogni macchina virtuale, in stato di idle, si portava via il 30-35% di CPU, se poi una delle macchine cominciava a fare qualcosa si passava a un bel 99.4%

Diciamo che il serverino ne soffriva (oltre al caldo terribile e all'insidia delle api morte)

La soluzione e' virtualbox-puel (ovvero la versione non-open di virtualbox che non viene pubblicata sui repository ma e' scaricabile dal sito SUN/Virtualbox).

Trovate i pacchetti binari per le piu' diverse piattaforme.

Due aspetti positivi della versione PUEL non presenti sulla OSE:
1) utilizzo delle periferiche USB (ma in questo caso non era importante)
2) possibilita' di eseguire una virtual machine senza visualizzarla nella console di virtualbox

Questo consente alle macchine virtuali di girare indisturbate senza scomodare X per la visualizzazione (tantopiu' che sul server X non dovrebbe nemmeno starci ;-) e consumare risorse preziose.

I processi VboxHeadless (da qui la decapitazione del titolo) infatti utilizzeranno una percentuale irrisoria di CPU quando le VM sono in idle. La percentuale aumenta con il risvegliarsi delle VM ma torna subito a calare quando queste tornano in idle.

Per accedere alle virtual machine si utilizza un qualsiasi client RDP (rdesktop su Linux, Remote Desktop su Windows)

Per lanciare la virtual machine si usa il comando:
VBoxVRDP --startvm NOME_VIRTUAL_MACHINE -p NUMERO_PORTA_PER_RDP &

Per default, la porta assegnata per l'RDP e' 3389, le virtual machine successive alla prima devono essere assegnate ad altri numeri di porta per consentirne l'accesso.
VBoxVRDP --startvm VM1 &
VBoxVRDP --startvm VM2 -p 3390 &

Per accedere alle macchine virtuali dal vostro client vi bastera' lanciare i seguenti comandi:
rdesktop IP_ADDRESS_SERVER:3389
rdesktop IP_ADDRESS_SERVER:3390

Per inviare un comando di arresto (shutdown) alle macchine virtuali vi bastera' lanciare il seguente comando:
VBoxManage controlvm NOME_VIRTUAL_MACHINE acpipowerbutton

Quindi per arrestare le due VM dell'esempio precedente:
VBoxManage controlvm VM1 acpipowerbutton
VBoxManage controlvm VM2 acpipowerbutton

Nessun commento:

Posta un commento