VMware работает быстро для первого пользователя, медленно для второго

После запуска VMware и открытия виртуальной машины, подготовленной другим пользователем, Windows 7 работает очень медленно. Чтение/запись файлов в 10-30 раз медленнее, чем должно быть, и Windows начала анимировать перемещение/изменение размера окна, что ставит ОС (или VMware?) на колени.

Как я могу отладить проблему?

Уточнение . Два пользователя — это две учетные записи на одном и том же MacBook. Два пользователя используют одну и ту же OSX, поэтому для них кажется разумным использовать одну и ту же виртуальную машину Windows.

Update После очередной свежей установки VMware + Windows 7, на этот раз установленной и используемой исключительно одним пользователем, начинается та же вялость. Есть несколько подозрений.

Mds сходит с ума, например. Может быть, он индексирует (и как-то мешает) отдельный раздел, на котором установлена ​​виртуальная машина Windows?

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

«Вялость начинается после небольшого использования» — вы уверены, что это не ваша работа разработчиков тормозит его? Что показывает Process Explorer, когда виртуальная машина тормозит? Если вы хотите отладить это вручную, мы должны обсудить это в чате...

Ответы (2)

Прочтите статью службы поддержки VMware 1015676 , чтобы узнать о том, что может вызывать замедление работы, и о том, что с этим можно сделать.

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

В частности, что нужно проверить, учитывая, что «mds сходит с ума»:

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

Вы также можете поэкспериментировать с:

  • Включить буферизацию жесткого диска. Это было критично для меня, когда моя виртуальная машина находилась в массиве RAID 5, но в остальном не имело значения. Настройки виртуальной машины -> Дополнительно, установите для параметра «Буферизация жесткого диска» значение «Включено».
  • Включить/отключить файл подкачки Windows. Для реального компьютера лучший совет — оставить файл подкачки активным и управлять системой в Windows 7 (в отличие от XP, где его, вероятно, лучше удалить, если у вас достаточно оперативной памяти). Для виртуальной машины, использующей виртуальный диск, это не так однозначно, но достаточно легко проверить. Следуйте этим инструкциям , чтобы перейти к настройкам файла подкачки, но вместо выбора размера выберите «Без файла подкачки».
Мой шаблон использования диска в Windows состоит в том, чтобы скопировать архив с почтовым индексом из OS X в виртуальную машину Windows, распаковать, скомпилировать/отладить и, наконец, переименовать zip и распакованный каталог в 01, 02, ..., чтобы быть готовым к следующему итерация после некоторой отладки. Другими словами, я удаляю не итерации по мере их выполнения, а пакетно, когда готов новый релиз. Однако каждый цикл компиляции/отладки состоит из удаления старых объектных файлов Visual Studio. Я не уверен, что эти удаления сами по себе могут вызвать фрагментацию/замедление работы vmware.
@Calaf, похоже, вам лучше обслуживать предварительно выделенный диск. Единственная причина не использовать предварительно выделенный диск заключается в том, что он занимает больше дискового пространства на хосте и увеличивает размер виртуальной машины для копирования. Если это не проблема, то обязательно предварительно выделите диск. В противном случае вы можете попытаться форсировать рост, сделав дополнительную копию нового кода, а затем удалив ее и очистив корзину (чтобы освободить только что выделенное место на диске) каждый раз, когда вы переносите новую версию. (Виртуальный диск никогда не сжимается автоматически.)
..и нельзя просто на лету перейти с инкрементного на предварительно выделенный диск. Необходимо установить Windows с нуля. Это правильно? Размер, кстати, не проблема, так как я выделяю раздел виртуальной машине Windows.
@Calaf, вы можете легко переключиться на предварительно выделенное. Выключите Windows, чтобы виртуальная машина казалась выключенной, затем в настройках виртуальной машины выберите жесткий диск, дополнительные параметры и нажмите «Предварительно выделить место на диске», а затем нажмите «Применить».
Как хорошо, но, как мне не повезло, я получаю «Недостаточно места в файловой системе для выбранной операции» - хотя я оставил 2 ГБ для учета различных интерпретаций «ГБ». На 40-гигабайтном разделе этого должно было хватить, поэтому должно быть что-то еще.
Также полезно отключить визуальные эффекты в Windows 7: Панель управления (Вид: Крупные значки) \ Система \ Дополнительные параметры системы (на левой панели) \ Дополнительно \ Производительность \ Настройки \ Визуальные эффекты \ Настроить для лучшей производительности.

Как я могу отладить проблему?

Передача образов ВМ — дело непростое. Образ часто создается с расширениями гипервизора, которые используют определенные аппаратные функции на машине, на которой была создана виртуальная машина. Если вы не используете точно такое же оборудование (особенно тот же ЦП), виртуальная машина может работать медленно или даже привести к сбою ОС хоста или зависанию ЦП.

Я бы начал с возврата виртуальной машины в исходное состояние:

  1. Удалить все снимки в виртуальной машине
  2. Выключите гостевую ОС, чтобы она была «выключена», а не просто приостановлена
  3. Откройте окно библиотеки виртуальных машин (Shift+Cmd+L) и выберите виртуальную машину.
  4. Щелкните значок гаечного ключа на панели инструментов, чтобы открыть окно настроек для этой виртуальной машины.
  5. Выберите «Дополнительно» и убедитесь, что для предпочтительного механизма виртуализации установлено значение «Автоматически», а для буферизации жесткого диска также установлено значение «Автоматически».
  6. Нажмите «Показать все», чтобы вернуться к основным настройкам.
  7. Нажмите «Совместимость» и убедитесь, что совместимость виртуальной машины настроена на версию VMWare, которую вы используете, или выше (в моем случае это Fusion 4 или выше), поэтому вам не нужно поддерживать устаревшие возможности виртуальной машины.
  8. Нажмите «Показать все» и вернитесь к основным настройкам.
  9. Нажмите «Экран» и убедитесь, что ускорение 3D-графики включено. Если его нельзя включить, это хороший намек на то, что виртуальная машина была создана с другим набором микросхем и действительно несовместима с вашей машиной.
  10. Нажмите «Показать все» и вернитесь к основным настройкам.
  11. Нажмите «Общие», а затем нажмите кнопку «Очистить виртуальную машину». Это избавит вас от всего лишнего мусора из моментальных снимков и вернет вас к хорошему чистому состоянию образа виртуальной машины.
  12. Нажмите «Показать все» и вернитесь к основным настройкам.
  13. Нажмите «Процессоры и ОЗУ» и установите их в соответствии с вашими потребностями. Вам нужен как минимум 1 процессор, но если у вас многоядерная машина, вы можете установить это выше. В идеале вы никогда не должны устанавливать количество процессоров в виртуальной машине больше, чем количество физических ядер в машине — 1. Таким образом, ваша физическая машина всегда имеет одно ядро ​​для себя. Оперативная память должна быть установлена ​​как минимум на рекомендуемое значение. Если у вас много оперативной памяти, вы можете увеличить ее, но не слишком увлекайтесь.
  14. Теперь включите виртуальную машину и выполните переустановку VMWare Tool (Virtual Machine -> Reinstall VMWare Tools...).

Другие вещи, которые следует учитывать:

  • ВМ должна быть на быстром диске. Обычно это означает ваш основной диск на вашей машине. Если он находится на диске, подключенном через USB, или на сетевом диске, производительность пострадает.
  • Вы не можете одновременно использовать образ виртуальной машины. Я говорю это на случай, если он у вас есть на общем диске, и вы оба пытаетесь запустить его одновременно. Вы должны сделать свои собственные, уникальные копии изображения.
  • Проверьте диспетчер задач в виртуальной машине, чтобы увидеть, что запущено. Возможно, у вас есть процесс или два, которые выходят из строя и потребляют весь ЦП виртуальной машины. Если это так, вы столкнулись с прямым вопросом типа «почему этот процесс ведет себя неправильно в Windows», и вам нужно будет обратиться к http://superuser.com , я подозреваю.

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

Несмотря на мое уточнение (без разницы в оборудовании), я застрял на пункте 1! Что такое «снимок»?
Снимки @Calaf — это сохраненные состояния виртуальной машины. В окне библиотеки виртуальных машин (Shift+Cmd+L) вы можете щелкнуть правой кнопкой мыши на виртуальной машине и выбрать «Снимки...» из списка, чтобы увидеть все сохраненные состояния. Удалите их все.
Я вижу только один снимок с пометкой «Текущее состояние — питание выключено». Его выбор не включает опцию «Удалить» в меню «Правка». Щелчок правой кнопкой мыши не показывает возможность его удаления. Что делать?
Замечательно. Это означает, что у вас нет моментальных снимков, а машина уже выключена! Перейдите к шагу 3 выше.
Шаги 5, 7 и 9 уже были в предложенной вами настройке. Выполнение шагов 11 и 12 не помогло. Просто перемещение по элементам в меню «Пуск» происходит очень медленно. Это еще более хлопотно. Теперь виртуальная машина работает медленно даже для первого пользователя. Есть ли более простое решение, чем переустановка Windows?
См. шаги 12 и 13 отредактированного вопроса. Запускаете ли вы какое-либо программное обеспечение на виртуальной машине, когда она работает медленно, или работает только обычная ванильная ОС?
Диспетчер задач показывает ~ 0% ЦП для каждого процесса. Только один пользователь входит в систему и использует виртуальную машину одновременно (после перезапуска OS X). Единственная потенциальная проблема заключается в том, что я пошел дальше и использовал раздел BOOTCAMP (который представляет собой FAT32, а не UFS+), но я сомневаюсь, что это фактор, поскольку Windows 7 изначально работала очень гладко на VMware.
Включен ли (устаревший) FileVault для одной из учетных записей пользователей (более медленной)? По умолчанию VMware Fusion помещает новые виртуальные машины в каталог ~/Documents, поэтому дополнительные накладные расходы, требуемые FileVault, могут значительно снизить производительность виртуальной машины. Я перемещаю каталог виртуальных машин в корень на (устаревших) машинах FileVault.
Ах .. вот что-то, что сработало. Я попробовал пункт 14, выбрав «восстановить..», что не помогло. Теперь я выбрал «удалить..» и установил новую копию VMware Tools. Позвольте мне проверить, гладко ли это для второго пользователя.
@binarybob FileVault не используется, но виртуальная машина находится в отдельном разделе FAT32. Во всяком случае, отдельный раздел должен быть лучше, не так ли? И драйвер OS X, как правило, работает с доступом к FAT32.
@Calaf да, процессы установки драйверов помогают оптимизировать гостевые драйверы для базового оборудования. Если вы перемещаете виртуальную машину, то, скорее всего, вам придется переустановить драйверы VMWare.
@Ian C. Первоначально VMware устанавливалась в ~/Documents, но я сделал вторую (совершенно отдельную, а не перемещение) установку непосредственно в /Volumes/BOOTCAMP. Это установка виртуальной машины Windows 7 (в /Volumes/BOOTCAMP), которую я пытаюсь сделать доступной для нескольких учетных записей на одном MacBook.
@Calaf, пока они не пытаются использовать его одновременно , все должно быть в порядке. Помогла ли переустановка VMWare Tools?
Да, только один пользователь входил в систему одновременно, и все же.. Удаление, а затем установка (не восстановление) инструментов VMware помогло пользователю, который это сделал, но Windows стала вялой для другого пользователя! Я сдаюсь.
@IanC. Я собираюсь переустановить виртуальную машину Windows после установки «Предварительно выделить пространство» в разделе «Жесткий диск» в настройках виртуальной машины. Я удивлен, что вы не упомянули об этом, хотя ваше сообщение довольно тщательно. По вашему опыту это мало что меняет на практике?
Я не заметил падения производительности на своих виртуальных машинах Windows, и я не выделяю пространство заранее. Если это имеет значение, отпишитесь и дайте нам знать!