Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Эта история началась с того, что в этот блог пришел Скотт Хансельман и поставил меня в комментариях на место :) Нет, все-таки первый раз я узнал о дефраге больше двух лет назад, а рассказ в апреле 2013 года, как знают постоянные читатели.

Дефрагментация SSD в Windows 8Увеличить рисунок
SSD подвергается пяти проходам обычной дефрагментации

Но вряд ли многие из вас в курсе развития событий, порожденных .

В двух словах: начиная с Windows 8, операционная система Microsoft примерно раз в месяц специально дефрагментирует SSD, если включена (по умолчанию она включена в Windows 8 и 8.1, и отключена в Windows 10).

Сегодня в программе

История вопроса

Единственная запись блога на английском языке за полтора года набрала 60 тысяч просмотров (у русской всего на 15 тысяч сессий больше). Ссылка на нее всплывала на некоторых крупных форумах, но особого движения не было. А потом пришел Хансельман.

Кто такой Скотт Хансельман

Microsoft признала дефрагментацию SSD в Windows 8

– евангелист Microsoft в сфере разработки, а также учитель, спикер, программист и блогер. Я давно читаю его записи о программах и эффективной работе в ОС, хотя их все меньше и меньше в последнее время.

В моем понимании, Скотт для разработчиков – это примерно как Марк Руссинович для ИТ-специалистов (возможно, чуть поменьше калибром). Мы, кстати, пересекались на летней конференции , куда он был приглашен в качестве спикера. Он охотно раздавал автографы и позировал на фото с участниками и MVP.

Что утверждала Microsoft

И вот почти через год после публикации статьи о дефраге Скотт ко мне в блог!

Microsoft признала дефрагментацию SSD в Windows 8(Перевод) Windows не дефрагментирует SSD. И точка. Если диск определился как SSD, его не дефрагментируют, ни при каких обстоятельствах. Это просто сообщение-пустышка. Никакого бага тут нет, извини.

«О как!», подумал я, попутно отметив, откуда дует ветер. Действительно, в Твиттере кто-то попросил Скотта сообщить о проблеме продуктовой группе, но тот решил просто расставить точки над i своим весом, не вникая в статью. Когда я в блоге и Твиттере попросил его обращать внимание на факты, то получил в ответ ссылку на SuperUser с той же мантрой.

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

(Перевод) Только что получил подтверждение. Windows НЕ Дефрагментирует SSD. Точка.

(Перевод) Я только что общался с той командой. Плохое сообщение, но в реальности дефрага не происходит.

Поскольку я продолжал гнуть свою линию в Твиттере, Скотт меня к кому-нибудь из команды Windows, указав на ее конкретного представителя (очевидно, с ним он и общался). На мое бодрое письмо (в копии, кстати, стоял один из читателей блога) тот не ответил, хотя является ведущим достаточно популярного шоу (!!!) на Channel 9, где решает по три проблемы с Windows за эпизод.

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

Вода камень точит

Однако нашелся еще один упорный товарищ, который прочел обмен мнениями в Твиттере, решил проверить все сам и 10 месяцев спустя поймал за руку Windows 8.1. Он опять обратился к Хансельману, опубликовав скриншот выполняющегося дефрага вкупе с очевидной нагрузкой на диск.

Возможно, Патрик был не единственным, т.к. в этот раз Скотт решил поговорить с другой командой – файловой системы. И вскоре отрапортовал, что ему открылось тайное знание, но бояться нечего – ждите статьи в блоге. Наконец, она появилась.

Объяснения Microsoft о дефрагментации SSD

Скотт Хансельман запись с громким названием «Реальная и полная история – дефрагментирует ли Windows ваш SSD?» В ней он:

  • охарактеризовал пост в моем блоге как самый популярный и обладающий большим количеством анализа, но в то же время не отвечающий на вопросы почему, как и насколько долго выполняется дефраг
  • процитировал собственный комментарий в моем блоге и признал свою неправоту жирным шрифтом
  • опубликовал объяснения продуктовой группы на тему дефрагментации и TRIM
  • на свой лад разъяснил слова разработчиков для читателей, характеризуя дефраг SSD как «интеллектуальный» и «умный»

В скобках замечу, что Скотт не сослался на мою статью, где были ответы на все якобы не раскрытые вопросы. Да, я не знал, почему реализовали дефраг, но именно в этом и заключался мой вопрос к продуктовой группе :)

Зачем Windows дефрагментирует SSD

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

Давайте смотреть…

На самом деле Скотт и Вадим оба неправы.

Со Скоттом, отрицавшим дефраг, все понятно. Но я тоже оказался неправ, хотя верно описал процесс :) Ниже я отдельно поделюсь мыслями по этому поводу.

Оптимизатор дисков дефрагментирует SSD раз в месяц, если включено теневое копирование тома.

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

После моих вопросов в комментариях Скотт выдал дополнительную информацию.

Запланированное задание проверяет, выполнялся ли дефраг в последние 28 дней. Если нет, делает дефрагментацию. Если да, проверяет через неделю.

Обратите внимание, что разработчики ни слова не говорят об уровне фрагментации тома, который я считаю более важным, чем дату последней оптимизации. Даже жесткие диски утилита defrag.exe обходит стороной, , и в моих экспериментах дефраг SSD выполнялся только при более высоком значении. Похоже, разработчики сами об этом не рассказали, а Скотт не догадался спросить, ибо далек от технических подробностей вопроса.

Сама же проверка, видимо, кроется за параметром $ в команде задания. В принципе, пояснение совпадает с моими наблюдениями. Я форсировать высокую фрагментацию тома и запускать задание ScheduledDefrag снова, но последовательных результатов не получил.

Это сделано специально из-за медленного создания снимков тома на фрагментированных томах SSD.

Вот и ключевой момент заявления, констатирующий проблему, но не объясняющий причину. Речь о теневом копировании тома (VSS), которое применяется для различных задач резервного копирования. В Windows на его основе работает создание образа системы с помощью и recimg, но технология доступна и сторонним программам (например, , хотя может и встроенные).

Конечно, на VSS опираются и (в т.ч. ).

Microsoft признала дефрагментацию SSD в Windows 8

Не зная причины проблемы, я могу поделиться только предположениями о происходящем. Когда диск сильно фрагментирован, ОС может испытывать затруднения при операциях чтения/записи в момент создания снимка. В теневую копию сохраняется не весь том, а только дельта изменений. Сбор информации, наверное, сопряжен с большим количеством операций случайного чтения, на скорость которых влияет сильная фрагментация. Надеюсь, запись снимка выполнятся последовательно и не столь подвержена проблеме.

Актуальность проблемы для домашних пользователей я рассмотрю ниже. Обратите внимание, что это единственное конкретное обоснование дефрагментации SSD, потому что, согласно разработчикам, при отключенной защите системы дефраг не выполняется. Все остальное уводит дискуссию в сторону, потому что относится к файловой системе (ФС) вне зависимости от фактора записи снимков.

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

Здесь мы имеем дело с мелкой подменой понятий, т.е. с перекладыванием с больной головы на здоровую. Вместо “SSD” должно быть написано “Windows на SSD” или “NTFS на SSD”, хотя я не исключаю, что этому ограничению подвержены другие ОС и ФС.

Твердотельный накопитель не знает, что накрутила сверху ФС. Контроллер просто . В потолок фрагментации файлов может упереться файловая система, но не SSD, который раскладывает данные по ячейкам на свое усмотрение, равно как самостоятельно выполняет сбор мусора и дефраг NAND.

Да, ОС помогает ему поддерживать высокую производительность, отправляя команды TRIM, но это не имеет отношения к фрагментации ФС. Наверное, она в каких-то редких условиях может и дойти до уровня, когда становится заметно снижение производительности в ряде задач.

Но в текущей реализации Microsoft просто пришла к тому, что Windows «из коробки» применяет обычный дефраг к HDD и SSD с помощью запланированного задания!

Заметьте, что специально для оптимизации по типу накопителя в Windows 8 появились новые /O и /L, а наружу не выведено явных способов дефрагментации SSD. Но в то же время сама ОС делает это примерно раз в месяц :)

Более того, рост числа фрагментов выливается в увеличение объема обработки метаданных при чтении/записи файла, что может понизить производительность.

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

Как работает отправка команд TRIM

Здесь нет срыва покровов, но есть технические обоснования текущей реализации.

Напомню, что у русской Windows в журнале фиксируется «повторная оптимизация», что является переводом слова “retrim”. Повторная она потому, что система изначально отсылает контроллеру команды TRIM при удалении файлов, но при этом ведет учет секторов с удаленной информацией. В рамках оптимизации (вручную или по расписанию) она отправляет их список оптом: «Я тебе весь месяц письма слала, дублирую на всякий случай!» Но ОС не может приказывать контроллеру, он просто принимает это к сведению.

Больше ничего разработчики не рассказали, но Скотт Хансельман взялся разъяснять происходящее. На мой взгляд, вышло не очень хорошо — он ведь так и не вник в тему. Например, по ходу дела у него родился термин «интеллектуальная дефрагментация SSD» применительно к самой обычной дефрагментации.

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

Вопросы и ответы

Я догадываюсь, что у вас есть ряд вопросов, поэтому постараюсь предвосхитить ключевые.

Значит, Вадим, вы были неправы, называя дефраг SSD багом Windows?

reunited and it feels so good

И да, и нет. С точки зрения разработчиков, моя ошибка в том, что я назвал дефраг SSD багом. Но заметьте, что одновременно они признают некое ограничение в работе теневых копий, которое и вынудило их реализовать дефраг SSD.

В остальном я не вижу ошибок в своем анализе дефрага. Задним-то умом все крепки, но ситуацию надо рассматривать в контексте. В общем случае багом считается аномальное поведение программного продукта, которое:

  1. Не имеет под собой явных технических оснований
  2. Не отражено в
  3. В корне отличается от поведения предыдущей версии

Обнаружив совокупность этих факторов, инженер QA, не обладающий подробной документацией по созданию компонента, обязательно занесет баг на баг-трекер. Замечу, что в профессиональной среде нередко используются термины проблема (issue) и дефект (defect), а не баг.

Дальше разработчики, обычно, действуют так:

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

Заметьте, что QA не стесняется считать ненормальное поведение дефектом вплоть до того момента, пока не получит вердикт разработчиков.

В данном случае все три фактора аномального поведения ОС были налицо, поэтому я занес баг на MS Connect и рассказал о нем вам.

Представьте, что вы первым в мире поставили Windows 8 и обнаружили в ней отсутствие кнопки «Пуск» :) Вы стали задавать вопросы на официальных форумах, демонстрировать разные доказательства, а вам отвечают, что в Windows есть кнопка «Пуск», и всегда была, сопровождая это ссылками на документацию к… Windows 7.

Конечно, я утрирую, но случай с дефрагом SSD из той же оперы, хотя он не столь очевидный и намного более сложный технически.

Мы видели дефраг SSD и приводили доказательства, но нас либо игнорировали, либо ставили на место, тыкая носом в старую документацию и отрицая дефраг на основе своих убеждений, а не фактов.

Заметьте, что с появлением официальных разъяснений мне практически ничего не нужно править в своей статье. Да, я заменил слово баг на дефраг, но техническая часть не требует корректировки. Я описал дефраг SSD, и он на самом деле происходит.

Кстати, некоторые скептики ставили под сомнение выводы о факте дефрага ввиду недостаточной доказательной базы, т.е. им было мало визуальных наблюдений, отчетов утилит и журналов событий. Это нормальная позиция, и я был близок к тому, чтобы осветить этот вопрос, но теперь в этом уже нет реальной необходимости. Однако я не исключаю, что расскажу о методике в блоге, потому что это интересно с технической точки зрения!

Подвержены ли дефрагу серверные системы?

В тексте записи Хансельман упоминает о серверных ОС только применительно к TRIM, но в комментариях внезапно делится дополнительной информацией.

On server we disabled all but slab consolidation and tier optimization for thinly provisioned volumes and tiered volumes respectively.

В переводе: на серверных ОС мы отключили все, кроме консолидации слоев на томах с тонкой подготовкой и оптимизации уровней на многоуровневых томах. (Артем в комментариях поправит терминологию, если что:)

В каких случаях отключение дефрагментации SSD может понизить его производительность?

car odometer

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

  • Установка обновлений Windows. При стандартных настройках обновление происходит в фоне, т.е. скорость создания точки не имеет значения, хотя еще предпочитают ручную установку.
  • Установка драйверов. По окончании установки и первичной настройки системы драйверы обновляются не так уж часто, причем они тоже доставляются по каналу Windows Update.
  • Установка некоторых программ. Пожалуй, это самый актуальный случай. В установщик (например, MSI) можно заложить автоматическое создание точки для отката, но не во всех программах это реализовано. Можете посмотреть у себя, сколько там точек создано из-за программ (в конце записи есть скрипт PowerShell).
  • Форсирование частого создания точек. Некоторые люди предпочитают создавать много точек в день с целью краткосрочного резервного копирования (Windows 8+ этому, кстати, ). Впрочем, для домашних пользователей это большая редкость, но в корпоративной среде на серверных ОС .

Честно говоря, для меня актуальна разве лишь установка программ. Но у вас ситуация может отличаться, конечно.

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

Так нужно ли все-таки отключать дефрагментацию SSD?

Old Light Switches

Исторически я советую вам следовать рекомендациям Microsoft. Если компания считает, что в каких-то условиях дефраг имеет смысл, оставьте все как есть – SSD это легко переживет. При отключенной защите системы можете вообще не беспокоиться, согласно разработчикам.

Это была моя официальная рекомендация, а теперь – мнение. Я не думаю, что дефраг SSD необходим для типичного домашнего ПК. Сценариев, в которых снижение производительности актуально, не так уж много (см. выше). Если даже фрагментация достигнет такой степени, когда замедление станет очевидным, можно вручную выполнить задание ScheduledDefrag. Не исключаю, что вы переустановите систему раньше, чем это произойдет :) В скобках замечу, что я пока не получил ни одной жалобы от людей, отключивших дефраг SSD по моим инструкциям.

Обратите внимание, что Microsoft не предприняла никаких попыток добавить дефраг SSD в Windows 7 задним числом, хотя эта система намного сильнее распространена (при этом ничто не помешало компании реализовать постфактум ).

Заявления разработчиков не относятся к Windows 7, но логично предположить, что в ней есть та же проблема записи снимков (иначе зачем было внедрять дефраг в новую ОС).

Возможно, в процессе разработки Windows 8 компания получила некое количество жалоб клиентов на низкую производительность теневого копирования и придумала вот такое решение. Но эти клиенты, скорее, были корпоративными, потому что я с трудом представляю значительный поток нареканий домашних владельцев SSD на эту тему.

Я говорил, что от дефрага ваш SSD не умрет. Выносливость флэш-памяти достаточно велика, чтобы вообще не заметить ежемесячную дефрагментацию. Меня эта проблема всегда интересовала из-за технических аспектов работы ОС, а не с позиции срока жизни накопителя. Для современного домашнего ПК без разницы, выполняет ОС дефраг SSD или нет.

Проверяем заявление разработчиков

У меня нет особых причин ставить слова разработчиков под сомнение, однако мне нравится принцип «доверяй, но проверяй» (особенно актуальный в этом случае). Для этого достаточно отключить защиту системы и посмотреть, произойдет ли дефраг SSD в течение следующих 30-40 дней. Но можно проанализировать ситуацию в ретроспективе, в чем я рассчитываю на вашу помощь.

Соберите указанные ниже сведения, если у вас:

  • Windows 8 или 8.1
  • отключена защита системы.
  • не отключен дефраг SSD по моим инструкциям

Сбор сведений

  1. Создайте отчет CheckBootSpeed.
  2. Запустите PowerShell , скопируйте туда приведенный ниже код и нажмите Enter два раза. Файл SR.txt будет сохранен на рабочем столе.
  3. Вставьте на содержимое отчетов CheckBootSpeed и SR.txt (вместе) и опубликуйте ссылку в комментариях.

Отчет CheckBootSpeed помимо прочего дает информацию о событиях дефрага, а дополнительный скрипт – о точках восстановления. Например, у меня картина такая:

Создано 17 точек восстановления за последние 16 нед, в том числе: • по расписанию - 4 • перед установкой обновлений - 4 • вручную - 5 За это время выполнено откатов: 1

Расклад берется из описаний событий (запланированная точка, Центр обновлений Windows, интерфейс панели управления или PowerShell). Остальные точки, скорее всего, созданы при установке программ.

Дискуссия и опрос

Как вам история? По-моему, это очень интересный случай из разряда, когда правая рука не знает, что делает левая, но думает, что знает :)

Проблема тут еще в том, что слова сотрудника Microsoft (особенно известного технического специалиста) автоматически получают статус истины и переводят противоположные утверждения в категорию ошибочных. Доказать обратное становится почти невозможно, вне зависимости от объема представленных доказательств.

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

Опрос призван выявить ваше отношение к дефрагу после того, как стала известна его причина. Понятие «дефраг отключен» одинаково применимо к выключению задания в планировщике и защиты системы. Напишите в комментариях, как вы проголосовали и поделитесь собранными сведениями, если ваша конфигурация соответствует заданным критериям.


Источник: http://www.outsidethebox.ms/17367/


Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск

Почему нельзя дефрагментировать ssd диск