Consumo excesivo de CPU en VirtualBox

En mi ordenador personal uso VirtualBox para virtualizar y hacer algunas pruebas. Hoy me percaté de que el ventilador de la CPU estaba a tope y el proceso VirtualBox andaba al 100%, pero curiosamente en la máquina virtualizada no estaba haciendo nada.

Tras un rato de búsqueda, parece ser que algunas distribuciones usan un kernel compilado para funcionar a una frecuencia muy alta (1000Hz), como es el caso de CentOS, y tenemos varias alternativas. La que me ha parecido más fácil:

  1. Editar el fichero de opciones de GRUB (en CentOS está en /etc/grub.conf, en otras distribuciones suele estar en /boot/grub/menu.lst).
  2. Buscar la entrada con la que arranca el sistema
  3. Añadir los parámetros de arranque:
    divider=10 clocksource=acpi_pm
    

    Es decir, la directiva kernel debe tener la siguiente pinta:
    kernel /vmlinuz-2.6.18-164.10.1.el5 ro root=/dev/VolGroup00/LogVol00 divider=10 clocksource=acpi_pm
    
  4. Reiniciar la máquina

Y ya está, a disfrutar del silencio de unos ventiladores que no se pondrán en marcha a menos que sea necesario :-)

Hay otros métodos, como recompilar el kernel o usar un kernel específico para máquinas virtuales. Podéis verlos en High CPU usage when running a CentOS guest in VirtualBox.

Clasificado como

Comentarios

Imagen de AnĂłnimo
Gufete

No solo estas cosas le pasan a VirtualBox, también a VMware

Curiosamente, en RHEL 5.4 ya no hace falta :)