2

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

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

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

С уважением

1 ответ1

5

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

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

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

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

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

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

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .