Xen против KVM в производительности


36

Что быстрее на том же оборудовании, Xen или KVM?

Я пытаюсь использовать технологию виртуализации, которая дает наилучшую производительность.

Здесь я нашел несколько тестов на эту тему: http://virt.kernelnewbies.org/XenVsKVM

Они показывают KVM как победителя со значительной разницей в производительности, что противоречит идее, что KVM является гипервизором 2-го типа, и по определению он должен быть медленнее, чем гипервизоры 1-го типа (например, Xen), или, по крайней мере, что статьи в сети говорят.

Есть идеи на эту тему?


Это сравнение кажется довольно плохим, поскольку сравнивает KVM + 1xVM и Xen + 1VM ... Какой смысл иметь виртуализацию, если вы используете только виртуальную машину?
Антуан Бенкемун

KVM НЕ является гипервизором 2 типа. Это определенно тип 1, и он определенно ближе к аппаратному обеспечению, чем Xen. Так что да, учитывая точно такие же условия, KVM должен работать лучше, особенно с современными драйверами
virtIO

Если вы читаете это в 2017 году (кто-то тривиально отредактировал вопрос), то поймите, что этот вопрос и его ответы уже ВОСЕМЬ ЛЕТ . KVM vs Xen ландшафт сейчас сильно отличается.
Томасруттер

Ответы:


33

Этот тест сравнивает только скорость родной ОС с одной гостевой ОС. Это вряд ли испытание в реальном мире. Я не думаю, что я бы придавал этому большое значение. Большая часть лагеря KVM утверждает, что Xen требует слишком много прерываний и переходов между ядром и пользовательским пространством, но из большинства более реальных тестов, которые я видел, которые на самом деле не были реализованы, и Xen, кажется, немного быстрее чем квм.

Извините, у меня нет ссылки, которая бы пригодилась. Но я скажу, что KVM быстро улучшается и, похоже, быстро догоняет набор функций и стабильность.

Что касается того, какой подход лучше. Лагерь Xen будет утверждать, что для безопасной и быстрой виртуализации требуется настоящий легкий гипервизор. Xen также начинает поддерживаться в прошивках некоторыми поставщиками, что тоже приятно. Лагерь KVM будет утверждать, что KVM проще и что Linux способен быть хорошим гипервизором.

В конце концов, до сих пор неясно, какое направление в конечном итоге победит. Xen, безусловно, имеет преимущество и уже имеет хорошую долю рынка. Но его пока нет в основном ядре. Надеюсь, это скоро изменится, и в последние несколько месяцев об этом много говорилось в списке ядра. Red Hat сейчас находится в лагере KVM и будет выдвигать его в качестве платформы для виртуализации. Red Hat Linux 5.4, который выйдет в ближайшее время, будет первым, кто его включит. Так что это, вероятно, привлечет магазины, которые еще не внедрили или не внедрили платформу виртуализации

Что касается инструментов, и Xen, и KVM используют libvirt и QEMU и связанные с ними инструменты. Таким образом, они используют одни и те же инструменты, такие как virt-manager.

Мы используем Xen на работе, и он хорошо работает для нас. Но я изучал KVM из-за некоторых проблем с пересылкой через USB и прохождением PCI, которые мне не удалось решить с помощью Xen. Я не уверен, что KVM лучше в этом, но, думаю, я узнаю, как только попробую. Одна вещь, которую я заметил при исследовании моих проблем с USB, заключается в том, что документация KVM более оценена и организована по сравнению с документацией Xen. Но идеальной платформы виртуализации не существует, поэтому вам нужно выяснить, что имеет для вас смысл.


Любая идея, если же будет в будущем? Поскольку Redhat 5.4 скоро выйдет с собственной поддержкой KVM, я хотел бы знать, что мне не придется переходить на KVM с Xen через 1/2 года. Спасибо.
SyRenity

1
Я не могу делать какие-либо прогнозы относительно того, что ждет нас в будущем. Но ни одна из этих платформ не исчезнет. RedHat сказал, что они привержены поддержке Xen и KVM. Только время покажет, как этот разыгрывается. Но я не стал бы беспокоиться о том, чтобы измениться через 6 месяцев. Возможно, через несколько лет станет очевидным лидером в платформах виртуализации с открытым исходным кодом.
3dinfluence

Интересно, что вы заметили, что переходите на KVM для поддержки USB - мне просто нужно было подумать об удалении из-за отсутствия поддержки USB 2.0! Я предполагаю из твоего поста, что Ксен не будет намного лучше.
JKP

1
@jkp Я ждал замены нескольких других элементов нашей инфраструктуры. Который был только что завершен. Так что в ближайшие недели я смогу взглянуть поближе на KVM. Однако в моем случае аппаратное обеспечение не поддерживает IOMMU (VTd). Поэтому я не уверен, поможет ли переход на KVM. XEN требует поддержки IOMMU для прохождения pci. Но KVM поддерживает прохождение элементов USB и PCI с помощью libvirt. Поэтому я надеюсь, что это будет работать без IOMMU. Прямо сейчас, под Xen, единственный способ, которым я знаю, чтобы пропустить USB, - это пропустить USB-контроллер USB, но эта информация может быть устаревшей на этом этапе.
3dinfluence

1
@ 3dinfluence: я думаю, вы можете неправильно понять, как реализована поддержка USB и PCI - libvirt сама не выполняет ничего из этого, она только предоставляет способ настройки базовых возможностей гипервизора виртуальной машины. В этом случае возможности обеспечиваются комбинацией модулей ядра KVM и кода пользовательского пространства Qemu.
JKP

7

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

Скорость передачи данных в сети Xen кажется такой же хорошей, как и у реального оборудования, но у меня также было несколько сражений с Xen и vLans и несколькими картами Ethernet. У меня нет опыта работы с KVM, но я бы также посоветовал вам рассмотреть VMware ESX (i).


1
Производительность ввода-вывода Vmware-сервера очень и очень плохая. Если вам нужно перейти на vmware, используйте esx.
Ko-

6

FWIW: Ответ полностью зависит от ваших потребностей, сейчас и в будущем.

Да, я знаю, что это бесполезный ответ. К сожалению, это правда. Ваш выбор виртуализации будет влиять практически на все, что вы делаете потом, поэтому вам нужно задать себе несколько вопросов.

(1) Действительно ли разница между 97% исходной производительности и 96% исходной производительности (цифры, взятые из эфира) действительно так важна для вас?

(1a) Если один лучше справляется с HD-доступом (что на самом деле подразумевает, что вы либо используете потрясающую базу данных, либо не можете позволить себе дополнительную оперативную память), а другой лучше работает с сетью, что для вас важнее ?

(2) Вы уверены, что используете инструменты, поставляемые с любым решением?

(3) Имеет ли значение тот факт, что одно является (своего рода) родным для последних ядер Linux, а другое нет?

(3a) Вам сейчас или когда-либо ... э-э ... вам когда-нибудь понадобилось запускать другую ОС под виртуализацией? Это не должно быть Windows. Это может быть FreeBSD, или даже Haiku, или что-то еще. (Xen, вероятно, выигрывает здесь, но я предлагаю вам проверить.)

Глядя на общую картину, я вижу KVM как ответ Linux на зоны Solaris. (Я бы предпочел иметь зоны Solaris, но я вижу параллель.) Я вижу Xen как зрелую технологию гипервизора с поддержкой нескольких ОС, но если вам не нужно несколько ОС, это не имеет большого значения.

Честно говоря, вы не ошибетесь в любом случае (учитывая предостережения выше). Я предпочитаю Xen, потому что я уехал в Кембридж; но тогда, если бы я работал на RH, я бы предпочел KVM.


6

Вы найдете очень интересную информацию по этому вопросу в следующей презентации: Количественное сравнение Xen и KVM

Человек, который сделал это, является экспертом по Xen, но сравнение кажется довольно справедливым.


Спасибо за презентацию, читая, кажется, что в то время как Xen занимает первое место в CPU и Network IO, KVM возглавляет HD IO. Но, читая эти цифры ( virt.kernelnewbies.org/XenVsKVM ), кажется, что KVM выигрывал во всех сравнениях. Есть идеи где правда? :)
SyRenity

Я считаю, что моя презентация кажется более реалистичной. Одновременно запускается более одной виртуальной машины. Протокол тестирования кажется ближе к реальности.
Антуан Бенкемун

+1 Интересная презентация! Ксен, кажется, имеет лучшую изоляцию.
Джонас

5

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

Я думаю, что юзабилити и интерфейс важны, а также инструменты для поддержки надежной инфраструктуры. Мне кажется, что Xen имеет гораздо более надежный набор существующих приложений, которые его поддерживают, чем KVM. Это может быть не так, поскольку у меня нет доказательств, подтверждающих это.

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


Вам нужно взглянуть на RHEV - управление очень простое и удобное для пользователя.
Дядный

2

Большая сложность или легкость настройки KVM зависит от распределения. Выбор Xen-ориентированного дистрибутива облегчит Xen. Выбор KVM-ориентированного дистрибутива облегчит KVM.

Вопрос об инструментах несколько не имеет значения, потому что оба используют libvirt. Это означает, что вы используете одни и те же инструменты управления в большинстве случаев.


1

В конце 2017 года Amazon, который раньше был крупнейшим пользователем Xen, объявил, что будет использовать KVM для всех своих новых типов экземпляров C5 . Насколько я знаю, только облачный провайдер SoftLayer остается большим пользователем Xen. Линод перешел в 2015 году и сообщил о значительном улучшении производительности .

Трудно найти реалистичное и современное сравнение производительности, но, похоже, не существует такого огромного разрыва между обоими решениями, как вы могли бы подумать. В зависимости от варианта использования Xen может быть еще быстрее. KVM имеет и другие преимущества, будучи частью ядра Linux и принятую RedHat, которые также актуальны. Например, в этом ответе объясняется, почему Google выбирает KVM для Google Compute Engine.

Тем не менее тот факт, что почти все облачные провайдеры, особенно Google и Amazon, выбирают KVM вместо Xen, является веским аргументом в пользу того, что для типичных рабочих нагрузок KVM является очень хорошим выбором с точки зрения производительности.


Примечание. Amazon использует модифицированную версию KVM, а не собственную. И я бы не сказал, что у них типичные рабочие нагрузки, возможно, у них очень тяжелые и необычные рабочие нагрузки, imho
ALex_hha

@ALex_hha Я имел в виду, что им нужно выбрать технологию, которая лучше всего подходит для приложений, которые будут запускать их клиенты. В этом смысле они должны найти установку, которая быстра по сравнению с различными вариантами использования. Но я согласен, что есть и другие сценарии, такие как встроенные системы, в которых Xen может быть более выгодным.
Филипп Классен
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.