Назад | Перейти на главную страницу

Как программное обеспечение виртуализации распараллеливает задачи на хосте?

Я использую виртуализацию с QEMU для тестирования программного обеспечения на разных ОС и архитектурах процессоров.

Меня раздражало то, что гость часто полностью забивает одно ядро ​​хоста и глохнет, в то время как другие ядра простаивают. Я предполагаю, что это связано с тем, что qemu не запускает собственные потоки для параллельных задач в гостевой системе. Если это правда, то какое программное обеспечение виртуализации справится с этим умнее? Я ищу решение, которое не требует изменения гостя (так что Xen не вариант).

Я искал KVM, но пока не нашел однозначного ответа. Я должен сказать, что не уверен, правильно ли я понял поддержку SMP, влияет ли это на то, как задачи распараллеливаются на хосте?

Я еще совсем не заглядывал в VMWare.

Я понимаю, как работает наша виртуальная среда (VMWare):

У вас есть возможность назначить выделенные ЦП любой виртуальной машине. Назначение 2 выделенных ЦП было бы эквивалентом физического двухъядерного блока, как у вас.

Однако, если вы этого не сделаете, вы назначите определенное количество доли процессора к каждой ВМ. Таким образом, если вы назначите 100 общих ресурсов одному и 200 ресурсов другому, вторая машина будет иметь вдвойне мощный процессор. Но фактические циклы могут обрабатываться любой хостов cpus.

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

Как правило, программное обеспечение для виртуализации позволяет вам установить количество процессоров, к которым виртуальная машина может получить доступ, и позволяет вам установить минимальное / максимальное использование процессора, используемое для всех процессоров. Это, безусловно, верно для Hyper-V и Virtual Server, хотя у меня нет опыта работы с QEMU.

Поддержка SMP относится к способности хоста представлять многопроцессорную виртуальную машину гостевой ОС. Если вы хотите выделить гостю больше ресурсов центрального процессора, скорее всего, вам придется пойти по этому пути.

Вы можете прочитать этот документ Управление ресурсами процессора от VMware.

Хотя это старая версия ESX1.5, в более новых версиях используется та же техника, и тем более. Документация для более поздних версий есть доступна здесь но похоже не гуглил

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

Вы можете посмотреть виртуальная коробка также.

Документация по QEMU не совсем ясна; используя Параметр "-smp <количество ядер>" позволяет эмулировать более одного процессора, но неясно, действительно ли это smp для нескольких ядер хоста или фактически «потоки» привязаны к одному ядру.

Продукты VMware распределяют нагрузку между несколькими ядрами, но будьте осторожны при планировании проблем с загруженными гостями, которые повлияют на общую производительность. Больше информации Вот.