Как я могу эмулировать больше процессорных ядер виртуальных процессоров, чем физически доступно в Windows?

4251
Basit Anwer

Есть ли способ, которым я мог бы эмулировать количество логических / физических процессоров для Windows, таких как виртуализация (ВМ)?

Мне нужно смоделировать процессоры с более чем 64 и увидеть некоторые незначительные функциональные возможности некоторых вызовов C ++ в Windows Server 2008 R2


Изменить: мне просто нужно, чтобы система сказала, что она имеет больше ядер, производительность и точность не имеет значения

4
Можете ли вы быть более точным о том, что вы хотите? Вы хотите, чтобы система говорила, что у нее больше процессоров? Или вы хотите, чтобы система выполняла код так, как если бы она имела больше процессоров? Тебе нужна точность? Вам нужна производительность? David Schwartz 11 лет назад 0
ну на самом деле моя причина может быть глупой / длинным выстрелом, но я хотел проверить это http://stackoverflow.com/questions/10877182/getprocessaffinitymask-returns-processaffinty-and-systemaffinity-as-1-overflow#comment14175013_10877182 Basit Anwer 11 лет назад 1
Относится к [Serverfault] (http://serverfault.com/questions/9313/how-can-i-emulate-more-virtual-cpu-than-physically-available). Diogo 11 лет назад 1
Я экспериментировал с VirtualBox, QEMU, KVM и OpenVZ. Всякий раз, когда я выбирал больше ядер, которые фактически имелся на сервере (включая HTT), виртуальные машины приходили на сканирование. Они не хотели, чтобы их «обманули», потому что было доступно 64 процессора, хотя на самом деле их было всего 32. kobaltz 11 лет назад 1
Это означает, что виртуальную ОС можно обмануть, думая, что она может иметь больше процессоров, чем физически доступно Basit Anwer 11 лет назад 0
VirtualBox позволяет только удвоить фактическое количество процессоров, разве мы не можем увеличить? Basit Anwer 11 лет назад 0
@Diogo, пожалуйста, вставьте тот же комментарий в раздел ответов, чтобы я мог отметить его правильно :) Basit Anwer 11 лет назад 0
@KiNGPiN Я его опубликовал, но удалил, потому что кто-то по какой-то причине отказался. Удалено и отредактировано. Diogo 11 лет назад 0

1 ответ на вопрос

5
Diogo

Да, есть способ, на самом деле есть также эмулятор процессора с открытым исходным кодом под названием QEMU, вы можете использовать его с -smp Xаргументом:

QEMU является универсальным эмулятором и виртуализатором машин с открытым исходным кодом.

При использовании в качестве эмулятора компьютера QEMU может запускать операционные системы и программы, созданные для одной машины (например, платы ARM), на другой машине (например, на вашем собственном ПК). Используя динамический перевод, он достигает очень хорошей производительности.

При использовании в качестве виртуализатора QEMU достигает почти собственной производительности, выполняя гостевой код непосредственно на центральном процессоре хоста. QEMU поддерживает виртуализацию при выполнении под гипервизором Xen или при использовании модуля ядра KVM в Linux. При использовании KVM QEMU может виртуализировать x86, сервер и встроенный PowerPC и гостей S390.

Кроме того, если вы хотите узнать больше об эмуляции ядра, прочитайте эту статью в разделе 2 «Ядро эмуляции процессора» или даже в этом посте о ServerFault.

Ах да, потому что QEMU фактически виртуализирует весь процессор, а не выполняет сквозную передачу. Вы теряете в производительности, но это намного гибче. Journeyman Geek 11 лет назад 2
Хороший описательный ответ. Спасибо :) Basit Anwer 11 лет назад 0

Похожие вопросы