Оптимизация производительности виртуальных машин VMware Workstation и VMware Server


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

В России наиболее популярными средствами виртуализации являются продукты компании VMware. И это не случайно: VMware, являясь одним из старейших участников рынка, на данный момент является его лидером и во многом определяет направления развития сферы виртуализации в целом. На сегодняшний день наибольший интерес для пользователей представляют коммерческие платформы VMware Workstation, VMware ESX Server и бесплатная платформа VMware Server. Несмотря на то, что VMware Server является серверной платформой, многие пользователи успешно применяют ее в качестве настольной платформы ввиду ее бесплатности, хотя практически по всем параметрам функциональность продукта VMware Workstation 6 намного выше.

Вопросы оптимизации виртуальных машин и гостевых систем, запущенных в них, возникают как у домашних пользователей продуктов виртуализации, так и компаний, стремящихся максимально полно использовать аппаратные ресурсы. Особенно это актуально для виртуальных серверов, которые должны обладать свойством высокой доступности из внутренней или внешней сети, и серверов, интенсивно использующих какой-либо из аппаратных ресурсов компьютера (например, жесткий диск серверами баз данных).

Сравнительный обзор VMware Server и VMware Workstation

Продукты VMware Workstation и VMware Server, хотя и предназначены для разных категорий пользователей, тем не менее, используются в схожих ситуациях. VMware Server используется не только для поддержания небольшой инфраструктуры виртуальных серверов в секторе SMB (Small and Medium Business), но и применяется для целей разработки и тестирования программного обеспечения. Также многие домашние пользователи используют VMware Server как бесплатную альтернативу продукту VMware Workstation, хотя последний обладает значительно большими функциональными возможностями именно для конечного пользователя. Из приведенной ниже таблицы можно увидеть, когда нужно использовать VMware Workstation, а когда будет достаточно бесплатного VMware Server.

ВозможностиWorkstation 6.0.0Server 1.0.3
Запуск в качестве сервисаНет (но есть возможность сворачивания UI в System Tray)Да
Запуск виртуальной машины при загрузкеНетДа
Локальное управлениеТолстый клиент, командная строкаТолстый клиент, командная строка
Множественный пользовательский доступНетДа
Программные интерфейсыC / COM / PerlC / COM / Perl
Удаленное управление хостомНетWeb-консоль
Удаленное управление виртуальными машинамиНетТолстый клиент
Управление множественными установкамиНетНет1
Соотношение виртуальные машины на ядро2-42-4
Поддержка аппаратной виртуализацииIntel VTIntel VT (экспериментально)
Поколение виртуального аппаратного обеспечения65
Виртуальных процессоров через SMP (Symmetric Multi Processing)22 (экспериментально)
Максимум оперативной памяти для одной виртуальной машиныдо 8 ГБдо 3,6 ГБ
Максимум оперативной памяти для всех виртуальных машинНеограничено2До 64 ГБ2
IDE контроллеров/дисков на них1/41/4
SCSI контроллеров/дисков на них1/74/60
Максимальный размер виртуального диска (IDE/SCSI)до 950 ГБдо 950 ГБ
Виртуальных сетевых адаптеров на одну виртуальную машину104
Виртуальных коммутаторов109
Снапшоты через толстый клиентДаДа (только один)
Снапшоты через командную строкуДаНет
Клонирование виртуальных машинДаНет3
Команды виртуальных машин (в одном виртуальном сетевом сегменте)ДаНет
Запись активности виртуальной машиныДаНет
Отладка виртуальных машинДаДа
Общие папки с хостовой системойДаНет
Запись активности виртуальной машины в видеофайлДаНет
Интерфейс Drag&Drop между гостевой и хостовой системойДаНет
Официально неподдерживаемые хостовые системыSuSE Linux 7.3Windows XP Professional (32/64 бит)
Windows XP Home
Windows 2000 Professional
Red Hat Linux 7.0
Red Hat Linux 7.1
Поддержка 64-битных системДаДа
Поддержка паравиртуализацииДа4Нет
Цена$189 (при загрузке с сайта)
$209 (розничные поставки)
Бесплатно5
  1. Доступно при использовании с продуктом Virtual Center (не бесплатен).
  2. В операционных системах с включенным PAE-режимом.
  3. Доступно при управлении продуктом Virtual Center (не бесплатен).
  4. Доступно при использовании VMware Virtual Machine Interface (VMI) 3.0.
  5. Техническая поддержка не бесплатна, но и не необходима. Пользователи могут купить VMware Gold или Platinum Support and Subscription Services.

Оптимизация производительности VMware Workstation и VMware Server

Оптимизация виртуальных систем под управлением платформ VMware Server и VMware Workstation состоит из четырех ключевых компонентов:

  • правильный выбор аппаратного обеспечения и его оптимизация
  • настройка и оптимизация хостовой платформы
  • настройка и оптимизация платформы виртуализации и виртуальных машин
  • оптимизация гостевой системы

Только при соблюдении рекомендаций VMware по оптимизации производительности с учетом этих компонентов можно получить по-настоящему эффективно и быстро работающие виртуальные системы.

Аппаратное обеспечение

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

По оценкам экспертов, большинство серверов на данный момент использует приблизительно 10-20 процентов от аппаратных мощностей компьютеров, поэтому, в этом случае, для продукта VMware Server необходимо придерживаться соотношения 2-4 виртуальные машины на ядро процессора, оставив некоторый запас для пиковых нагрузок на какой-либо из серверов. При использовании VMware Workstation пользователи часто создают десятки виртуальных машин, и число одновременно запущенных виртуальных систем может быть различным, в зависимости от применяемых гостевых ОС.

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

  • Память
    Оцените количество памяти, используемой виртуальными машинами и приложениями, запущенными в них, прибавьте память, необходимую для хостовой ОС (зависит от выбранной платформы) и поддержки платформы виртуализации (обычно не менее 64 МБ).
  • Диски
    Старайтесь использовать высокопроизводительные SCSI диски и RAID-массивы. Помните, что RAID массивы могут быть различного типа, и от его выбора зависит производительность дисковой системы. Следите за тем, чтобы диски хостовой системы не переполнялись, поскольку это сильно действует на производительность виртуальных машин, в особенности при создании снапшотов или работе с Redo-дисками. Используя SAN или NAS устройства хранения, следите за тем, чтобы на них были включены кэши на чтение и запись и правильно выставлены их размеры.
  • Сеть
    При выборе сетевых адаптеров и устройств коммуникации, учитывайте следующие рекомендации:
    • используйте коммутаторы («свичи») вместо концентраторов («хабов»)
    • при использовании Gigabit Ethernet карт на хостах убедитесь, что вы используете кабели и коммутаторы с соответствующей пропускной способностью
    • не используйте большее число физических сетевых интерфейсов, чем необходимо — ненужные адаптеры принимают широковещательные пакеты, что замедляет быстродействие в целом

Хостовая ОС

При выборе хостовой операционной системы для VMware Server или VMware Workstation необходимо учитывать ее требования к оборудованию и заранее планировать ресурсы, выделяемые виртуальным машинам. Наибольшее внимание при оптимизации хостовой ОС нужно уделять памяти, дискам, сетевым интерфейсам и сервисам операционной системы. Само собой, в хостовой системе нельзя устанавливать никакого дополнительного программного обеспечения, которое может отрицательно повлиять на ее быстродействие.

  • Память

    После того, как память для хостовой платформы будет выбрана, необходимо следить за ее использованием процессами, поддерживающими виртуальные машины. Для того чтобы определить, достаточно ли памяти выделено виртуальным машинам, используйте счетчики ошибок страницы (page faults) и число подкачиваемых страниц в секунду (pages/sec counter). В случае если процессы виртуальных машин интенсивно используют виртуальную память, значения этих параметров будут слишком высоки и виртуальным машинам необходимо будет выделить больше физической оперативной памяти. В операционной системе Windows используйте программу perfmon:
    нажмите «Пуск»->«Выполнить»->наберите «perfmon», далее нажмите кнопку «добавить»:

    Окно программы perfmon
    Окно программы perfmon

    Затем выберите объект «Память» и счетчик «Ошибок страницы/сек» и нажмите кнопку добавить:

    Добавление счетчика Ошибок страницы/сек
    Добавление счетчика «Ошибок страницы/сек»

    В случае если средние значения этого счетчика близки к 100, вам необходимо увеличить память, выделяемую гостевым системам. Более подробную информацию вы можете найти по адресу: http://support.microsoft.com/kb/889654.

    Для хостовых ОС Linux можно использовать команду vmstat, предоставляющую информацию об использовании виртуальной памяти. Наиболее интересны счетчики si и so, показывающие скорость своппинга страниц памяти (КБ/с) на диск и с него соответственно. Эти счетчики должны быть максимально приближены к нулевым значениям.

  • Диски

    Убедитесь, что для дисков, на которых расположены виртуальные машины, включено кэширование записи (в операционных системах Windows нажмите правой кнопкой на иконку диска, выберите «Свойства», далее на вкладке «Оборудование» нажмите «Свойства» и перейдите на вкладку «Свойства диска»).

  • Сетевые интерфейсы

    Многие сетевые карты могут работать в различных режимах (100 или 1000 МБит/сек, полудуплексном или дуплексном) — убедитесь, что для сетевого интерфейса выставлен наиболее оптимальный режим. Отключите все неиспользуемые физические сетевые интерфейсы. В случае если быстродействие сети для виртуальных машин вас не устраивает, а вы используете только один тип сетевого взаимодействия (например, bridged), можно отключить неиспользуемые виртуальные сетевые адаптеры:

    в VMware Workstation или VMware Server в меню «Edit» выберите «Virtual Network Settings», перейдите на вкладку «Host Virtual Adapters» и удалите неиспользуемые адаптеры.

    Виртуальные сетевые интерфейсы хоста
    Виртуальные сетевые интерфейсы хоста
  • Общие настройки и сервисы

    Отключите все ненужные сервисы, которые могут замедлить работу хостовой системы. Для этого в операционной системе Windows в панели управления выберите апплет «Администрирование», затем «Службы» и отключите ненужные сервисы. В хостовой системе Linux используйте команду chkconfig -list для просмотра списка сервисов и команду: chkconfig <имя сервиса> [on| off| reset], например, chkconfig crond off. Также используйте команду top для просмотра списка запущенных процессов. Уберите также все ненужные вам программы из автозагрузки (в Windows используйте утилиту msconfig.exe).

    Убедитесь, что включено аппаратное ускорение в хостовых системах Windows. Для этого кликните правой кнопкой на рабочем столе, выберите «Свойства», затем «Параметры», «Дополнительно» и на вкладке «Диагностика» выставьте параметр «Аппаратное ускорение» на максимум.

Платформа виртуализации и виртуальные машины

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

  • Процессор

    В случае если ваш процессор использует технологию hyper-threading для представления двух логических процессоров для одного физического, не включайте виртуальный SMP (два виртуальных процессора) в настройках виртуальной машины при ее создании.

    Вы можете также вручную выставить приоритет для процессов виртуальных машин:

    зайдите в меню «Edit», выберите «Preferences», перейдите на вкладку «Priority» и назначьте приоритет активной виртуальной машине (Input grabbed — когда курсор находится внутри виртуальной машины) и остальным виртуальным машинам в фоне (Input ungrabbed).

    Окно настроек приоритетов виртуальных машин
    Окно настроек приоритетов виртуальных машин

    Эти настройки влияют на все виртуальные машины хоста. Вы можете также назначить их для конкретной виртуальной машины (они перекроют глобальные настройки): зайдите в меню «VM», далее «Settings», перейдите на вкладку «Options» и категорию «Advanced».

  • Память

    Если вы используете хостовую ОС не только для запуска виртуальных машин, но и для других задач вы можете задать количество физической оперативной памяти, которое могут использовать виртуальные машины. Для этого зайдите в меню «Edit», выберите «Preferences», перейдите на вкладку «Memory» и выставьте необходимое количество памяти для виртуальных машин.

    Настройки памяти для виртуальных машин
    Настройки памяти для виртуальных машин

    Здесь вы можете также определить, как виртуальные машины будут использовать файл подкачки. По умолчанию часть памяти виртуальной машины сбрасывается в файл подкачки. Если же выставить параметр «Allow most virtual machine memory to be swapped», это позволит запустить большее число виртуальных машин одновременно, но отрицательно скажется на их быстродействии. Выбор первого параметра повлечет за собой использование только физической памяти хостовой системы, что ускорит быстродействие, однако, соответственно, уменьшит число одновременно запущенных виртуальных машин.

    VMware Workstation и VMware Server используют процедуры очистки неиспользуемой памяти (Memory Trimming). Вообще говоря, этот параметр не сильно влияет на производительность, однако его отключение может немного повысить производительность при работе с дисками виртуальной машины. Отключить его можно, добавив в vmx-файл строчку MemTrimRate=0 или в настройках виртуальной машины:

    меню «VM», далее «Settings», вкладка «Options», категорию «Advanced», отметить чекбокс «Disable Memory Page Trimming».

    Продукты VMware используют также общий доступ к страницам памяти (Page Sharing), который позволяет виртуальным машинам совместно использовать одну копию страниц памяти, что особенно эффективно при запуске одинаковых гостевых систем, с одинаковыми запущенными в них приложениями. В этом случае, такой подход позволяет экономить до 30 процентов физической памяти, однако снижает скорость операций ввода-вывода. Если на хосте достаточно оперативной памяти, эту технику можно отключить, добавив в vmx-файл строчку: sched.mem.pshare.enable = “FALSE”

  • Диски

    По возможности используйте диски виртуальных машин хранящиеся локально. В случае использования сетевых ресурсов, следите за пропускной способностью сети и ее доступностью. По умолчанию VMware Server и VMware Workstation используют эмуляцию SCSI-дисков. Не меняйте этот параметр, поскольку применение виртуальных IDE-дисков снижает быстродействие. Используйте виртуальные диски типа «preallocated», вместо «growable», хотя вторые и выгодны с точки зрения используемого места (растут по мере наполнения), они работают несколько медленнее. Для задания дисков типа «preallocated» при создании виртуальной машины поставьте галку «Allocate all disk space now». Можно также создавать независимые (Independent) диски для виртуальной машины, которые могут быть постоянными (Persistent) и непостоянными (Nonpersistent). Содержимое этих дисков существует независимо от мгновенных снимков виртуальной машины (снапшотов). Непостоянные диски отличаются тем, что их содержимое сбрасывается при выключении виртуальной машины. Диски типа Independent-persistent обладают наилучшим быстродействием и рекомендуются для большинства вариантов использования. Для того чтобы создать такой диск, выберите меню «VM», «Settings», на вкладке «Hardware» выберите диск и нажмите «Advanced», убедитесь, что галки «Independent» и «Persistent» установлены.

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

  • Сеть

    Удалите все неиспользуемые виртуальные сетевые адаптеры для каждой виртуальной машины в меню «VM»->«Settings». При интенсивном обмене трафиком с хостовой ОС наиболее эффективно использовать тип сетевого взаимодействия Bridged, нежели NAT, поскольку в последнем случае присутствуют затраты на поддержание виртуального NAT-устройства.

  • Другое
    • Отключение режима отладки

      По умолчанию VMware Workstation собирает отладочную информацию, что может несколько замедлить производительность виртуальной машины. Эту возможность можно отключить в меню «VM», далее «Settings», вкладка «Options», категория «Advanced», затем выставить комбобокс «Gather debugging information» в значение «None».

    • Отключение логирования

      Для виртуальных машин в VMware Server и VMware Workstation включен режим логирования, который практически не влияет на производительность, но его можно отключить, добавив в vmx-файл строчку logging = «FALSE».

    • Отключение приводов CD/DVD-ROM

      Многие забывают, что некоторые старые операционные системы, такие как Windows 98, постоянно проверяют наличие диска в приводе, что приводит к потере быстродействия. Виртуальный CD/DVD-ROM можно отключить в настройках виртуальной машины:

      меню «VM», далее «Settings», выберите категорию CD-ROM и снимите галки «Connected» и «Connect at power on».

Гостевая ОС и приложения

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

Однако, первым делом, после установки гостевой системы, необходимо установить пакет VMware Tools, который содержит в себе улучшенные драйверы устройств, существенно повышающие быстродействие гостевой системы. Приложение VMware Tools может быть установлено не во всех гостевых ОС. Для установки этого пакета, при запущенной виртуальной машине, после полной загрузки ОС, в меню «VM» выберите пункт «Install VMware Tools».

  • Процессор

    Настройки оптимизации для этого компонента сводятся к правильному выбору однопроцессорного и мультипроцессорного ядра или HAL (Hardware Abstraction Layer) для гостевой операционной системы. В случае если виртуальная машина имеет один виртуальный процессор необходимо использовать только однопроцессорное ядро или HAL, поскольку использование их SMP версий может существенно замедлить производительность. Если вы создали виртуальную машину с одним виртуальным процессором, а потом добавили еще один, операционная система обычно сама переключается на SMP-версию ядра с однопроцессорного. Однако, если наоборот — понизили число виртуальных процессоров, переключения на однопроцессорное ядро не происходит, и это может существенно понизить быстродействие.

  • Память

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

    Добавление счетчика производительности к отдельному процессу
    Добавление счетчика производительности к отдельному процессу
  • Диски

    При интенсивном использовании дисковых ресурсов виртуальной машиной необходимо регулярно производить дефрагментацию дисков в следующем порядке:

    • дефрагментация дисков в гостевой системе
    • дефрагментация файлов виртуальных дисков средствами VMware
    • дефрагментация дисков в хостовой системе

    В гостевой и хостовой системах Windows дефрагментацию дисков можно производить либо с помощью встроенной утилиты defrag, либо с помощью программ сторонних производителей. Дефрагментация файлов виртуальных дисков может быть проведена с использованием платформы виртуализации. Выберите меню «VM», «Settings», на вкладке «Hardware» выберите диск и нажмите кнопку «Defragment»:

    Дефрагментация виртуального диска
    Дефрагментация виртуального диска
  • Сетевые интерфейсы

    Убедитесь, что гостевая система использует подходящий драйвер сетевой карты, для этого в Windows посмотрите свойства сетевой карты в диспетчере устройств. При установленных VMware Tools, в качестве драйвера должен быть установлен VMware Accelerated Driver:

    VMware Accelerated Driver
    VMware Accelerated Driver
  • Программное обеспечение

    Методы оптимизации программного обеспечения должны выбираться в зависимости от специфики его использования, при этом необходимо придерживаться следующих рекомендаций VMware:

    • используйте, по возможности, в качестве гостевых и хостовых систем официально поддерживаемые VMware платформы
    • попробуйте использовать паравиртуализованные ядра Linux на платформе VMware Workstation, которая, начиная с шестой версии, официально поддерживает техники паравиртуализации
    • регулярно обновляйте пакет VMware Tools, который предоставляет наиболее оптимизированные драйвера виртуальных устройств (в шестой версии VMware Workstation есть функция автоматического обновления этого пакета)
    • используйте официальные релизы программного обеспечения вместо бет и отладочных версий

Заключение

После того, как все четыре перечисленных мероприятия по оптимизации будут проведены, необходимо постоянное наблюдение за производительностью виртуальных машин, особенно если они работают в качестве виртуальных серверов. Целью оптимизации в этом случае должна стать стабильная одновременная работа нескольких виртуальных систем на одном физическом хосте. Регулярно обновляйте программное обеспечение и платформу виртуализации, и тогда вы сможете максимально эффективно использовать виртуальные машины, как на десктопах, так и в качестве гибких серверных элементов ИТ-инфраструктуры предприятия.






Дополнительно

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.