Как включить несколько ядер в моей виртуальной среде?

21

Я установил Ubuntu в виртуальной среде, используя Oracle VM VirtualBox Manager, и он отлично работает.

Однако я бы хотел включить несколько ядер - как показано на рисунке ниже, моя машина с Windows имеет 2 ядра:

введите описание изображения здесь

Теперь, когда я запускаю lscpuв Ubuntu, я получаю следующую информацию, показывающую, что используется только 1 ядро:

введите описание изображения здесь

Я попытался изменить настройки виртуальной коробки, чтобы включить несколько процессоров, но это не позволяет мне сделать это, как показано на рисунке ниже:

Образ

Как включить несколько ядер (процессоров) в моей виртуальной среде?

Хассе Андерсен
источник

Ответы:

18

Чтобы включить более 1 ЦП в вашей виртуальной машине, необходимы следующие настройки:

  • 64-битное виртуальное гостевое оборудование на вкладке Общие настройки (для 64-битных гостей)

    введите описание изображения здесь

  • включить I / O APIC на вкладке настроек материнской платы

    введите описание изображения здесь

  • включить аппаратную виртуализацию (VT-x / AMD-V) на вкладке «Ускорение»

    введите описание изображения здесь

Обратите внимание, что если вы запускаете виртуальную машину на всех доступных ядрах, вы можете ощутить лучшую производительность хоста при назначении ограничения производительности для CPU.

Если вы не включили функцию « горячего» подключения ЦП в виртуальной коробке, изменение количества ядер можно выполнить только на выключенной машине .

Повышение производительности в гостевой системе можно ожидать только для программного обеспечения, использующего несколько ядер. Только тогда предоставление всех ядер с ограничением исполнения имеет смысл.

Takkat
источник
так что это невозможно на 32-битной Ubuntu?
1
@cipricus спасибо за уведомление, конечно, 64-битная версия требуется только для 64-битной гостевой системы.
Таккат
@Takkat Я использую 32-битную Ubuntu в качестве гостевой ОС. Как я могу включить несколько процессоров?
Smwikipedia
15

Если ваша виртуальная машина в данный момент работает (или «сохранена»), вы не можете изменить это значение. Сначала отключите вашу виртуальную машину.

0x80
источник
Хотя было бы здорово, если бы мы могли менять процессоры во время выполнения. Это дало бы удушение CPU новому измерению.
Томаш Зато - Восстановить Монику
2
Virtualbox поддерживает горячую
brunoqc
1

Я работал над многопоточной программой, которая последовательно выполнялась на виртуальной машине. У меня была такая же проблема, как и у вас. Я исправил это:

  1. Остановите виртуальную машину или выйдите.
  2. Запустите VMWare -> Выбрать машину -> Нажмите Система -> Нажмите Процессор -> Изменить число процессоров.
  3. Запустите виртуальную машину.

Ранее std :: thread :: hardware_concurrency () из стандартного потока возвращал 1, но после изменений возвращает количество процессоров в настройках виртуальной машины.

Теперь я смог успешно запускать свои многопоточные программы на ВМ.

Прашант Нидгундэ
источник