Вопрос: Является ли виртуальная машина медленнее, чем базовая физическая машина?


Этот вопрос довольно общий, но, в частности, мне интересно узнать, будет ли виртуальная машина, работающая под управлением Ubuntu Enterprise Cloud, медленнее, чем одна и та же физическая машина без какой-либо виртуализации. Сколько (1%, 5%, 10%)?

Кто-нибудь измерял разницу в производительности веб-сервера или сервера db (виртуальный виртуальный виртуальный)?

Если это зависит от конфигурации, давайте представим два четырехъядерных процессора, 12 ГБ памяти и кучу SSD-дисков, работающих под управлением 64-разрядного корпоративного сервера ubuntu. Кроме того, только 1 виртуальная машина разрешает использовать все доступные ресурсы.


45
2018-04-24 07:18


Источник


Ubuntu Entreprise Cloud основан на KVM, а не Xen. - Antoine Benkemoun
Антуан, вы правы - «Основная стратегия виртуализации всегда была основана на KVM, хотя с развитием lib-virt управление хостами KVM и Xen унифицировано». - Я отредактирую упоминание о Xen. - Michal Illich


Ответы:


Типичный опыт работы с сервером общего назначения на голой металлической \ Type 1 Hypervisor составляет около 1-5% от накладных расходов процессора и 5-10% накладных расходов памяти, причем некоторые дополнительные накладные расходы варьируются в зависимости от общей нагрузки ввода-вывода. Это довольно много соответствует моему опыту работы современных гостевых ОС под управлением VMware ESX \ ESXi, Microsoft Hyper-V и Xen, где соответствующее оборудование было соответствующим образом спроектировано. Для 64-битных серверных операционных систем, работающих на аппаратных средствах, поддерживающих самые современные аппаратные расширения виртуализации процессора, я ожидал бы, что все гипервизоры Type 1 будут направлены на 1% -ный служебный номер. На данный момент зрелость KVM не совсем до Xen (или VMware), но я не вижу причин думать, что это будет заметно хуже, чем в примере, который вы описываете.

Для конкретных случаев использования, хотя общая \ совокупная «производительность» виртуальной среды может превышать голые металлические \ дискретные серверы. Вот пример обсуждения о том, как кластерное внедрение VMware может быть быстрее \ лучше \ дешевле, чем голой металл Oracle RAC. Методы управления памятью VMware (особенно прозрачный совместный доступ к страницам) могут полностью устранить накладные расходы памяти, если у вас достаточно VM, которые достаточно похожи. Во всех этих случаях важно то, что производительность \ эффективность, которую может обеспечить виртуализация, будет реализована только в том случае, если вы объединяете несколько виртуальных машин на хосты, ваш пример (1 VM на хосте) всегда будет медленнее, чем голый металл, до некоторой степени ,

Хотя это все полезно, реальные проблемы с точки зрения виртуализации серверов, как правило, сосредоточены на управлении, методах высокой доступности и масштабируемости. Предел производительности процессора 2-5% не так важен, как возможность эффективно масштабировать до 20, 40 или сколько угодно VM на каждом хосте. Вы можете справиться с ударом по производительности, выбрав немного более быстрый процессор в качестве базовой линии или добавив больше узлов в свои кластеры, но если хост не сможет масштабировать количество виртуальных машин, которые он может запустить, или среда сложна в управлении или ненадежный, тогда его бесполезный с точки зрения виртуализации серверов.


27
2018-04-24 15:03



Вы используете устаревшие технологии - особенно с 5% до 10% накладных расходов на память - это старое оборудование. Более новые аппаратные чипы имеют накладные расходы примерно на 2% -3%, если гипер-козырек поддерживает это, и мы говорим о том, что новый год стал новым. AMD и Intel улучшили свой API для отображения памяти Hyper-Visor. Как вы сказали позже, они попали довольно прозрачно (цель 1%). +1 для указания реальных преимуществ. - TomTom
Я основывал 5-10% на том, что я видел в VMware, и он основан на наборе pre EPT \ RVI. Имеет смысл, что улучшенное управление виртуальной памятью на основе аппаратного обеспечения в самых последних процессорах уменьшит накладные расходы RAM - Helvick
о прозрачном совместном использовании страниц, это отстой, когда у вас большие страницы памяти, которые поддерживают все новые процессоры. В этом случае вы ничего не получите. - tony roth
@Tony, это правда, только если вы не переубедились - если вы тогда ESX \ ESXi 4 предпочтет использовать небольшие страницы, и TPS начнет работать. Я не довел это до предела, поэтому я не могу подтвердить, что это действительно работает как рекламируемый, но это разумный подход, который должен позволить чрезмерное совершение, когда он абсолютно необходим, не жертвуя производительностью, когда ее нет. Видеть kb.vmware.com/selfservice/microsites/... - Helvick
@Helvick, если вы запустите win7 или w2k8r2, гость TPS не работает много, так как гость агрессивно преследует вещи. - tony roth


«Производительность» имеет много аспектов. N00bs измеряет время загрузки ОС и скажем, например, Windows 2012 является sooooooo отлично, потому что он загружается за 12 секунд на реальном HD, может быть, на 1 секунду на SSD.
Но такой вид не очень полезен: производительность равна времени загрузки ОС, но ОС загружается один раз в месяц, поэтому оптимизация не имеет большого смысла.

Поскольку это мой ежедневный бизнес, я мог бы указать на 4 следующие части, которые составляли «производительность»,

  1. Загрузка процессора
    Это должно быть сопоставимо, то есть задание, принимающее 1000 мс на голом металле, будет выполняться в течение 1000 мс и, возможно, 1050 мс тактового времени в среде бездействия VM на одном и том же оборудовании (некоторые подробности позже). Google MSDN для processtime и queryperformancecounter и yu может сделать что-то, что может показать, сколько VM потребляет процессорное время yur.

  2. Производительность SQL
    Производительность SQL сильно зависит от ввода-вывода в хранилище данных, где хранятся данные SQL. Я видел 300% -ную разницу между 1-го поколения ISCSI, которую вы можете найти на домашнем NAS-сервере Buffalo, затем ISCSI с DCE и реальной старой средой FC на всех уровнях. FC по-прежнему выигрывает в настоящее время, поскольку латентность FC является минимальной архивируемой, что приводит к «копированию» протокола FC для улучшений ЦОДов TCP / IP. Здесь IOps и задержка жизненно важны, но также и пропускная способность IO от серверного процесса до носителя - зависит от того, что приложение имеет тенденцию к No-SQL или Datawarehousing или находится в середине того, что похоже на системы ERP ... Sage KHK для малых предприятий, SAP для огромных. У обоих есть представление генерального директора о финансовой статистике предприятия, и когда генеральный директор нажимает кнопку, он фактически предоставляет отпуска в течение нескольких дней, когда подсистема ввода-вывода базы данных имеет слабые места.

  3. Доступ к файловой системе
    Некоторые приложения, такие как потоковое видео, используют гарантированную минимальную пропускную способность, другие полагаются на максимальную пропускную способность ввода-вывода, как просто использование больших файлов в шестнадцатеричном редакторе, загрузка видеопроекта в любимый фильм yur, создающий прог. Не типичная ситуация на vm .... IOps также может быть важна для разработчиков. Разработчики часто используют виртуальные машины, потому что развивающаяся среда очень чувствительна, поэтому соблазн сделать это в виртуальной машине высок. Компиляция большого проекта часто означает чтение тонны небольших файлов, создание компилятора и сборку EXE и сопровождающих компонентов.

  4. Латентность сети для клиента
    Здесь удобство использования WYSIWIG-прогов, таких как Word 2010, Openoffice Writer, LaTEX, GSView и других, сильно зависит от скорости - как быстро действие мыши происходит от клиента к серверу. Особенно в приложениях для САПР это важно ... но также и не проблема LAN, это удаленный доступ к WAN, где это важно.

Но - и я говорю с точки зрения лет консалтинга - есть пользователи, имеющие пароль администратора (и они часто являются сотрудниками BIG-компании с БОЛЬШИМ бюджетом и BIG-кошельком), жалуются на это и то, но это необходимо уточнить которые важны для них, и которые важны с точки зрения используемого ими приложения.
Скорее всего, это не блокнот, а очень сложное приложение для разработки этого и того, что также было очень дорогостоящим и должно быть перенесено на VMware, HyperV или Xenapp, и оно не работает должным образом.

Но они не имеют в виду, что он может работать на 1,5 ГГц Xeons на blade-серверах, не рассчитанных на чистую производительность процессора, они построены в среднем, скажем, «оптимизированы для $ за процессорный цикл» или «ЦП на ватт», ,

И когда мы говорим о компромиссах и экономиях, что в основном приводит к перевыполнениям. Overcommitments приводят к нехватке ресурсов, где процессор можно обрабатывать довольно хорошо, но нехватка памяти приводит к пейджингу, отсутствие ввода-вывода в основных маршрутизаторах приводит к увеличению времени ответа на все, а транзакционная перегрузка на любом хранилище может остановить любое полезное приложение от ответа слишком быстро. Здесь требуется мониторинг, но многие поставщики программного обеспечения не могут предоставить такую ​​информацию ... с другой стороны, хост с ресурсами трех физических серверов, скорее всего, сможет обрабатывать 8 виртуальных машин того же макета, что и физические ...

Компромиссы между процессорами на бездействующих системах часто приводят к тому, что системы выполняют на 50% медленнее, чем физические системы, с другой стороны, никто не может установить «реальный мир» и «реальное» приложение, которое ИТ-ребята клиента хотят переместить в виртуальную машину коробка. И требуется несколько дней (может быть, недели, но наверняка 42 встречи), чтобы ясно показать, что технология VM может предложить гибкость, торгуя чистой скоростью процессора. Это просто встроено в процессоры на этих blade-серверах, которые в настоящее время используют более крупные среды VM. Также память не будет сопоставима, также применяются некоторые компромиссы. DDR3 1600 CL10 будет иметь более высокую пропускную способность памяти, чем DDR2 800 ECC LLR, и все знают, что процессоры Intel выигрывают от этого по-другому, чем AMD cpus. Но они редко используются в продуктивных средах, больше в белых ящиках или в datacaenters, размещенных в странах третьего мира, которые предлагают услугу центра обработки данных за 10% цены, которую центр обработки данных на вашей собственной родине может выставить на счет yu. Благодаря Citrx центр обработки данных может быть повсюду, если между конечным пользователем и центром данных составляет менее 150 мс латентности.

И перспективы домашних пользователей .... 

И последнее, но не менее важное: некоторые люди хотят выбросить Win7 или XP и обменять их на Linux, а затем возникает вопрос о игровых проблемах, потому что на Linux и Windows доступно всего несколько игр. Игровые игры сильно зависят от 3D-ускорения. Рабочая станция VMWare 6.5 и подключенный бесплатный проигрыватель могут обрабатывать DirectX 9, то есть Doom3 в виртуальной машине может работать на графической карте хоста в полноэкранном режиме. Игры - это в основном 32-битные приложения, поэтому они не будут есть больше 3 ГБ и в основном не более трех процессоров (см. Crysis). Новые игроки VM и WS могут обрабатывать более высокие версии DirectX и, вероятно, OpenGL ... Я играл в UT и UT2004 на VMware 6.5, у хоста был ATI Radeon 2600 mobile и T5440. Он был стабильным на 1280x800 и воспроизводимым даже в сетевых играх ....


21
2017-12-17 21:45



Нам нравятся хорошие ответы на вечные вопросы. Добро пожаловать в Server Fault! - Michael Hampton♦


Да. Но это не вопрос. Разница обычно нечитаема (от 1% до 5%).


9
2018-04-24 07:25



Я верю тебе. Но все же: можете ли вы связать бенчмарк, где кто-то его оценил? - Michal Illich
Это зависит от множества факторов, которые могут ответить на ваш вопрос. Это зависит от того, какой у вас гипервизор, спецификация сервера, хранилище и, самое главное, что еще происходит с хостом в данный момент. - Chopper3
На самом деле это не так. На самом деле, если вы много чего делаете, физическая машина разделяется. Но накладные расходы на гипер-козырек довольно стабильны к настоящему времени, учитывая аппаратную виртуализацию. Anturally, если вы начнете загружать несколько виртуальных машин, получившаяся доступная мощность является общей, но она - в целом - все еще только немного меньше, чем у сервера. - TomTom
Нужна цитата. - Zoredache
накладные расходы гипервизора зависят от того, насколько ОС может быть просвещена, и это не означает паравиртуализацию. - tony roth


Я хотел бы указать, что виртуализация может превышать физическую производительность в определенных ситуациях. Поскольку сетевой уровень не ограничивается скоростью гигабита (хотя аппаратная эмуляция имеет конкретную карту LAN), виртуальные машины на одном и том же сервере могут взаимодействовать друг с другом со скоростью, превышающей скорость работы нескольких phyiscal серверов со средним сетевым оборудованием.


8
2017-08-28 12:00



Две части программного обеспечения, работающие на двух виртуальных машинах на одном сервере, не будут связываться быстрее, чем два программного обеспечения под одной и той же ОС на одном сервере с открытым металлом. - bokan


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

Лучшим примером здесь является просмотр двух (или более!) Старых серверов в вашем центре обработки данных. Посмотрите на серверы, которые работают достаточно хорошо, но сейчас старики и подходят к циклу обновления. Эти серверы уже хорошо работают на более старых аппаратных средствах, и поэтому благодаря закону Мура все новое, что вы получаете, будет слишком сложным.

Ну так что ты делаешь? Это просто. Вместо того, чтобы покупать два новых сервера, вы покупаете только один, а затем переносите оба старых сервера на одно физическое новое устройство. При подготовке к покупке нового сервера вы планируете, чтобы у вас была достаточная емкость, чтобы не только обрабатывать нагрузку с более старых серверов, но и любую нагрузку с гипервизора (и, возможно, немного больше, так что вы все равно можете повысить производительность и может обеспечить рост).

В итоге: виртуальные машины обеспечивают «достаточно хорошую» производительность для большинства ситуаций и помогают вам лучше использовать ваши серверы, чтобы избежать «потерь» вычислительной мощности.

Теперь давайте растянем это немного дальше. Так как это старые серверы, возможно, вы искали пару простых серверов для пиццы на 1500 долларов, чтобы их заменить. Скорее всего, даже один из этих ящиков для пиццы мог бы легко справиться с нагрузкой с обеих гипотетических старых машин ... но предположим, что вы решили потратить 7500 долларов или больше на какое-то реальное оборудование. Теперь у вас есть устройство, которое может легко обрабатывать до десятка существующих серверов (в зависимости от того, как вы работаете с хранилищем и сетью), с первоначальной стоимостью всего 5. У вас также есть преимущества только управления одним физическим сервером, развязки ваше программное обеспечение с вашего оборудования (то есть: обновление аппаратного обеспечения теперь менее вероятно, потребуется новая лицензия Windows или привести к простою), вы экономите тонну на мощности, и ваш гипервизор может дать вам лучшую информацию о производительности, чем вы имели в прошлом , Получите два из них и в зависимости от того, насколько большой вы, возможно, весь ваш центр обработки данных находится всего на двух машинах, или, возможно, вы хотите использовать второй сервер в качестве горячего режима ожидания, чтобы рассказать лучшую историю с высокой доступностью.

Я хочу сказать, что дело не только в производительности.  Я бы никогда не взял совершенно хороший производственный сервер и не виртуализовал его в одиночку для эквивалентного оборудования только потому, что. Это больше о экономии средств и других преимуществах, которые вы можете получить от консолидации, таких как высокая доступность. Понимание этих преимуществ означает, что вы перемещаете серверы на разные аппаратные средства, а это, в свою очередь, означает, что вам нужно потратить время на соответствующее размерное оборудование, включая учет штрафа гипервизора. Да, вам может потребоваться чуть больше вычислительной мощности, чем если бы каждая из этих машин находилась на своем собственном физическом устройстве (подсказка: на самом деле вам, вероятно, нужна гораздо меньше общей вычислительной мощности), но это будет целая партия дешевле, более энергоэффективна и легче поддерживать для запуска одного физического сервера, чем для запуска многих.


1
2018-02-18 15:02



Речь идет не только о консолидации и экономии средств. Гипервизор - это продукт со многими функциями, многие из которых имеют потенциал для добавления стоимости бизнеса независимо от причин, которые виртуализируют большинство людей. Консолидация и экономия затрат могут быть частью этой стоимости бизнеса, или они могут и не быть. Снимки, живая миграция, хранение vMotion и абстракция оборудования могут быть частью бизнес-стратегии ИТ. - jgoldschrafe
@jgold Точка взята. Вы даже забыли большой: высокая доступность. В моей защите я упомянул об аппаратном абстракции (вроде) в своем последнем редактировании, а для тех, кто просто изучает виртуализацию под углом оригинального вопроса, я думаю, что консолидация / стоимость - это действительно большая точка для передачи. - Joel Coel


Я проводил некоторые сравнительные тесты одного и того же программного обеспечения с тем же тестом (веб-приложение на базе .NET с большими объемами веб-трафика и значительным доступом к SQL Server). Вот что я видел:

  • Физическая машина лучше работает при создании классов (что означает выделение памяти на системном уровне) - это имеет смысл для меня, потому что физические машины делают это через аппаратное обеспечение управления памятью, а виртуальные машины делают это с помощью программного обеспечения (с частичной аппаратной поддержкой) (на виртуальной машине , приложение потратило значительное количество времени в своих конструкторах (где выделена память (и ничего больше не делается), на физической машине, конструкторы даже не вошли в верхнюю 1000)
  • Когда вы находитесь в середине метода, эти два эквивалента - это, вероятно, то, как построено большинство эталонных тестов, которые показывают, что два «являются одинаковыми»,
  • Когда вы обращаетесь к сетевому контроллеру, физическое немного избивает виртуальную машину - опять же, физическое не очень много сидит между процессом .NET и аппаратным обеспечением. VM добавляет добавление других «вещей», которые каждая транзакция должна пройти.
  • Действительно, то же самое относится и к доступу к диску (SQL Server был на другом компьютере) - разница очень мала, но когда вы добавляете их все, это заметно. Это могло быть вызвано более медленным доступом к сети или медленным доступом к диску.

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


1
2017-08-09 13:27



Это то, что я искал. +1 - Phil Ricketts


Я только что обновился до SSD (OCZ Vertex 2), и я запустил среду разработки XP VM, я разработчик программного обеспечения. Одна вещь, которую я заметил, это то, что когда я запускаю программу (одна достаточно большая, чтобы занять время для загрузки), одно ядро ​​виртуального процессора привязывается. Это происходит при загрузке IE. Поскольку процессор выгружается, я предполагаю, что узким местом является процессор, а не SSD. Но кажется странным, что у меня такое ощущение, что если бы на физическом компьютере выполнялось то же самое, что он загружался бы быстрее, и я чувствую, что есть некоторые дополнительные служебные накладные расходы VMWare, которые потребляют процессор на диске.

Например, я использую Delphi, а на физической машине с обычным жестким диском может потребоваться 20 секунд, чтобы начать с холодного ботинка. В VM, запускающем SSD, он загружается через 19 секунд после холодного запуска. Не большая разница, я уверен, если бы SSD находились на физической машине, она бы загружалась быстрее. Тем не менее, я не проверял использование ЦП на физическом компьютере, и его возможное место в ЦП также было узким местом.

Но ощущение виртуальной машины - это то, что на доступ к диску на виртуальную машину.


0
2017-07-19 19:27