Виртуальный жесткий диск снижает производительность

2

Я установил ОС на VHD, и производительность ОС ужасна. Все 3d-переходы и эффекты очень изменчивы, хотя у меня есть машина Core i7. Я создал этот VHD на Windows 7 Home Premium.

Я не имею в виду виртуальную машину. Я установил ОС на виртуальный жесткий диск. Все ресурсы компьютера выделяются этой ОС при загрузке. ОС загружает любую нормальную ОС. Я не использую VMware или Virtual Box ..

Почему производительность ОС падает при установке или запуске на виртуальном жестком диске?

С уважением

Умер Фарук
источник
Недостаточно информации, чтобы ответить, не догадываясь. Добавьте в свой пост еще какую-нибудь информацию, такую ​​как память, выделенная для ВМ, память на хост-ОС, фрагментирован ли VDK? Вы включили VT-x? И т.д. и т. Д.
Хеннес
Какое программное обеспечение VM вы используете?
сонливость
3
Просто чтобы подчеркнуть: VHD не подразумевает виртуализацию. Здесь нет VT-x, EPT или чего-либо еще. VHD - это просто способ иметь файловую систему NTFS внутри файловой системы NTFS, поэтому вы можете запускать две разные копии Windows из одного раздела диска. Операционная система, которая загружается с VHD, является полностью нативной, в том смысле, что она работает на железном оборудовании без гипервизора (если вы не используете Hyper-V, но это отдельно от проблемы с VHD).
allquixotic

Ответы:

5

Виртуальный жесткий диск - это файловая система внутри другой файловой системы.

Чтобы прочитать содержимое VHD, операционная система должна пройти два уровня косвенного обращения. Давайте посмотрим на это с точки зрения аппаратного обеспечения.

Таким образом, аппаратное обеспечение (жесткий диск, SSD, что угодно) считывает «сырые» сектора с диска. Из этих необработанных секторов драйвер файловой системы NTFS сообщает операционной системе информацию о секторах на диске, где находятся данные VHD. В конце концов, VHD - это файл, содержащий файловую систему . Прежде чем вы сможете прочитать файловую систему в VHD, вы должны сначала прочитать сам VHD как файл в базовой файловой системе NTFS.

Теперь вы прочитали байты VHD-файла. И что представляют эти байты? Это ... другая файловая система NTFS, со своим собственным списком файлов и каталогов, метаданными, потоками, фрагментами файлов и так далее.

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

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

Представьте, что у вас есть пластиковый лоток для кубиков льда на 10 кубиков льда, а внутри каждого отверстия для кубиков льда есть 10 прямоугольных стержней. Каждый прямоугольный стержень представляет собой кусок буквы. Вы хотите записать слово «ЯБЛОКИ». Как ты собираешься это сделать?

Ну, во-первых, вы должны посмотреть во все отверстия для кубиков льда и найти правильные стержни, чтобы собрать каждую букву. Затем вы должны убедиться, что все буквы в порядке. Таким образом, у вас есть «проблема внутри проблемы» - проблема на микроуровне состоит в сборке каждой буквы, а проблема на макроуровне - в сборке букв в слово. Вот как работают вложенные файловые системы при фрагментации.

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

Надеюсь, реальная аналогия помогла.

allquixotic
источник