2

Добро пожаловать!

На многих компьютерах я испытывал низкую производительность 32-битных гостей, работающих на 64-битном хосте Linux (я использовал только семейство Debian). Наконец мне удалось собрать контрольные данные.

Я сделал эталонный тест, запустив собственный макрос VBA (который мы используем в нашей компании), который генерирует документ Word длиной 284 страницы, полный круговых диаграмм, таблиц и комментариев Excel. Макрос запускается как отдельная задача (исключая стандартные службы) в наборе идентично настроенных 32-разрядных систем Windows XP. Я измерил время (в секундах), необходимое для выполнения теста.

Компьютер (т.е. мой ноутбук Asus P53E) поддерживает как расширения VT-d, так и встроенную Windows XP. Он имеет 2-ядерный процессор, каждое ядро является многопоточным, поэтому в общей сложности у нас есть 4 преимущественно независимых исполнительных устройства.

Я использую последние версии VirtualBox 4.2 и VMWare Workstation 9.0 для Linux, установленные вместе на одном хосте (под управлением Mint 13 Maya), но никогда не запускаемые одновременно.

Результаты (в столбце Время) не менее точны, чем ± 10%

Вот результаты (извините за формат, но я не смог найти лучшего решения для таблиц в SO):

+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
| Host software | # processor |                    Windows kernel                    | IO APIC | VT-x/AMD-V | 2D Video Accel | Time |
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+
| VirtualBox    |           1 | Advanced Configuration and Power Interface (ACPI) PC |       0 |          1 |              0 | 1139 |
| VirtualBox    |           1 | Advanced Configuration and Power Interface (ACPI) PC |       0 |          1 |              1 | 1050 |
| VirtualBox    |           1 | Advanced Configuration and Power Interface (ACPI) PC |       0 |          0 |              1 | 1644 |
| VirtualBox    |           4 | ACPI Multiprocessor PC                               |       1 |          1 |              1 | 6809 |
| VMWare        |           1 | ACPI Uniprocessor PC                                 |         |          1 |              1 | 1175 |
| VMWare        |           4 | ACPI Multiprocessor PC                               |         |          1 |              1 | 3412 |
| Native        |           4 | ACPI Multiprocessor PC                               |         |            |                | 1693 |
| Native        |           1 | Advanced Configuration and Power Interface (ACPI) PC |         |            |                | 1170 |
+---------------+-------------+------------------------------------------------------+---------+------------+----------------+------+

Вот поразительные выводы:

  • Хотя я читал на форумах VirtualBox о ужасной производительности с 32-разрядным гостем на 64-разрядном хосте, VMWare также имеет проблемы по сравнению с собственным запуском, но все же в два раза быстрее (!) чем VBox.
  • Хотя VBA по своей природе является однопоточным, вычисления в Excel, которые занимают гораздо больше половины общего времени вычислений, предположительно не являются таковыми. Таким образом, можно ожидать некоторого увеличения скорости при работе на 2+ ядрах («+» для гиперпоточности). То, что мы видим, это потеря скорости. И довольно большой тоже.
  • Для VirtualBox расширение VT-d не имеет большого значения.
  • Если у вас есть по крайней мере 6 независимых ядер, которые вы собираетесь использовать в гостевой среде, для многопроцессорного гостевого Windows в VirtualBox нет смысла в производительности.
  • Если у вас нет как минимум 3 независимых ядер, которые вы собираетесь использовать в гостевой среде, в VMWare нет смысла в производительности для гостевой многопроцессорной Windows в гостевой среде.

Может кто-нибудь пролить свет на то, почему однопоточное ядро Windows намного быстрее, чем ядро SMP?

2 ответа2

2

Я заметил ужасную производительность в virtualbox под управлением 64-битных операционных систем, и я подозреваю, что причиной является ioapic, и я собираюсь протестировать без него, однако я хочу прокомментировать проблему ядра SMP.

На моем ноутбуке ранее у меня был одноядерный процессор, я заменил его двухъядерным процессором того же поколения и той же тактовой частоты, единственное отличие заключалось в том, что он имеет лучшие функции энергосбережения и больший размер кэш-памяти второго уровня, тактовые частоты и т.д. остальное все же. Затем я обнаружил, что после замены процессора на старое ядро Windows производительность была в порядке. Затем я переустановил Windows, после переустановки было установлено ядро APIC, и внезапно диспетчер задач сообщил о более высоком использовании ЦП для тех же задач, например. менеджер запущенных задач занял 2% процессорного времени вместо 1%. Кроме того, температура процессора была выше, как будто она работала тяжелее, что было очень сложно, особенно потому, что новая установка была чистой, а на предыдущей были установлены такие вещи, как /v. Как и вы, я пришел к выводу, что у Windows высокие многопроцессорные издержки. Это означает, что однопроцессорные приложения будут работать медленнее на многоядерных процессорах.

0

https://www.virtualbox.org/manual/ch03.html#settings-motherboard:

«Включение ввода / вывода APIC требуется для 64-разрядных гостевых операционных систем, особенно для Windows Vista; оно также необходимо, если вы хотите использовать более одного виртуального ЦП на виртуальной машине. Однако программная поддержка APIC ввода / вывода была ненадежной в некоторых операционных системах, кроме Windows. Кроме того, использование APIC ввода / вывода немного увеличивает издержки виртуализации и, следовательно, немного замедляет гостевую ОС. Предупреждение Все операционные системы Windows, начиная с Windows 2000, устанавливают разные ядра в зависимости от того, доступен ли APIC ввода-вывода. Поэтому, как и в случае с ACPI, APIC ввода-вывода нельзя отключать после установки гостевой ОС Windows. Однако включение его после установки не даст никакого эффекта ».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .