Skip to main content

Como limitar la CPU en VirtualBox 4

Las razones para limitar el uso de cuanta CPU va a emplear una máquina virtual pueden ser variadas. Un ejemplo puede ser el de tener varias máquinas virtuales ejecutándose simultáneamente y controlarlas para que el rendimiento del sistema no caiga dramáticamente. De no ser así, una máquina virtual podría tomar tanto tiempo de CPU como necesite reduciendo el rendimiento de otras máquinas virtuales y del propio anfitrión.

Preferiblemente hubiera deseado un control fijo sobre las máquinas virtuales y no porcentual, similar a lo que ofrecen los alojamientos web basados en VPS. Es decir controlar en algo como megahercios la CPU virtual, en vez de en porcentaje.

Así es, el control sobre las CPUs se basa en porcentaje sobre la CPU virtual del anfitrión. Veamos como hacer esto.

A través del GUI propio de VirtualBox no tenemos control sobre esta característica. Necesitamos ejecutar el comando VBoxManage desde un terminal.

Abrimos un terminal desde Aplicaciones -> Accesorios -> Terminal o pulsando CTRL+ALT+T simultáneamente.

La perspectiva más interesante creo que es cuando las máquinas virtuales están en ejecución, aunque también podemos limitar el uso de CPU de las máquinas virtuales antes de que inicien su ejecución.

Limitar CPU en ejecución

Para conocer las máquinas virtuales en ejecución usaremos la siguiente orden:

VBoxManage list runningvms

VBoxManage es el comando que permite tomar el control sobre VirtualBox, y list runningvms nos muestra un listado de las máquinas virtuales en ejecución. En mi caso muestra:

"u1010" {0f086fe3-35a9-4162-b9da-708c11b49abc}

Una máquina en ejecución, de nombre u1010 seguido de su identificador. Es un Ubuntu Desktop 10.10 Maverick.

Ahora que sabemos como se llama la máquina virtual podemos tomar su control. Con el siguiente comando vamos a limitar el uso que hace de CPU al 25%:

VBoxManage controlvm u1010 cpuexecutioncap 25

La plantilla de la orden a ejecutar sería:

VBoxManage controlvm nombrevm cpuexecutioncap cpu%

Donde nombrevm es el nombre de la máquina virtual a controlar y cpu% el porcentaje de 1-100 de tiempo de CPU.

Limitar la CPU en máquinas desactivadas

De un modo similar al anterior haremos un listado de las máquinas virtuales que aloja VirtualBox. Desde una terminal ejecutamos:

VBoxManage list vms

"arch32" {cb6b291a-4151-47a1-8f85-c0c0810a16fe}
"u1010" {0f086fe3-35a9-4162-b9da-708c11b49abc}

Vemos dos máquinas virtuales. Para limitar el uso de CPU usaríamos la siguiente plantilla de comando:

VBoxManage modifyvm nombrevm --cpuexecutioncap cpu%

Por ejemplo para limitar al 75% la CPU de la máquina virtual con Ubuntu 10.10 (la que tiene por nombre u1010) ejecutaríamos la siguiente orden:

VBoxManage modifyvm u1010 --cpuexecutioncap 75

Desde la línea de comando se tiene un control completo de las máquinas virtuales de VirtualBox. Se pueden arrancar, congelar o apagar. Variar sus características o como hemos visto en esta entrada los recursos de CPU que emplean. Todo esto hace sencillo el preparar unos scripts para aprovechar al máximo VirtualBox.

En la pruebas se ha usado VirtualBox 4.04 en Ubuntu 10.04 64 bits.

Usar imagen ISO en Ubuntu

Las imágenes ISO son ficheros con el contenido de los datos de un medio óptico como un CD o DVD. EL uso habitual de una imagen ISO es el de grabarla en un soporte físico. Pero la versatilidad de Linux y Ubuntu en especial nos permite acceder a esos datos sin grabarlos.

En Ubuntu podemos montar una imagen ISO de un cederrón o dvd en una directorio del sistema de ficheros y acceder como a cualquier otro directorio. No necesitamos aplicaciones de terceros como en otros sistemas operativos.

Vemos los pasos para lograr esto. Usaremos como nombre del archivo a montar “archivo.iso”. Abrimos una terminal del modo habitual, desde el menú Aplicaciones -> Accesorios -> Terminal, o pulsando simultáneamente CTRL+ALT+T. Iremos copiando los siguientes comandos:

sudo mkdir /media/cd

El cual crea un directorio que nos servirá de puto de montaje de la imagen ISO.

sudo modprobe loop

Cargamos el modulo loop del kernel.

sudo mount -t iso9660 -o loop archivo.iso /media/cd

Montamos la imagen de cd/dvd “archivo.iso” en el directorio /media/cd. La imagen esta localizada en el directorio desde el que lanzamos el comando, si no añadiríamos la ruta hasta el archivo, o nos desplazaríamos al lugar donde esta el archivo.

Con esto queda la imagen montada. En segundos nos aparecerá el icono del CD en el escritorio. Podemos acceder por ahí, o por la ruta que le dimos en el primer paso.

Podría ser que no se haya montado correctamente. Además de iso9660 se usa el formato UDF para el sistema de ficheros de los cederroms y DVDs. Si este fuera el caso el comando no varia mucho. Sería así:

sudo mount -t udf -o loop archivo.iso /media/cd

Cuando acabemos, podemos estar interesados en desmontar la imagen para lo que usaremos el siguiente comando:

sudo umount /media/cd

Estos comandos son válidos para todas las ediciones de Ubuntu.

Instalar Jdownloader en Ubuntu

El mundo de la descargas en Internet ha ido evolucionando poco a poco desde sus inicios. Desde el FTP hasta el P2P pasando por otras tecnologías. Hoy día probablemente el grueso de las descargas se hace  en lo que viene a llamase Descargas Directas. Esto no es mas que un servicio, normalmente de pago, donde se alojan enormes ficheros que puede descargar cualquiera.

Por las características del servicio estos enormes ficheros normalmente se fraccionan. Para evitar la descarga automatizada suelen estar protegidos por captchas. Y suelen tener limitaciones en la cantidad de datos que pueden ser descargados en un periodo de tiempo.

Jdownloader es una aplicación que facilita y en la medida de lo posible sortea estas limitaciones. La aplicación esta desarrollada en java lo que la convierte en mutiplataforma, disponible tanto para sistemas Windows o Linux. Ademas soporta multitud de servicios de Descarga Directa.

Disponer de Jdownloader en Ubuntu es bien sencillo. Solo tenemos que copiar y ejecutar los siguientes comandos en una terminal (CTRL+ALT+T):

sudo add-apt-repository ppa:jd-team/jdownloader
sudo apt-get update && sudo apt-get install jdownloader

Con esto queda instalado y accesible en Aplicaciones -> Internet -> JDowloader.

La instalación es válida al menos en Ubuntu 10.04 Lucid Lynx y Ubuntu 10.10 Maverick Meerkat


Generador de contraseñas

Un comando para terminal que nos sirve para generar contraseñas aleatorias. Las contraseñas serán de 8 caracteres, pero si queremos que sean de un tamaño distinto podemos hacerlas cambiando el parámetro -c8 por -c12, por ejemplo, para contraseñas de 12 caracteres.

El comando queda así:

echo `cat /dev/urandom |tr -dc "[:alnum:]" | head -c8`