Оптимизировать разработку виртуальной машины - PullRequest
20 голосов
/ 11 марта 2009

В качестве лучшей практики я использую виртуальную машину для своей разработки - я хотел бы попытаться максимально оптимизировать свою виртуальную машину. Все, что я установил, - это сервер 2003, IIS и Visual Studio 2008. Что вы делаете, чтобы оптимизировать свою виртуальную машину разработки, т.е. какую службу вы выключаете и т. Д ...

Ответы [ 10 ]

23 голосов
/ 24 апреля 2009

Как всегда, не существует единого набора рекомендаций, которые являются универсально «правильными» или «наилучшими». Тем не менее, это некоторые из элементов, которые хорошо работали в моей виртуальной среде development .

Советы по аппаратному обеспечению


Много памяти!

Определите, сколько памяти требуется каждой виртуальной машине и сколько памяти требуется вашему хосту (если вы одновременно запускаете что-то на хосте). Суммируйте общие требования к памяти для всех виртуальных машин, которые будут работать одновременно, определите максимальную загрузку ОЗУ и добавьте нагрузку на хост. Я предлагаю иметь как минимум 512 МБ «отступа»

Например, мне нужно около 768 МБ для хост-ОС (WinXP Pro SP3) и около 1 ГБ в моей гостевой ОС (WinXP Pro SP3 с Visual Studio 2005/2008 и SQL Server Developers Edition). 1024 МБ + 768 МБ + 512 МБ = 2,3 ГБ

Лично, поскольку оперативная память невероятно дешева в настоящее время, я только что довел до максимума свою 32-разрядную систему с 4 ГБ (адресация 3,5).

Отдельный шпиндель для вашей ОС и виртуальных машин

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

ПРИМЕЧАНИЕ: Использование внешнего жесткого диска для разделения шпинделя может помочь, но будьте осторожны - у Firewire и USB задержка выше, чем у IDE, SATA или SCSI! Хотя интерфейсы USB 2.0 и Firewire имеют более чем достаточную пропускную способность для максимальной пропускной способности диска , они добавляют значительную величину задержки к каждой операции. Это становится очень важным в транзакциях с большим диском, в случаях доступа к небольшому файлу, таких как компиляция C ++. У меня еще не было возможности провести некоторые тесты на eSATA, чтобы увидеть, насколько хорошо он работает по сравнению с внутренним временем доступа к SATA.

Использовать диски с малым временем доступа

Во время разработки происходит довольно много случайного доступа к диску, особенно во время компиляции в таких языках, как C ++. Использование 7200 об / мин на диске 5400 об / мин для ваших виртуальных машин уменьшает время доступа и, следовательно, уменьшает время компиляции. Переход на 10000 об / мин или высокопроизводительный SSD сокращает эти времена еще больше. Точка уменьшения отдачи зависит от конкретной нагрузки / структуры доступа к диску в вашей среде.

Host Tips


Отключить антивирусное сканирование файлов виртуальной машины

Скажите вашему антивирусному сканеру игнорировать каталог вашей виртуальной машины ИЛИ расширение файла .vmdk, чтобы он не будет постоянно сканировать диски вашей виртуальной машины.

Избегайте конфликтов с процессором

Если вы одновременно запускаете более одной виртуальной машины ИЛИ выполняете работу как на хост-компьютере, так и на гостевой ОС, сохраните хотя бы один ЦП для хост-ОС на компьютере с несколькими ядрами или процессором. Например, если вы работаете на двух виртуальных машинах и не выполняете работу в хост-ОС, тогда двухъядерный процессор на хосте с одноядерными виртуальными машинами, вероятно, вам подойдет лучше.

Если вы работаете с одной виртуальной машиной и не работаете в хост-ОС, тогда использование двухпроцессорной виртуальной машины может быть полезно, если приложения виртуальной машины могут использовать второй процессор.

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

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

Советы для гостей


Выделите достаточно памяти

Убедитесь, что вы выделяете достаточно оперативной памяти для удовлетворения потребностей виртуальной машины

Избегайте использования снимков

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

Не запускать ненужные службы

Например:

  • Индексация
  • Восстановление системы
  • Сообщение об ошибке
  • Беспроводная нулевая конфигурация

Не запускать программное обеспечение безопасности

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

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

Дефрагментация!

К сожалению, в конфигурации виртуальной машины может произойти фрагментация файла в трех местах: в файловой системе гостевой ОС, в представлении виртуальной машины (например, vmdk) виртуальной машины и в файле виртуальной машины на самом физическом диске. Порядок, в котором вы дефрагментируете, имеет значение.

  • Сначала выполните дефрагментацию файловой системы в гостевой ОС (например, запустите дефрагментацию диска в гостевой ОС или используйте инструмент, такой как JkDefrag или Defraggler, и т.д. в гостевой ОС)
  • Во-вторых, дефрагментируйте файл виртуальной машины (например, VMDK) с помощью таких инструментов, как vmware-diskmanager
  • В-третьих, дефрагментировать файловую систему на хосте, в котором находится файл виртуальной машины (т.е. запустить дефрагментацию диска на хост-системе)
8 голосов
/ 11 марта 2009

Я отключаю индексатор файловой системы, экономя дисковое пространство и время процессора.

7 голосов
/ 11 марта 2009

Исключить мою папку сборки из моей антивирусной защиты при проверках доступа

Это службы, которые я отключаю на своей виртуальной машине

  • Отключен трекер событий отключения
  • Отключено индексирование по c: \
  • Служба сообщений об ошибках выключена
  • Доступ к смарт-карте отключен
  • TCP / IP NetBIOS Helper
  • Диспетчер сеансов справки по удаленному рабочему столу
  • Удаленный реестр
  • Источник бесперебойного питания
  • Windows Audio
  • Беспроводная нулевая конфигурация
7 голосов
/ 11 марта 2009

Я всегда отключаю «Восстановление системы» на своих виртуальных ПК с Windows XP.

5 голосов
/ 11 марта 2009

Размещение образов дисков на внешнем жестком диске (даже USB) может повысить производительность (особенно с ноутбуком)

3 голосов
/ 11 марта 2009

Здесь есть отличная статья о производительности виртуальной машины здесь

Он написан специально для виртуальных машин Sharepoint, но в целом есть множество советов, которые применимы.

1 голос
/ 14 марта 2009

Я отключаю файл подкачки Windows при использовании VMware Server. Дисковый ввод-вывод является самым слабым звеном сервера VMWare, и нет ничего хуже, чем подкачка виртуализированной оперативной памяти в файл виртуализированного диска. Дайте вашей виртуальной машине достаточно оперативной памяти, и это прекрасно работает.

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

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

Одна вещь, которая действительно убивает производительность ввода-вывода - это запуск с активным снимком. При этом в большинстве реализаций используется стратегия копирования при записи, и вы можете ожидать снижения производительности диска на 20%.

0 голосов
/ 15 февраля 2012

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

http://communities.quest.com/community/vworkspace/blog/2011/09/08/introducing-the-free-quest-vworkspace-desktop-optimizer

Полное раскрытие: я работаю на Quest, но не работал над этим инструментом.

0 голосов
/ 27 сентября 2010

Два SSD, один для ОС хоста и один для виртуальных машин.

0 голосов
/ 03 апреля 2009

Я недавно построил виртуальную машину и начал оптимизировать ее еще до установки, используя Nlite и Windows Update Downloader . NLite позволяет удалить все ненужные компоненты (mspaint, пинбол, французский и т. Д.), Применить все обновления Windows и настроить параметры реестра и службы. Так, например, вы можете отключить системный индексатор при первой загрузке. Если вы используете Vista или 2008 Vlite также доступны.

...