Настройка максимальной производительности в VMware Workstation

Настройка максимальной производительности в VMware Workstation

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

 

  • процессорные ресурсы,
  • оперативная память,
  • жесткий диск,
  • другое оборудование,
  • программное обеспечение,
  • другое (всё остальное).

 

 

Процессорные ресурсы

Во-первых, необходимо проверить, что ваш процессор имеет аппаратную поддержку виртуализации и в BIOS основной машины включены опции поддержки: Intel VT-x или AMD AMD-V. Если система поддерживает "Hardware-Assisted MMU Virtualization": опции Intel EPT (extended page tables) или AMD RVI (rapid virtualization indexing) или AMD NPT (nested page tables), то тоже обязательно включаем. Первый механизм в условиях виртуализации позволяет эффективнее (с меньшими накладными расходами) распределять процессор между виртуальными машинами, а второй - память.

Во-вторых, если процессор поддерживает Hyper-threading, то рекомендуется активировать  поддержку этого механизма в BIOS. Hyper-threading, когда один процессорный юнит (ядро) обрабатывает 2 очереди команд, даёт скорее большую утилизацию процессорных ресурсов, так как процессор меньше простаивает. Но при правильном использовании этой технологии можно добиться и повышения производительности всей системы. Гипервизор от VMware умеет использовать Hyper-threading.

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

При конфигурировании количества ядер для виртуальных машин, можно руководствоваться правилом: общее количество ядер всех виртуальных машин плюс запас для основной машины не должно превышать двойного количества физических ядер процессора (без учёта Hyper-threading). Например, если ваш процессор имеет 4 физических ядра, то можно создать максимум 3 виртуальные машины, каждой отдав по 2 ядра, а 2 ядра оставить основному компьютеру. В идеале, конечно, вы должны распределять только имеющиеся ядра, не допуская overhead. Но так как мы говорим про персональные компьютеры (или даже ноутбуки), а не про сервера, то ядер у нас обычно не так много. Исходим из того, что имеем, поэтому максимум двойной overhead.

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

 

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

 

Ещё одно важное замечание: при создании виртуальной машины всегда корректно выбирайте тип гостевой операционной системы и её версию. Гипервизор, зная особенности работы разных операционных систем, для создаваемой вами виртуальной машины применит оптимальные настройки и для процессора, выбирая поддерживаемые операционной системой механизмы  виртуализации. А это напрямую влияет на производительность. После создания виртуальной машины изменить эти настройки тоже можно. Выключив виртуальную машину, войдите в пункт меню "VM -> Settings" (или нажмите Ctrl+D), а там выберите раздел "General". Справа будут нужные вам параметры (рис. 1).

Рис. 1. Настройки типа и версии гостевой операционной системы.

Вот по этой ссылке на официальном сайте можно посмотреть список поддерживаемых гостевых операционных систем. 

 

Оперативная память

Первое правило виртуализации: оперативной памяти много не бывает. Оперативная память, для гипервизора, как и для БД SAP HANA, основной ресурс. 

Память виртуальной машине (как и в любой операционной системе) выдаётся по требованию. При этом, как и в Enterprise решении VMware ESXi, гипервизор в VMware Workstation умеет выполнять разные финты при управлении памятью: page sharing, balooning, swapping. Все эти механизмы направлены прежде всего не на повышение производительности виртуальных машин, а на максимальную утилизацию ресурсов.  Задача механизмов оптимизации  уменьшить потребление памяти виртуальными машинами. Например, забрав свободные страницы памяти у виртуальной машины, как только они ей больше не нужны, и отдать их той виртуальной машине, которая в текущей момент требует больше памяти для своей работы. Стоит отметить, что благодаря такому подходу удаётся разместить на одной машине большее количество виртуальных машин. Гипервизор жонглирует количеством памяти меньшего объёма, чем сумма сконфигурированной памяти всех виртуальных машин, но при этом обеспечивает их одновременную работу. Существует даже термин для этого - "memory overcommitment".

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

Для этого необходимо, во-первых, перейти в пункт меню "Edit -> Preferences" (или нажать Ctrl+P). Здесь в разделе "Memory" содержатся общие настройки для всех виртуальных машин (рис. 2). Для начала укажите сколько оперативной памяти сервера может быть отдано виртуальным машинам. Так как VMware Workstation относится ко второму типу гипервизоров, то мы должны подумать и об основной машине, не оставив её без памяти. Иначе, если она начнёт уходить в swap, то работать плохо начнёт всё, включая виртуальные машины. В моём примере из 32 Гб оперативной памяти 24 Гб отдано виртуальным машинам, а 8 Гб всегда будут за операционной системой хоста.
Далее обязательно выбрать пункт "Fit all virtual machine memory into reserved host RAM". Гипервизор, работая в таком режиме, запускает виртуальные машины только при условии, если сумма сконфигурированной для них оперативной памяти умещается в выделенный для них пул основного хоста.

Рис. 2. Опции памяти для всех виртуальных машин.

 

Во-вторых, для каждой виртуальной машины перейти в индивидуальные настройки через пункт меню "VM -> Settings" (или нажать Ctrl+D), перейти во вкладку "Options", а там выбрать пункт "Advanced" (рис. 3). В этом окне поставить галочку напротив пункта "Disable memory page trimming". В этом случае гипервизор не будет пытаться отнять у виртуальной машины оперативную память, используя свои механизмы оптимизации.

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

 

Жёсткий диск

Во-первых, постарайтесь разместить виртуальные машины на дисках с хорошей скоростью чтения-записи. Раньше рекомендовалось использовать RAID массив на достаточном количестве дисков. Сейчас прекрасным вариантом будет SSD диск. К примеру в VMware Workstation для гостевой операционной системы MS Windows 10 рекомендуется использовать тип диска "NVMe" (рис. 4).

Рис. 4. Рекомендуемый тип диска виртуальной машины.

Драйвер такого типа виртуального диска (из пакета VMware Tools) показывает хорошую скорость в тестах (рис. 5). Но только если на нижнем уровне находится быстрый SSD диск. В данном примере это даже не NVMe диск, а SSD через интерфейс SATA. 


Стоит отметить, что размещение файлов виртуальной машины на внешнем USB-носителе плохая идея. Практика показывает, что работает такая виртуальная машина очень медленно. Работать практически невозможно. Так что, если у вас возникла такая идея, лучше откажитесь от неё сразу. :)

 

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

 

  • тонкий диск (thin provisioned) - место выделяется по мере необходимости,
  • толстый диск (thick provisioned) - место выделяется сразу на весь объём виртуального диска,
  • хранить виртуальный диск в одном файле,
  • разбить виртуальный диск на несколько файлов.

 

Вариант с максимальной производительностью это толстый диск, хранящийся в одном большом файле (рис. 6). 

Рис. 6. Параметры виртуального жесткого диска для максимальной 
производительности.

 

В третьих, для максимальной производительности рекомендуется выбирать тип диска "Independent" и "Persistent". Запись на такой диск осуществляется сразу после команды ввода-вывода (рис. 7).

 

Рис. 7. Расширенные настройки диска виртуальной машины.

 

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

Существует рекомендация дефрагментировать диск внутри виртуальной машины, как и на обычном физическом компьютере. Но в наш век SSD лишние операции записи на SSD-диск не рекомендуются: снижается ресурс диска. Поэтому, наверное, этот совет уже не актуален. Но, если вы используете динамически расширяемый виртуальный диск (thin provisioned), то можно воспользоваться утилитой дефрагментации на уровне VMware Workstation (рис. 8). В данном случае VMware использует свои внутрение алгоритмы и с минимальным количеством операций записи оптимизирует виртуальный диск.

 

Рис. 8. Информация о виртуальном диске и дополнительные утилиты для работы с ним.

 

После дефрагментации, можно выполнить операцию сжатия файла, нажав соседнюю кнопку "Compact". VMware сожмёт образ диска до реального объёма данных. 

Дополнительно после полной подготовки виртуальной машины (установки операционной системы, программ и т.п.) можно перезалить файл-образ виртуального диска (vmdk-файл) на файловую систему, предварительно его удалив. На данном подходе я не настаиваю, может быть это и лишнее. Но мне кажется, что эта операция переложит файл образ одним непрерывным куском, что улучшит обращение к нему. Хотя опять же в век SSD это может быть уже не актуально. Но опции дефрагментации и сжатия есть, имейте это ввиду. Могут быть полезны перед перезаливкой образа-диска, если решитесь.

 

Дополнительно можно найти утилиты по подключению диска из виртуальной машины, как сетевого диска на основном компьютере (кнопка "Map") и увеличения размера диска (кнопка "Expand") (рис. 8). Имейте ввиду, что изменение настроек виртуального диска производится только при выключенной виртуальной машине.

 

Все согласятся, что в swap (paging) область уходить в виртуальной машине крайне не желательно. Но на случай использования swap области, рекомендуется вынести её на отдельный виртуальный диск, файл образ которого необходимо положить на отдельный физический диск. Опять же рекомендация со времен жестких дисков, а не SSD. А в swap лучше вообще никогда не уходить.

 

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

 

Рис. 9. Включение кэширования записей на диск в MS Windows.

 

Ну и последнее разумное правило: следить, чтобы диск, на котором размещены файлы виртуальных машин всегда имел запас по ёмкости. Если виртуальной машине вдруг не хватит места для записи логов, снепшотов или других временных файлов, то система начнёт тормозить или просто встанет.

 

Другое оборудование

Отключайте ненужное оборудование. Например, если у вас в виртуальной среде работает серверная операционная система, то звуковая карта вам вряд ли понадобится. Для отключения выберите пункт меню "VM -> Settings" (или нажмите Ctrl+D), слева выберите пункт "Sound Card", а справа уберите галочки напротив пунктов "Connected" и "Connected at power on". Или удалите целиком виртуальное устройство через кнопку "Remove" (рис. 10).

Рис. 10. Отключение виртуальной звуковой карты.

 

Также настоятельно рекомендуется отключать автозапуск для CD/DVD-устройств. Если вы устанавливали гостевую операционную систему через ISO-файл, то он будет постоянно контролироваться и читаться виртуальной машиной. А этот образ вам скорее всего уже не нужен. Поэтому для отключения в тех же настройках виртуальной машины установите курсор мыши на пункт с CD/DVD и уберите галочки напротив пунктов "Connected" и "Connected at power on" (рис. 11).

Рис. 11. Отключения автозапуска CD/DVD устройства в виртуальной машине.

 

Ну и так как 3D-графику в виртуальной машине мы тоже обычно не используем, то рекомендуется отключить и её. Читал сообщения, что в предыдущих релизах VMware Workstation включение её очень сильно тормозило интерфейс гостевой операционной системы. Для отключения в настройках виртуальной машины установите курсор мыши на пункт "Display" и снимите галочку напротив пункта "Accelerate 3D graphics" (рис. 12).

Рис. 12. Отключение 3D графики в виртуальной машине.

 

Программное обеспечение

Во-первых, обязательно устанавливайте пакет расширений VMware Tools. Данный пакет представляет собой набор драйверов для виртуального оборудования плюс ряд программных механизмов, которые напрямую влияют на производительность виртуальной машины. Помимо этого после установки VMware Tools можно будет настроить нормальное разрешение экрана, интеграцию мыши и выполнять копирование через буфер обмена между основной и виртуальной машинами. Для установки выберете пункт меню "VM -> Install VMware Tools". Для гостевой операционной системы Linux поддерживаемой альтернативой является пакет Open VM Tools. Подробности можно найти тут и тут.

Во-вторых, рекомендуется на основной машине отключить антивирус на директории с файлами виртуальных машин. Дополнительно можно включить основные типы файлов виртуальных машин (*.vmdk, *.vmx, *.vmem, *.nvram) в исключения антивируса. При работе виртуальной машины эти файлы часто меняются, так как виртуальная машина постоянно читает и пишет в них. Антивирус может вызывать излишнюю нагрузку на систему, постоянно проверяя эти файлы (особенно большие файлы образов виртуальных дисков). Тем самым будет оказываться влияние на производительность и виртуальных машин.

 

Другое

Во-первых, встречал рекомендацию работать в виртуальной машине в полноэкранном режиме (Full-screen). То есть когда вы находитесь в виртуальной машине в окне VMware Management Interface, то лучше работать не в оконном режиме. Иначе производительность работы интерфейса операционной системы внутри виртуальной машины будет не максимальной. Для перехода в полноэкранный режим необходимо нажать комбинацию клавиш Ctrl+Alt+Enter. Выйти можно через комбинацию клавиш Ctrl+Alt или вызвав сверху панель VMware Management Interface и свернув окно виртуальной машины.

Говорят, что в свежих релизах VMware Workstation производительность что в оконном режиме, что в полноэкранном одинакова, но "осадочек" остался. :)

Во-вторых, если ваша виртуальная машина работает без ошибок и сбоев, то для максимальной производительности можно полностью выключить Debbuging. Для этого необходимо перейти в настройки виртуальной машины через пункт меню "VM -> Settings" (или нажать Ctrl+D), открыть вкладку "Options", а там выбрать пункт "Advanced". Справа для пункта "Gather debugging information" выбрать уровень "None" (рис. 13).

Рис. 13. Выключение сбора трассировочной информации для виртуальной машины.

В виртуальных машинах с операционной системой MS Windows рекомендуется по максимум отключить визуальные эффекты. Обычно эти настройки можно найти в "Панель управления -> Система и безопасность -> Система -> Дополнительные параметры системы -> Быстродействие -> Параметры". Я на всех своих рабочих местах выбираю "Обеспечить наилучшее быстродействие", включая только некоторые настройки визуализации (рис. 14).

Рис. 14. Настройки быстродействия интерфейса MS Windows.

Дополнительно отключите Screen Saver. В виртуальной машине он ни к чему, а ресурсы может расходовать прилично.

B Linux можно обойтись совсем без графической среды. Это так же положительно повлияет на скорость работы виртуальной машины. Например, в этом посте я рассказывал как установить Developer Edition систему на Linux без графического окружения.

В третьих, рекомендуется в гостевых операционных системах включать синхронизацию времени. Лучше всего для этого использовать NTP-сервер. Нет локального? Всегда можно использовать свободные для доступа из Интернет. В крайнем случае, можно использовать встроенную функцию синхронизации из VMware Tools. Но следите, чтобы не были активированы оба механизма.

В четвёртых, пару слов про сеть. Помните, что работа виртуальной машины в режиме соединения с сетью типа "Bridged", требует меньше всего процессорных ресурсов основного компьютера  (рис. 15).

Рис. 15. Настройка типа сетевого соединения виртуальной машины.

 

 

На официальном сайте VMware можно найти документ "Performance Best Practices for VMware Workstation". К сожалению, самый свежий вариант написан для версии 7.0. Но судя по содержанию, большая часть информации актуальна и для текущих версий программы. Скачать/прочитать документ можно по этой ссылке

Надеюсь мои изыскания, будут кому-то полезны. Если есть дополнения, пишите в комментариях.

Категория: Мои статьи | Добавил: tymizd (30.05.2022)
Просмотров: 208 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar