Что такое IOMMU и улучшит ли он производительность моей виртуальной машины?

22

Чипсет My Motherboard поддерживает эту функцию IOMMU , я прочитал (но не очень понимаю), что он улучшает виртуальную машину производительность, позволяя виртуальной машине использовать фактическое физическое оборудование вместо виртуального оборудования.

Действительно ли это приводит к повышению производительности в виртуальной машине? и если он делает, как я могу сделать Virtualbox выгодным из этого?

    
задан Uri Herrera 07.12.2011 в 04:52
источник

1 ответ

15

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

Это поможет узнать, что именно эта материнская плата / процессор рекламирует. IOMMU является системным механизмом отображения IO и может использоваться с большинством устройств.

IOMMU звучит как общее название Intel VT-d и AMD IOV. В этом случае я не думаю, что вы можете мультиплексировать устройства, это очень похоже на прохождение PCI перед тем, как все эти причудливые инструкции по виртуализации существуют :). SR-IOV отличается, периферийное устройство должно нести поддержку. HW знает, что он виртуализирован и может делегировать HW slice самого VM. Многие виртуальные машины могут разговаривать с устройством SR-IOV одновременно с очень низкими накладными расходами.

Единственное, что быстрее, чем SR-IOV, - это PCI-транзит, хотя в этом случае только одна виртуальная машина может использовать это устройство, даже операционная система хоста не может ее использовать. Пропуск PCI был бы полезен, например, для виртуальной машины, которая запускает интенсивную базу данных, которая была бы выгодна для присоединения к SAN FiberChannel.

Приближение к HW имеет ограничения, однако это делает ваши виртуальные машины менее переносимыми для развертываний, которые требуют живой миграции, например. Это относится как к переходу SR-IOV, так и к PCI.

По умолчанию виртуальные развертывания Linux обычно используют VirtIO , с которого довольно быстро начать.

    
ответ дан ppetraki 07.12.2011 в 05:47
источник