Я знаю, что нет смысла (на самом деле это плохая идея) запускать Defrag на SSD. Как насчет виртуальной машины, работающей на SSD, я должен дефрагментировать ее жесткий диск, поскольку он в основном обращается к жесткому диску таким же образом?
8 ответов
Я дефрагментирую свои виртуальные жесткие диски, но из-за нехватки времени, а не времени:
Я использую динамически размещаемую опцию для виртуальных жестких дисков, поэтому они начинаются с малого и расширяются по мере необходимости. Но поскольку VHD (не обязательно файлы) становится фрагментированным, он расширяется и включает все выделенные блоки. Дефрагментация VHD - это первый шаг к его повторному сжатию.
Нет необходимости дефрагментировать SSD. Обычный жесткий диск должен вращаться, чтобы найти (части) файлов. SSD сравним с RAM, все файлы могут быть доступны с одинаковой задержкой.
Википедия утверждает, что «производительность чтения не меняется в зависимости от того, где хранятся данные на SSD»
Независимо от того, обращается ли ваша виртуальная машина к данным, хранящимся на традиционном магнитном жестком диске или электронном твердотельном накопителе, фрагментация файлов и свободного пространства в Windows NTFS замедляет скорость доступа приложений, запрашивающих данные. Фрагментация файлов NTFS и свободного места происходит гораздо чаще, чем вы можете догадаться. Это может произойти, как только вы установите операционную систему. Это может произойти при установке приложений или обновлений системы, доступе к Интернету, загрузке и сохранении фотографий, создании электронной почты, офисных документов и т.д. Это обычное явление и поведение компьютерной системы, но оно оказывает отрицательное влияние на все приложения и производительность системы. По мере фрагментации компьютерная система и основное хранилище выполняют больше работы, чем необходимо. Каждый запрос ввода / вывода занимает измеримое время. Даже в средах SSD не существует такого понятия, как «мгновенный» запрос ввода-вывода. Каждый раз, когда приложение запрашивает чтение или запись данных, и этот запрос разделяется на дополнительные запросы ввода-вывода, это требует больше работы. Эта дополнительная работа вызывает задержку как раз в тот самый момент времени.
Диски стали быстрее с годами, как и процессоры. Фактически, разрыв между разницей в скорости между жесткими дисками и процессором фактически увеличился. Это означает, что приложения могут получать много циклов ЦП, но они все еще не могут получить данные из хранилища. Более того, объем хранимых данных значительно увеличился. Просто подумайте обо всех этих цифровых фотографиях, сделанных и переданных в праздничные дни. Размер каждой фотографии составляет около 1 МБ, теперь они превышают 15 МБ на фотографию, а некоторые выходят за рамки этого. Редактирование видео, рендеринг и хранение цифровых фильмов также стали довольно популярными, и в результате приложения манипулируют сотнями гигабайт данных. При типичных дисковых кластерах размером 4 КБ файл размером 15 МБ потенциально может быть фрагментирован почти до 4000 экстентов. Это означает, что для чтения или записи файла требуются дополнительные 4000 запросов дискового ввода-вывода. Независимо от того, какой тип хранилища, для завершения операции потребуется больше времени.
Физическое размещение данных на SSD не так важно, как на обычных магнитных HDD. С SSD нет задержки вращения или поиска времени, чтобы бороться с. Многие эксперты предполагают, что фрагментация больше не является проблемой, но скорость доступа к данным приложения определяется не только этими терминами. Каждый выполненный запрос ввода / вывода занимает измеримое количество времени. SSD быстрые, но они не мгновенные. Файловая система Windows NTFS не ведет себя по-другому, потому что основное хранилище - это SSD против HDD, и поэтому фрагментация все еще происходит. Сокращение ненужных операций ввода-вывода за счет предотвращения и искоренения фрагментации уменьшает количество запросов ввода-вывода и, как следствие, ускоряет время отклика данных приложения и увеличивает общую продолжительность жизни SSD. По сути, это обеспечивает более последовательные операции ввода-вывода, которые обычно выполняются быстрее и превосходят случайные записи.
Кроме того, SSD требуют, чтобы старые данные были стерты до того, как новые данные будут записаны поверх него, а не просто поверх старой информации, как на жестких дисках. Это удваивает износ и может вызвать серьезные проблемы с быстродействием и сроком службы SSD. Большинство производителей SSD имеют очень сложные технологии выравнивания износа, чтобы помочь с этим. Принципиальная проблема - снижение скорости записи из-за фрагментации свободного пространства. Небольшие свободные места, разбросанные по всему SSD, заставляют файловую систему NTFS записывать файл фрагментированными частями в эти небольшие доступные свободные места. Это приводит к тому, что трафик случайного ввода-вывода генерируется медленнее, чем последовательные операции.
У меня есть результаты тестов, чтобы подтвердить это. Если хотите, оставьте комментарий, запрашивая эти результаты, и я буду рад поделиться ими с вами.
Что касается первоначального вопроса о традиционной дефрагментации SSD, я согласен, что это плохая идея, но существуют конкретные решения, которые решают проблемы перемещения файлов и срока службы SSD.
Виртуальная машина, работающая под управлением Windows в качестве операционной системы, фрагментирование все равно будет происходить, и объединенный эффект дополнительного трафика ввода-вывода снизит скорость и эффективность не только гостевых систем, но и хоста. И Microsoft, и VMware рекомендуют учитывать проблему фрагментации на уровне гостя.
Вот почему ...
Приложение запрашивает данные X
Запрос обрабатывается NTFS.sys
Атрибуты файла проверяются ($ MFT), и если данные не содержатся в одном экстенте (фрагменте), то для каждого экстента / фрагмента создаются дополнительные запросы ввода-вывода, чтобы удовлетворить исходный запрос данных.
Каждый из этих запросов затем отправляется драйверу дискового хранилища.
Как только данные получены, они передаются обратно в стек пользователю / приложению.
Каждая виртуальная машина Windows отправляет этот тип трафика ввода-вывода в хост-систему. Если структура файловой системы фрагментирована на уровне гостевой / виртуальной машины, это приводит к дополнительному и ненужному трафику ввода-вывода, который должен обрабатываться хостом и обрабатываться бэкэнд-хранилищем. Это усложняется по мере добавления все большего количества виртуальных машин. Фактически, вы можете иметь фрагментацию внутри фрагментации на уровне файловой системы хоста.
Независимо от того, хранятся ли данные на SSD или традиционном жестком диске, если вы работаете в Windows, файловая система NTFS будет фрагментирована, и в результате вы никогда не достигнете номинальной скорости и пропускной способности производителей из-за фрагментации файла NTFS и свободного пространства. Эффекты можно измерить с помощью PerfMon, посмотрев на «Средняя длина очереди чтения с диска», «Средняя длина очереди записи» и, что наиболее важно, «Разделение ввода-вывода / сек».
Это только мое мнение, у меня нет результатов испытаний, подтверждающих это. Вот грубое приближение того, как все, вероятно, происходит:
Реальная ОС:
- Приложение запрашивает данные X (быстро)
- ОС запрашивает драйвер диска для данных X (быстро)
- Физический диск извлекает данные X и возвращает их в ОС (медленно, если фрагментировано)
Вот эквивалентная цепочка команд в ВМ:
- Приложение VM запрашивает данные X (быстро)
- VM OS запрашивает данные X (быстро)
- Хост VM просит настоящую ОС получить данные X, хранящиеся в файле виртуального диска (быстро)
- Реальная ОС просит драйвер диска получить данные X (быстро)
- Физический диск извлекает данные X и возвращает их ОС (медленно, если фрагментировано).
Как вы можете видеть, в обоих случаях фрагментация действительно становится проблемой только на этапе операции, когда физический жесткий диск пытается прочитать данные, и это происходит в реальной ОС вне контекста виртуальной машины. До этого все, скорее всего, происходит в памяти.
В заключение, поскольку мы знаем, что твердотельные накопители не страдают от фрагментации в реальной ОС и что проблема фрагментации в виртуальной машине, вероятно, возникает только на последнем физическом этапе операции, я бы предположил, что дефрагментация либо вашей виртуальной ОС, либо Файл виртуального диска в вашей основной ОС не улучшит производительность SSD, но будет столь же вредным / бесполезным, как и дефрагментация вашей реальной ОС.
Редактировать: И если это правильно, это чертовски веская причина для установки виртуальной машины на SSD! На жестком диске фрагментация на любом этапе (гостевая ОС, файл виртуального диска, настоящая ОС) нарушит линейность и вызовет фрагментацию на шаге физического диска.
Начиная с Windows Server 2008 и Windows Vista, будьте осторожны с запланированной по умолчанию задачей дефрагментации Windows.
Его можно отключить с помощью: schtasks /change / tn “microsoft\windows\defrag\ScheduledDefrag” /disable
или используя PowerShell:
Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask
Извлечено из: http://www.sysadmit.com/2015/10/vmware-y-gpo-defrag-windows.html
Я только что дефрагментировал виртуальную машину VMLite XPMode, используя дефрагментацию Windows, размещенную на 240 ГБ INTEL SSDSC2CW240A3.
Размер виртуальной машины до дефрагментации на хосте - 7,83 ГБ (Используемое пространство на C: на ВМ, 5,81 ГБ из 121 ГБ)
Post defrag - 9,86 ГБ (Используемое пространство на C: на ВМ, 5,80 ГБ из 121 ГБ)
Не тот результат, которого я ожидал, и я восстановил предварительную версию дефрагментации.
Нет, не совсем. Есть такие вещи, как "Hyperfast" от Diskeeper, но я понятия не имею, насколько эффективны эти технологии. (Это может быть просто плагиат, чтобы они не упали с рынка после того, как SSD станут мейнстримом.)