Come abilito più core nel mio ambiente virtuale?


21

Ho installato Ubuntu in un ambiente virtuale usando Oracle VM VirtualBox Manager e funziona benissimo.

Tuttavia, vorrei abilitare più core - come si vede nell'immagine sotto la mia macchina Windows ha 2 core:

inserisci qui la descrizione dell'immagine

Ora quando eseguo lscpuUbuntu ricevo le seguenti informazioni che rivelano che viene utilizzato solo 1 core:

inserisci qui la descrizione dell'immagine

Ho provato a modificare le impostazioni della scatola virtuale per abilitare più processori ma non mi permetterà di farlo come mostrato nell'immagine qui sotto:

Immagine

Come abilito più core (processori) nel mio ambiente virtuale?

Risposte:


18

Per abilitare più di 1 CPU nella VM, sono inoltre necessarie le seguenti impostazioni:

  • Hardware guest virtuale a 64 bit nella scheda Impostazioni generali (per guest a 64 bit)

    inserisci qui la descrizione dell'immagine

  • abilitare I / O APIC nella scheda Impostazioni della scheda madre

    inserisci qui la descrizione dell'immagine

  • abilitare la virtualizzazione hardware (VT-x / AMD-V) nella scheda Accelerazione

    inserisci qui la descrizione dell'immagine

Se si esegue la VM su tutti i core disponibili, è possibile che si verifichino prestazioni dell'host migliori quando si assegna un limite di esecuzione alla CPU.

Se non è stata abilitata la funzionalità CPU hot plug della virtualbox, la modifica del numero di core può essere eseguita solo su una macchina che è stata spenta .

Un aumento delle prestazioni nell'ospite è prevedibile solo per il software che utilizza diversi core. Solo allora dare senso a tutti i core con un limite di esecuzione.


quindi questo non è possibile su Ubuntu a 32 bit?

1
@cipricus grazie per l'avviso, 64-bit è richiesto solo per un ospite a 64-bit, ovviamente.
Takkat,

@Takkat Sto usando Ubuntu a 32 bit come SO guest. Come posso abilitare più cpus?
smwikipedia,

15

Se la tua VM è attualmente in esecuzione (o "Salvato") non puoi modificare quel valore. Spegni prima la VM.


Sarebbe davvero bello se potessimo scambiare processori in fase di esecuzione. Ciò darebbe alla CPU una nuova dimensione.
Tomáš Zato - Ripristina Monica il

2
Virtualbox supporta l'hot-
plug

1

Stavo lavorando su un programma multithread eseguito in ordine sequenziale su una macchina virtuale. Ho avuto un problema simile al tuo. L'ho risolto da:

  1. Ferma la macchina virtuale o esci.
  2. Avvia VMWare -> Seleziona macchina -> Fai clic su Sistema -> Fai clic su Processore -> Modifica processori numero.
  3. Avvia la macchina virtuale.

Precedentemente std :: thread :: hardware_concurrency () dal thread standard ha restituito 1, ma, dopo le modifiche, restituisce il numero di CPU nelle impostazioni della macchina virtuale.

Ora, sono stato in grado di eseguire correttamente i miei programmi multithread su VM.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.