¿Cómo habilito múltiples núcleos en mi entorno virtual?

21

Instalé Ubuntu en un entorno virtual usando Oracle VM VirtualBox Manager y funciona muy bien.

Sin embargo, me gustaría habilitar múltiples núcleos: como se ve en la imagen a continuación, mi máquina Windows tiene 2 núcleos:

ingrese la descripción de la imagen aquí

Ahora, cuando ejecuto lscpuUbuntu, obtengo la siguiente información que revela que solo se está utilizando 1 núcleo:

ingrese la descripción de la imagen aquí

Intenté cambiar la configuración de la caja virtual para habilitar múltiples procesadores, pero no me permitirá hacerlo como se muestra en la imagen a continuación:

Imagen

¿Cómo habilito múltiples núcleos (procesadores) en mi entorno virtual?

Hasse Andersen
fuente

Respuestas:

18

Para habilitar más de 1 CPU en su VM, se necesitan además las siguientes configuraciones:

  • Hardware virtual invitado de 64 bits en la pestaña Configuración general (para invitados de 64 bits)

    ingrese la descripción de la imagen aquí

  • habilite I / O APIC en la pestaña de configuración de la placa base

    ingrese la descripción de la imagen aquí

  • habilitar la virtualización de hardware (VT-x / AMD-V) en la pestaña Aceleración

    ingrese la descripción de la imagen aquí

Tenga en cuenta que si ejecuta su VM en todos los núcleos disponibles, puede experimentar un mejor rendimiento del host al asignar un límite de ejecución a la CPU.

Si no ha habilitado la función de CPU de conexión en caliente de virtualbox, el cambio de la cantidad de núcleos solo se puede hacer en una máquina que se apagó .

Es de esperar un aumento de rendimiento en el invitado para el software que hace uso de varios núcleos. Solo entonces dar sentido a todos los núcleos con un límite de ejecución.

Takkat
fuente
Entonces, ¿esto no es posible en un Ubuntu de 32 bits?
1
@cipricus gracias por el aviso, por supuesto, solo se requiere 64 bits para un invitado de 64 bits.
Takkat
@Takkat Estoy usando Ubuntu de 32 bits como SO invitado. ¿Cómo puedo habilitar múltiples cpus?
smwikipedia
15

Si su VM se está ejecutando actualmente (o "Guardado"), no puede cambiar ese valor. Apague su VM primero.

0x80
fuente
Aunque sería realmente genial si pudiéramos intercambiar procesadores en tiempo de ejecución. Eso le daría a la aceleración de la CPU una nueva dimensión.
Tomáš Zato - Restablece a Mónica el
2
Virtualbox admite la conexión en caliente de la CPU
brunoqc
1

Estaba trabajando en un programa multiproceso que se ejecutaba en orden secuencial en una máquina virtual. Tuve un problema similar al que tuviste. Lo arreglé por:

  1. Detenga la máquina virtual o salga.
  2. Inicie VMWare -> Seleccione la máquina -> Haga clic en Sistema -> Haga clic en Procesador -> Cambiar procesadores de números.
  3. Inicie la máquina virtual.

Anteriormente, std :: thread :: hardware_concurrency () del subproceso estándar devolvió 1, pero, después de los cambios, devuelve el número de CPU en la configuración de la máquina virtual.

Ahora, podía ejecutar mis programas multiproceso en VM con éxito.

Prashant Nidgunde
fuente