Эта история началась с того, что в этот блог пришел Скотт Хансельман и поставил меня в комментариях на место :) Нет, все-таки первый раз я узнал о дефраге больше двух лет назад, а рассказ опубликовал в апреле 2013 года, как знают постоянные читатели.
Но вряд ли многие из вас в курсе развития событий, порожденных английской версией статьи.
В двух словах: начиная с Windows 8, операционная система Microsoft примерно раз в месяц специально дефрагментирует SSD, если включена защита системы.
[+] Сегодня в программе
- История вопроса
- Объяснения Microsoft о дефрагментации SSD
- Вопросы и ответы
- Значит, Вадим, вы были неправы, называя дефраг SSD багом Windows?
- Подвержены ли дефрагу серверные ОС?
- В каких случаях отключение дефрагментации SSD может понизить его производительность?
- Так нужно ли все-таки отключать дефрагментацию SSD?
- Проверяем заявление разработчиков
- Дискуссия и опрос
- P.S. 6 лет спустя
История вопроса
Единственная запись блога на английском языке за полтора года набрала 60 тысяч просмотров (у русской всего на 15 тысяч сессий больше). Ссылка на нее всплывала на некоторых крупных форумах, но особого движения не было. А потом пришел Хансельман.
Кто такой Скотт Хансельман
Скотт Хансельман – евангелист Microsoft в сфере разработки, а также учитель, спикер, программист и блогер. Я давно читаю его записи о программах и эффективной работе в ОС, хотя их все меньше и меньше в последнее время.
В моем понимании, Скотт для разработчиков – это примерно как Марк Руссинович для ИТ-специалистов (возможно, чуть поменьше калибром). Мы, кстати, пересекались на летней конференции DevCon 2012, куда он был приглашен в качестве спикера. Он охотно раздавал автографы и позировал на фото с участниками и MVP.
Что утверждала Microsoft
И вот почти через год после публикации статьи о дефраге Скотт пришел ко мне в блог!
«О как!», подумал я, попутно отметив, откуда дует ветер. Действительно, в Твиттере кто-то попросил Скотта сообщить о проблеме продуктовой группе, но тот решил просто расставить точки над i своим весом, не вникая в статью. Когда я в блоге и Твиттере попросил его обращать внимание на факты, то получил в ответ ссылку на SuperUser с той же мантрой.
Однако Скотт все же задал вопрос внутри компании и в тот же день опубликовал ответ. (Похоже, твиты не выдержали испытание временем, но их внедрение в блог сохранило хотя бы текст.)
Поскольку я продолжал гнуть свою линию в Твиттере, Скотт отправил меня к кому-нибудь из команды Windows, указав на ее конкретного представителя (очевидно, с ним он и общался). На мое бодрое письмо (в копии, кстати, стоял один из читателей блога) тот не ответил, хотя является ведущим достаточно популярного шоу Defrag (!!!) на Channel 9, где решает по три проблемы с Windows за эпизод.
И что с ними делать? Я добавил в английскую запись четыре вопроса к продуктовой группе и предложил не беспокоить меня ссылками на устаревшее капитанство других сайтов.
Вода камень точит
Однако нашелся еще один упорный товарищ, который прочел обмен мнениями в Твиттере, решил проверить все сам и 10 месяцев спустя поймал за руку Windows 8.1. Он опять обратился к Хансельману, опубликовав скриншот выполняющегося дефрага вкупе с очевидной нагрузкой на диск.
@shanselman @0utsideTheBox finally I've caught my up2date Windows 8.1 doing defrag on SSD (with proof attached).. pic.twitter.com/lPXdpfciHf
— Patrick Heyer (@patthemav) November 11, 2014
Возможно, Патрик был не единственным, т.к. в этот раз Скотт решил поговорить с другой командой – файловой системы. И вскоре отрапортовал, что ему открылось тайное знание, но бояться нечего – ждите статьи в блоге. Наконец, она появилась.
Объяснения Microsoft о дефрагментации SSD
Скотт Хансельман опубликовал запись с громким названием «Реальная и полная история – дефрагментирует ли Windows ваш SSD?» В ней он:
- охарактеризовал пост в моем блоге как самый популярный и обладающий большим количеством анализа, но в то же время не отвечающий на вопросы почему, как и насколько долго выполняется дефраг
- процитировал собственный комментарий в моем блоге и признал свою неправоту жирным шрифтом
- опубликовал объяснения продуктовой группы на тему дефрагментации и TRIM
- на свой лад разъяснил слова разработчиков для читателей, характеризуя дефраг SSD как «интеллектуальный» и «умный»
В скобках замечу, что Скотт не сослался на мою статью, где были ответы на все якобы не раскрытые вопросы. Да, я не знал, почему реализовали дефраг, но именно в этом и заключался мой вопрос к продуктовой группе :)
Зачем Windows дефрагментирует SSD
Я сначала приведу цитату продуктовой группы наряду со своим максимально дословным переводом, а потом прокомментирую объяснения разработчиков.
Заявление разработчиков и перевод
Actually Scott and Vadim are both wrong. Storage Optimizer will defrag an SSD once a month if volume snapshots are enabled. This is by design and necessary due to slow volsnap copy on write performance on fragmented SSD volumes. It’s also somewhat of a misconception that fragmentation is not a problem on SSDs. If an SSD gets too fragmented you can hit maximum file fragmentation (when the metadata can’t represent any more file fragments) which will result in errors when you try to write/extend a file. Furthermore, more file fragments means more metadata to process while reading/writing a file, which can lead to slower performance.
На самом деле Скотт и Вадим оба неправы. Оптимизатор дисков дефрагментирует SSD раз в месяц, если включено теневое копирование тома. Это сделано специально из-за медленного создания снимков тома на фрагментированных томах SSD. Кроме того, существует ошибочное мнение, что фрагментация не является проблемой для SSD. Если SSD сильно фрагментирован, можно упереться в потолок фрагментации файлов (когда метаданные не могут отразить больше фрагментов), что приведет к ошибкам при записи / расширении файла. Более того, рост числа фрагментов выливается в увеличение объема обработки метаданных при чтении/записи файла, что может понизить производительность.
Давайте смотреть…
Со Скоттом, отрицавшим дефраг, все понятно. Но я тоже оказался неправ, хотя верно описал процесс :) Ниже я отдельно поделюсь мыслями по этому поводу.
Я как раз и говорил, что дефраг происходит примерно раз в месяц, чему нашлось подтверждение и в присланной вами статистике. Но я не знал, что условием является именно включенная защита системы (все, теперь ей точно конец :), поскольку тестировал Windows только со стандартными параметрами. Кстати, это заявление тоже надо проверить, и мы попробуем прямо сегодня!
После моих вопросов в комментариях Скотт выдал дополнительную информацию.
Запланированное задание проверяет, выполнялся ли дефраг в последние 28 дней. Если нет, делает дефрагментацию. Если да, проверяет через неделю.
Обратите внимание, что разработчики ни слова не говорят об уровне фрагментации тома, который я считаю более важным, чем дату последней оптимизации. Даже жесткие диски утилита defrag.exe обходит стороной, если уровень ниже 10%, и в моих экспериментах дефраг SSD выполнялся только при более высоком значении. Похоже, разработчики сами об этом не рассказали, а Скотт не догадался спросить, ибо далек от технических подробностей вопроса.
Сама же проверка, видимо, кроется за параметром $ в команде задания. В принципе, пояснение совпадает с моими наблюдениями. Я пытался форсировать высокую фрагментацию тома и запускать задание ScheduledDefrag снова, но последовательных результатов не получил.
Вот и ключевой момент заявления, констатирующий проблему, но не объясняющий причину. Речь о теневом копировании тома (VSS), которое применяется для различных задач резервного копирования. В Windows на его основе работает создание образа системы с помощью dism и recimg, но технология доступна и сторонним программам (например, Acronis использует свои теневые копии, хотя может и встроенные).
Конечно, на VSS опираются и точки восстановления системы (в т.ч. предыдущие версии файлов).
Не зная причины проблемы, я могу поделиться только предположениями о происходящем. Когда диск сильно фрагментирован, ОС может испытывать затруднения при операциях чтения/записи в момент создания снимка. В теневую копию сохраняется не весь том, а только дельта изменений. Сбор информации, наверное, сопряжен с большим количеством операций случайного чтения, на скорость которых влияет сильная фрагментация. Надеюсь, запись снимка выполнятся последовательно и не столь подвержена проблеме.
Актуальность проблемы для домашних пользователей я рассмотрю ниже. Обратите внимание, что это единственное конкретное обоснование дефрагментации SSD, потому что, согласно разработчикам, при отключенной защите системы дефраг не выполняется. Все остальное уводит дискуссию в сторону, потому что относится к файловой системе (ФС) вне зависимости от фактора записи снимков.
Кроме того, существует ошибочное мнение, что фрагментация не является проблемой для SSD. Если SSD сильно фрагментирован, можно упереться в потолок фрагментации файлов (когда метаданные не могут отразить больше фрагментов), что приведет к ошибкам при записи / расширении файла.
Здесь мы имеем дело с мелкой подменой понятий, т.е. с перекладыванием с больной головы на здоровую. Вместо “SSD” должно быть написано “Windows на SSD” или “NTFS на SSD”, хотя я не исключаю, что этому ограничению подвержены другие ОС и ФС.
Твердотельный накопитель не знает, что накрутила сверху ФС. Контроллер просто сопоставляет адреса LBA с физическими ячейками памяти. В потолок фрагментации файлов может упереться файловая система, но не SSD, который раскладывает данные по ячейкам на свое усмотрение, равно как самостоятельно выполняет сбор мусора и дефраг NAND.
Да, ОС помогает ему поддерживать высокую производительность, отправляя команды TRIM, но это не имеет отношения к фрагментации ФС. Наверное, она в каких-то редких условиях может и дойти до уровня, когда становится заметно снижение производительности в ряде задач.
Но в текущей реализации Microsoft просто пришла к тому, что Windows «из коробки» применяет обычный дефраг к HDD и SSD с помощью запланированного задания!
Заметьте, что специально для оптимизации по типу накопителя в Windows 8 появились новые параметры defrag.exe /O и /L, а наружу не выведено явных способов дефрагментации SSD. Но в то же время сама ОС делает это примерно раз в месяц :)
Более того, рост числа фрагментов выливается в увеличение объема обработки метаданных при чтении/записи файла, что может понизить производительность.
Я не уверен, что проблема настолько существенна для твердотельных дисков, и это больше пахнет еще одним ограничением ФС. Она ведь разрабатывалась под жесткие диски, поэтому просто наступает на те же грабли даже на SSD.
Как работает отправка команд TRIM
Здесь нет срыва покровов, но есть технические обоснования текущей реализации.
Заявление разработчиков и перевод
As far as Retrim is concerned, this command should run on the schedule specified in the dfrgui UI. Retrim is necessary because of the way TRIM is processed in the file systems. Due to the varying performance of hardware responding to TRIM, TRIM is processed asynchronously by the file system. When a file is deleted or space is otherwise freed, the file system queues the trim request to be processed. To limit the peek resource usage this queue may only grow to a maximum number of trim requests. If the queue is of max size, incoming TRIM requests may be dropped. This is okay because we will periodically come through and do a Retrim with Storage Optimizer. The Retrim is done at a granularity that should avoid hitting the maximum TRIM request queue size where TRIMs are dropped.
Повторная оптимизация (retrim) выполняется по расписанию оптимизатора дисков (dfrgui). Операция необходима ввиду особенности обработки TRIM файловой системой. Она выполняется асинхронно, поскольку производительность оборудования в ответ на команды варьируется. Когда файл удаляется или место освобождается другим способом, файловая система ставит запрос TRIM в очередь.
Чтобы ограничить пиковое использование ресурсов, длина очереди запросов конечна. Когда она достигает максимального размера, входящие запросы TRIM могут пропадать. Поэтому мы время от времени выполняем повторную оптимизацию и реализуем ее так, чтобы не упираться в предел длины очереди запроса.
Напомню, что у русской Windows в журнале фиксируется «повторная оптимизация», что является переводом слова “retrim”. Повторная она потому, что система изначально отсылает контроллеру команды TRIM при удалении файлов, но при этом ведет учет секторов с удаленной информацией. В рамках оптимизации (вручную или по расписанию) она отправляет их список оптом: «Я тебе весь месяц письма слала, дублирую на всякий случай!» Но ОС не может приказывать контроллеру, он просто принимает это к сведению.
Больше ничего разработчики не рассказали, но Скотт Хансельман взялся разъяснять происходящее. На мой взгляд, вышло не очень хорошо — он ведь так и не вник в тему. Например, по ходу дела у него родился термин «интеллектуальная дефрагментация SSD» применительно к самой обычной дефрагментации.
Я считаю, что продуктовая группа должна четче и подробнее объяснить механизм дефрагментации, а также причины, которые к этому привели. Ей следует опубликовать статью в базе знаний или подробную запись в одном из официальных блогов, в идеале сопровождая ее статистикой и реальными примерами причин такой реализации.
Вопросы и ответы
Я догадываюсь, что у вас есть ряд вопросов, поэтому постараюсь предвосхитить ключевые.
Значит, Вадим, вы были неправы, называя дефраг SSD багом Windows?
И да, и нет. С точки зрения разработчиков, моя ошибка в том, что я назвал дефраг SSD багом. Но заметьте, что одновременно они признают некое ограничение в работе теневых копий, которое и вынудило их реализовать дефраг SSD.
В остальном я не вижу ошибок в своем анализе дефрага. Задним-то умом все крепки, но ситуацию надо рассматривать в контексте. В общем случае багом считается аномальное поведение программного продукта, которое:
- Не имеет под собой явных технических оснований
- Не отражено в официальных источниках
- В корне отличается от поведения предыдущей версии
Обнаружив совокупность этих факторов, инженер 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 может понизить его производительность?
Для начала, уровень фрагментации файлов должен быть весьма высоким. Затем, у домашних ПК самый регулярный сценарий – это создание точки восстановления в перечисленных ниже случаях.
- Установка обновлений Windows. При стандартных настройках обновление происходит в фоне, т.е. скорость создания точки не имеет значения, хотя многие еще предпочитают ручную установку.
- Установка драйверов. По окончании установки и первичной настройки системы драйверы обновляются не так уж часто, причем они тоже доставляются по каналу Windows Update.
- Установка некоторых программ. Пожалуй, это самый актуальный случай. В установщик (например, MSI) можно заложить автоматическое создание точки для отката, но не во всех программах это реализовано. Можете посмотреть у себя, сколько там точек создано из-за программ (в конце записи есть скрипт PowerShell).
- Форсирование частого создания точек. Некоторые люди предпочитают создавать много точек в день с целью краткосрочного резервного копирования (Windows 8+ этому, кстати, сопротивляется). Впрочем, для домашних пользователей это большая редкость, но в корпоративной среде на серверных ОС встречается.
Честно говоря, для меня актуальна разве лишь установка программ. Но у вас ситуация может отличаться, конечно.
Трудно сказать, насколько снижение скорости может быть заметно (я попробую поэкспериментировать на досуге). Но точно не стоит сбрасывать со счета общую конфигурацию ПК. Сравните бенчмарк своего SSD с показателями любой тестовой лаборатории, и вы увидите преимущества «топовой» конфигурации. Когда в проблему упирается файловая система, многое зависит от быстродействия других аппаратных компонентов.
Так нужно ли все-таки отключать дефрагментацию SSD?
Исторически я советую вам следовать рекомендациям Microsoft. Если компания считает, что в каких-то условиях дефраг имеет смысл, оставьте все как есть – SSD это легко переживет. При отключенной защите системы можете вообще не беспокоиться, согласно разработчикам.
Это была моя официальная рекомендация, а теперь – мнение. Я не думаю, что дефраг SSD необходим для типичного домашнего ПК. Сценариев, в которых снижение производительности актуально, не так уж много (см. выше). Если даже фрагментация достигнет такой степени, когда замедление станет очевидным, можно вручную выполнить задание ScheduledDefrag. Не исключаю, что вы переустановите систему раньше, чем это произойдет :) В скобках замечу, что я пока не получил ни одной жалобы от людей, отключивших дефраг SSD по моим инструкциям.
Обратите внимание, что Microsoft не предприняла никаких попыток добавить дефраг SSD в Windows 7 задним числом, хотя эта система намного сильнее распространена (при этом ничто не помешало компании реализовать постфактум очистку winsxs).
Заявления разработчиков не относятся к Windows 7, но логично предположить, что в ней есть та же проблема записи снимков (иначе зачем было внедрять дефраг в новую ОС).
Возможно, в процессе разработки Windows 8 компания получила некое количество жалоб клиентов на низкую производительность теневого копирования и придумала вот такое решение. Но эти клиенты, скорее, были корпоративными, потому что я с трудом представляю значительный поток нареканий домашних владельцев SSD на эту тему.
Я изначально говорил, что от дефрага ваш SSD не умрет. Выносливость флэш-памяти достаточно велика, чтобы вообще не заметить ежемесячную дефрагментацию. Меня эта проблема всегда интересовала из-за технических аспектов работы ОС, а не с позиции срока жизни накопителя. Для современного домашнего ПК без разницы, выполняет ОС дефраг SSD или нет.
Проверяем заявление разработчиков
У меня нет особых причин ставить слова разработчиков под сомнение, однако мне нравится принцип «доверяй, но проверяй» (особенно актуальный в этом случае). Для этого достаточно отключить защиту системы и посмотреть, произойдет ли дефраг SSD в течение следующих 30-40 дней. Но можно проанализировать ситуацию в ретроспективе, в чем я рассчитываю на вашу помощь.
Соберите указанные ниже сведения, если у вас:
- Windows 8 или 8.1
- отключена защита системы.
- не отключен дефраг SSD по моим инструкциям
Сбор сведений
- Создайте отчет CheckBootSpeed.
- Запустите PowerShell от имени администратора, скопируйте туда приведенный ниже код и нажмите Enter два раза. Файл SR.txt будет сохранен на рабочем столе.
- Вставьте на PasteBin содержимое отчетов CheckBootSpeed и SR.txt (вместе) и опубликуйте ссылку в комментариях.
#Скрипт выводит сведения о точках восстановления за последние 120 дней и текущих теневых копиях $date = (Get-Date).AddDays(-120) $events = Get-WinEvent -FilterHashTable @{ LogName = "Application"; StartTime = $date; ID = 8194,8202 } $8194 = $events | Where-Object { $_.ID -eq 8194} $period = [math]::round( (((Get-Date) - ($8194 | select -Last 1).TimeCreated ).TotalDays )/7 ) $message = @" Создано $(($8194).count) точек восстановления за последние $period нед, в том числе: • по расписанию - $(($events | Where-Object {$_.ID -eq 8194 -and ($_.Message -like "*план*" -or $_.Message -like "*scheduled*")}).count) • перед установкой обновлений - $(($events | Where-Object {$_.ID -eq 8194 -and ($_.Message -like "*план*" -or $_.Message -like "*scheduled*")}).count) • вручную - $(($events | Where-Object {$_.ID -eq 8194 -and ($_.Message -like "*SystemPropertiesProtection.exe*" -or $_.Message -like "*wmiprvse*")}).count) За это время выполнено откатов: $(($events | Where-Object { $_.ID -eq 8202}).count) $([System.Environment]::NewLine) "@ Out-File $env:userprofile\desktop\SR.txt -inputobject $message 'Текущие теневые копии' | Out-File $env:userprofile\desktop\SR.txt -append iex 'VSSAdmin list shadows' | Out-File -append $env:userprofile\desktop\SR.txt
Отчет CheckBootSpeed помимо прочего дает информацию о событиях дефрага, а дополнительный скрипт – о точках восстановления. Например, у меня картина такая:
Создано 17 точек восстановления за последние 16 нед, в том числе: • по расписанию - 4 • перед установкой обновлений - 4 • вручную - 5 За это время выполнено откатов: 1
Расклад берется из описаний событий (запланированная точка, Центр обновлений Windows, интерфейс панели управления или PowerShell). Остальные точки, скорее всего, созданы при установке программ.
Дискуссия и опрос
Как вам история? По-моему, это очень интересный случай из разряда, когда правая рука не знает, что делает левая, но думает, что знает :)
Проблема тут еще в том, что слова сотрудника Microsoft (особенно известного технического специалиста) автоматически получают статус истины и переводят противоположные утверждения в категорию ошибочных. Доказать обратное становится почти невозможно, вне зависимости от объема представленных доказательств.
Любопытно, что в какой-то степени это относится и к моим утверждениям, поскольку в ряде случаев на них ссылаются, считая источник достаточно авторитетным. Я не претендую на истину в последней инстанции (это удел Microsoft), но в любом случае не отказываюсь поковырять техническую составляющую интересного вопроса.
Опрос призван выявить ваше отношение к дефрагу после того, как стала известна его причина. Понятие «дефраг отключен» одинаково применимо к выключению задания в планировщике и защиты системы. Напишите в комментариях, как вы проголосовали и поделитесь собранными сведениями, если ваша конфигурация соответствует заданным критериям.
Реакция читателей блога на новость, что дефрагментация SSD в Windows 8+ не является багом http://t.co/Qd9st6jnNc pic.twitter.com/JprVH9iRQM
— Windows Outsiders (@0utsidethebox) January 31, 2015
P.S. 6 лет лет спустя
Я просто оставлю это здесь
Павел Белый
Вадим, вы молодец!
Лично я считаю, что только факты и ещё раз факты могут однозначно определить правоту стороны, а то у нас последнее время все очень много чего говорят, а толку с их говорильни пшик.
Правды как минимум две – истина одна! Продолжайте в том же духе.
P.S.
Дефраг SSD был включен и останется включенным.
Евгений Ширяев
Кто-нибудь, снимите об этом фильм!:) Дефраг отключен по инструкциям, включить пока желания не возникло. Посмотрим, может быть померяем, но скорее раньше в качестве основной системы будет установлена Windows 10.
Vadim Sterkin
Евгений, так в 10 то же самое.
Евгений Ширяев
А там наверное вообще ничего менять не буду, посмотрим. Подожду от вас комментариев на этот счёт, после выхода финальной версии:) Вполне возможно, что и там будет скрыта какая-нибудь такая «пасхалка», особенно на фоне «объединения» Windows и Windows Phone:)
Lecron
Проголосовал «другое». Я сторонник компромиссов. Была бы у меня Win8 на SSD, постарался бы не перечить рекомендациям MS, оставляя дефрагментацию включенной, но заметно увеличил бы ее период. Например до 6 месяцев.
И волки сыты — нет дополнительной, зачастую бессмысленной нагрузки (пусть вред от нее и существует, только лишь в головах пользователей); и овцы целы — излишняя фрагментированность ФС не мешает.
Любопытно, а как поведут себя сторонние дефрагментаторы. Тот же Diskeeper.
Vadim Sterkin
Сторонние программы дефраг SSD вряд ли делают — это верный путь уничтожить свою репутацию. Будут ли они это делать теперь — вопрос. Я думаю, что вряд ли.
Александр [Маздайщик]
Perfect Disk делает и гордится этим, это уже обсуждалось в этом блоге. Тут вопрос в том, как это преподнести.
Vadim Sterkin
Александр, есть ссылка на официальную документацию программы по этому вопросу?
Александр [Маздайщик]
http://www.raxco.com/home/products/perfectdisk-pro#faqs
What does SSD Optimize do?
Solid State Drives are not affected by file fragmentation like traditional electromechanical disk drives, so we do not recommend any of the defrag methods for SSDs. However, free space consolidation can improve SSD write performance. The SSD Optimize method is a special type of optimization for SSD drives that focuses solely on free space consolidation without defragmentation of files. As such, it will leave files in a fragmented state while consolidating free space into large pieces, resulting in more efficient TRIM operations, reducing write amplification and extending the life of the drive.
Vadim Sterkin
Спасибо, Александр. Если я правильно понял, это частичный дефраг, который они боятся открыто назвать дефрагом.
sergey888
Проголосовал за «Другое / У меня не Windows 8+» потому как у меня Windows 7 и линукс.
Но статью прочел с интересом)
urix
Я напишу только одно — как же прекрасно, что я сижу на семёрке.
Вообще я ретроград. Жил на Win2000 до тех пор, пока очередное обновление Adobe Lightroom сказало «ну уж нет, дорогой — подавай мне XP»
Точно так же жил на XP, пока семёрка не стала удобней.
strafer
«Это не баг, это фича» ©
ЗЫ. Ничего в этом плане не менял, значит включена, теперь выключу, когда соберусь-таки перезагрузиться в венду. Пусть даже ссд может выдержать хоть стопицот циклов записи, бесполезные циклы всё равно случае ни к чему.
ЗЗЫ. Настойчивость Вадима в утверждении своей правоты заслуживает уважения. Мне такое по нраву.
Vadim Sterkin
Именно это я хотел добавить в подзаголовок. Спасибо за напоминание :)
Что же касается моей настойчивости, то в последнее время она сводилась к обмену твитами с Хансельманом. Но да, я готовился тщательно задокументировать эксперимент, не оставляющий сомнений в дефраге. Просто руки никак не доходили, это большая работа. Я уже проделал ее один раз для себя, но для публикации нужно было видео.
strafer
Некоторые люди остановились бы после его заявлений, что это фича. Он вроде как авторитет, а после ссылался на ещё ряд авторитетов.
Так что настойчивость тут именно в том, что, невзирая на рьяную самоуверенность авторитетов, гнуть свою линию дальше. А надо ради этого горы сворачивать или просто рефлекторно кастовать фаербол — это уже технические моменты.
Артём Родин
В опросе не хватает варианта «я ничего не трогал, и не буду».
А ещё у вас авторизация вконтакте отвалилась
{«error»:»invalid_request»,»error_description»:»Security Error»}
Vadim Sterkin
Артем, предлагаемый вами вариант — это третий пункт опроса. Авторизация ВК работает, только что проверил.
Матвей Солодовников
Вот это детектив! Воистину, фильм надо снять (или даже сериал). Вадим всколыхнул аж две команды MS своим постом. Такие дотошные поиски истины достойны уважения.
P. S. Голосовал за пункт «Windows 7».
Vadim Sterkin
Матвей, думаю, что «всколыхнул» точно не применимо к команде Windows. Вероятнее всего, Скотт спросил у Гова в Lync, тот сказал, что это чушь собачья, точно так же не вникая в статью, после чего в твиттере появилась «достоверная» информация от продуктовой группы :)
Роман Соломаха
На переживаниях, Вы забыли, что точки восстановления создают антивирусы после каждого обновления или сканирования. Так же я обратил внимание, что на Вин7, в дефрагментацию входит обычная флешка и отключить я не знаю как.
Vadim Sterkin
Роман, я ни о чем не переживал. Что касается антивирусов, огласите весь список, в том числе запрошенную мной информацию. Я считаю, что создание точки перед каждым обновлением баз — нонсенс. Встроенный Defender вообще не создает точек перед обновлением и сканированием.
Роман Соломаха
ССД не тестирую так, что нет ответа, а просто сам не давно ставил вопрос на Ансвер, и знаю эти дискуссии.
Антивирус как минимум MSE но резервирование в нем можно отключить, а бывает нужное: год назад Аваст своим обновлениям сигнатур, что-то снес в библиотеке Виндовс, и всё без точки восстановления были большие проблемы.
Vadim Sterkin
Роман, еще раз, покажите мне отчеты CheckBootSpeed и моего скрипта, а заодно — SR1.txt после выполнения этой команды:
Тогда у нас будет предметный разговор о частоте создания точек MSE. Беспредметный меня не интересует. Спасибо.
Роман Соломаха
Мазки наверное не получатся, я удаляю точки очень часто(полагаю это ускоряет НДД)
А пример настроек вот http://firepic.org/?v=4.2014-12-15_vczjg5846ya5.png
SR1.txt Это командной строкой?
У меня HDD
Vadim Sterkin
1. Меня интересует журнал событий, в нем инфо сохраняется даже после удаления точек.
2. В настройках AVG (а не MSE, о котором вы говорили ранее) речь об обновлении программы, а не вирусных баз.
3. Скрипты PowerShell.
Sergey Sysoev
По поводу VSS и фрагментации. Я думаю дело происходит так. Есть условно диск с данными, где Х — блоки данных, 0 — свободное место, Х* — измененные блоки.
1 2 3 4 5 0 0 0
На время, пока делается снапшот и бекап, все прежние данные остаются нетронутыми, а изменения попадают в свободные места:
1 2 3 4 5 2* 4* 0
Потом после удаление снапшота освободятся ранее занятые блоки данных из снапшота:
1 0 3 0 5 2* 4* 0
Фрагментация, как говорится, на лицо,
Роман Соломаха
Это снижает скорость считывания или блокирует часть памяти(её становится меньше)?
Обычно спор кончается тем, что как бы ССД не фрагментировалась, её метод считывания таков, что это не снижает скорости.
Vadim Sterkin
Сергей, заметьте, что разработчики говорят о низкой производительности создания снимков при сильной фрагментации, а не о том, что создание снимков порождает сильную фрагментацию. Да, какую-то фрагментацию оно порождает, но так любая запись данных ее может породить, кроме последовательных трансферов на пустом диске.
Александр [Маздайщик]
Давно пользуюсь Raxco PerfectDisk, посредством неё наблюдаю как Windows использует место на диске. Теневые копии представляют собой достаточно большие файлы с именем типа {GUID} (ЕМНИП), располагающиеся в папке \System Volume Information. PerfectDisk считает эти файлы неперемещаемыми, поэтому их дефрагментацию провести не может.
А. Windows по разному распределяет место для новых файлов на HDD и SDD. Если на первых новые файлы создаются в начале свободного пространства, то на SDD — разбрасываются по всему свободному пространству (можно убедиться любым сторонним дефрагментатором, отображающим карту диска). Файлы теневых копий, в отличие от обычных файлов, распределяются где-то в середине или конце свободного места.
Б. Если диск сильно фрагментирован, то файл теневой копии будет разбит на большое количество маленьких кусочков.
В. NTFS хранит информацию о расположении фрагментов файлов в виде списка записей, описывающих каждый непрерывный кусок на диске. Поэтому терабайтный файл одним куском потребует одной записи, а мегабайтный файл из 250 кусков — 250 записей.
В результате для фрагментированного SSD файлы теневой копии будут сильно фрагментироваться, будет засираться MFT (важнейший из файлов метаданных), подозреваю, что также может быть немалый оверхед для журнала транзакций NTFS и т. д.
Кроме того, есть подозрение, что достигнув некоторой критической величины, фрагментация начнёт расти как снежный ком — новые файлы (в том числе и теневых копий) будут разбиваться по фрагментам свободного пространства, после удаления фрагментирующих файлов свободное место будет всё равно оставаться фрагментированным, шансов на снижение фрагментации не будет.
В опросе выбрал: включена и выключать не буду.
Lecron
Реальная карта распределения данных по физическому адресному пространству (флеш-памяти) абсолютно не коррелирует с картой логического пространства (раздел диска). То, что на второй видится непрерывным нефрагментированным файлом (тот же MFT), в реальности может хранится в 100500 удаленных друг от друга ячеек.
Поэтому половина ваших опасений беспочвенна. Важным остается то, как винда на программном уровне может работать с собственными фрагментированными логическими структурами. Теоретически, сложность в таких критических местах равна О(1) и не зависит от количества фрагментов. В реальности — фиг знает.
Александр [Маздайщик]
Спасибо, кэп. Больше ничего не могу добавить.
Я речь веду о том, что фрагментация снижает производительность самой файловой системы. Упрощённо, NTFS оптимизирована для хранения непрерывных файлов, поэтому сильная фрагментация приводит к некоторому оверхеду: вычисление кластера, соответствующего смещению внутри файла, к примеру, потребует линейного времени от числа фрагментов; увеличивается размер MFT, а значит, приходится в кэше хранить больше страниц для метаданных в ущерб страницам с данными. Эти проблемы решает новая ReFS, но в неё можно отформатировать только некоторые виды storage spaces (такой софтварный рейд, появившийся в Windows 8).
Lecron
Не за что. ;)
Влияние количество фрагментов на скорость работы именно файловой системы сильно переоценено. И, как минимум, требует количественной оценки.
Можно вспомнить довольно старую статью — http://www.ixbt.com/storage/ntfs3.html
Ресурс вроде довольно квалифицированный, чтобы можно было доверять.
В любом случае, размер одной записи в MFT составляет 1кБ и ее область Data может содержать указание на довольно большое количество фрагментов, если файл фрагментирован. Т.е. будь файл из одного фрагмента или нескольких — запись одна.
Если не изменяет память, на запись одного фрагмента файла (VCN, LCN, К) выделено 12 или 16 байт, а в секцию Data вмещается указание на 25-30 непрерывных фрагментов. Если же указатель на файл вдруг займет 2 записи MFT, то под Data будет выделена почти вся вторая и количество адресуемых фрагментов легко превышает 100.
На системном диске, у меня содержится около 200000 файлов. Для их описания, даже в случае КАТАСТРОФИЧЕСКОЙ фрагментации (по две MFT записи на файл) уйдет 400 Мб. Или 0.3% от 120Гб диска.
Так насколько важна дефрагментация именно файловой системы?
Vadim Sterkin
Да, я не случайно заметил, что разработчики уводят дискуссию в сторону рассуждениями о пределах ФС, хотя проблема в производительности создания снимков.
Файлы <1kb могут целиком храниться в MFT. И таковых хватает. Я посмотрел у себя в winsxs (подсчет требует времени).
dir -file -path «C:\Windows\winsxs» -Recurse | %{if ($_.Length -le 1024) {$i++} else {$k++} }
Write-Host не более 1kb: $i
Write-Host более 1kb: $k
не более 1kb: 41177
более 1kb: 47479
И в Program Files (обеих)
не более 1kb: 4804
более 1kb: 21817
Конечно, в профиле это соотношение увеличивается, примерно 1 к 10.
Вообще, индексных записей для каждого файла, превышающего 8.3, и так две — короткое и длинное имя. У меня на разделе в 200GB в полтора раза больше файлов, a MFT (прирастающая зонами по 200MB) занимает 430MB.
Даже если файлов будет на порядок больше, проблема видится мне отдаленной. При этом можно отключить 8.3, уменьшив количество индексных записей в MFT.
Lecron
Оба хранятся в одной записи. Это всего лишь аттрибут. Можно так написать драйвер, что получится хранить 3 имени или больше. Спецификация ФС это позволяет.
Отключение принципиально ничего не изменит. Ну может слегка увеличится область Data. Запись одна на файл.
Есть расхождения. По одной версии — размер записи равен 2кБ, по другой — 1кБ. От чего это зависит — не знаю. Возможно она может иметь разный размер, а его величина указывается в описании тома при форматировании.
Я привык считать — 1 кБ (область Data — 300-500 байт), но если она больше — то проблемы фрагментации для файловой системы вообще не существует.
А в чем тут может быть проблема? Снимки — это же вроде только пачка хардлинков. Они вообще не должны интересоваться физическим размещением данных на диске.
Vadim Sterkin
Это вопрос терминологии. Я придерживаюсь стандартной — индексная запись (index entry). См. например Ntfs Misreporting Free Space (Part 2) на тему индексных принципов работы NTFS, в частности:
В этом контексте индексная запись — это некая последовательность байтов. Если отключены 8.3, их индексные записи хранить не надо.
Я не знаю в чем именно, спросите разработчиков или Хансельмана. Свои предположения я озвучил, см. статью. Технически процесс создания снимков описаны тут: Volume Shadow Copy Service. См. разделы How a Shadow Copy Is Created, Copy-on-write method)
Lecron
Не совсем терминологии. index entries != mft entries. Более того, второе включает первое, в немалых количествах.
Индексы (index entries) бывают разные — имена, декскрипторы безопасности, идентификаторы безопасности, владельцы, квоты. И это иное, чем MFT Entries.
Рассматривайте эти index entry аналогично data entry. Раздел Data в MFT Entries, может содержать как сами данные файла, при небольшом его размере, так и ссылку на «рабочее» пространство файловой системы. Причем, думаю вы знаете, что файл может иметь несколько потоков данных. Просто винда обычно работает с одним неименнованным потоком.
Аналогично и с индексами. MFT Entry содержит много index entry в разделах StandartInfo и IndexRoot, и имена фалов относятся к стандартным. Отключение 8.3 не приводит к уменьшению размера. Лишь оставляют больше места дла хранения иных аттрибутов.
Конечно изредка бывают случаи (для папок — часто, но речь не о них), когда аттрибуты в mft record не вмещаются или специфика предполагает иное. Тогда создается отдельная запись, но не mft record, куда пишется «излишек» аттрибутов, а адрес вроде хранится в IndexAlloc. Причем ее размер намного больше — то ли 4к, то ли 8к.
Тогда отключение имен 8.3 теоретически может привести к экономии места, чтобы эта запись не понадобилась, но я искренне сомневаюсь, что такой мизерный объем спасет отца русской демократии. ;)
ЗЫ. Могу ошибаться. Давно эту тему рассматривал, а перечитывать спецификации времени мало.
Dima Vasilich
Здравствуйте.
Ваша настойчивость и , устойчивость к противлению , сыграла своё дело.
Оптимизация дисков по расписанию отключена.
Максим
Вот мои 100 грамм
http://pastebin.com/0pLNPjP3
Это отчёт по служебному компу. Дома 10, по ней отчёт нужен?
P.S.: да, Вадим, с пастебином это вы жёстко! )))
пока разобрался, чуть не пропало желание пост писать
Vadim Sterkin
Максим, а что сложного с pastebin? Вставил текст, нажал Submit, скопировал ссылку из адресной строки браузера :)
По отчету есть вопросы. Меня интересовали люди с отключенной защитой системы, а у вас 84 точки, причем источник большинства из них мой скрипт не распознал. У вас защита системного диска выключена или включена?
Кроме того, выполните, пожалуйста, команду ниже и закиньте SR1.txt на pastebin, раз вы с ним уже разобрались :)
Максим
Защита действительно была включена, перед анализом только отключил.
http://pastebin.com/jraS6VzS
Vadim Sterkin
Ошибок полно, отсюда такое количество записей в журнале (мой скрипт не учитывал этот момент). Если защита была включена, это не поможет проверить заявление разработчиков (мы и так знаем, что с ней дефраг выполняется).
Максим
Дома на 10 тоже включена защита, так, что к сожалению и тут не помогу с нормальным отчётом.
Или собрать отчёты всё таки?
Vadim Sterkin
Нет смысла. Я отключу на планшете, посмотрим в следующем году :)
Владимир Куприков
Вадим, извините, может быть плохо читал ваши статьи.
Что значит отключение защиты в данном контексте?
В Windows 8.1 и 10 при чистой установке по умолчанию отключено создание точек восстановления и истории файлов.
Получается что и дефрагментация SSD не должна работать.
Я при установке ОС после первого запуска включаю создание точек восстановления. И создаю их принудительно после установки OC, обновлений, драйверов, программ. Историю файлов пока не включал нигде, руки как-то не доходили.
Стоит ли мне выкладывать отчеты:
1. Ноутбук с SSD и Win10,
2. Десктоп с RAID0 SSD и Win8.1?
Все настройки как описывал ниже.
Vadim Sterkin
Владимир, гм… 10 я бы не стал сейчас брать за эталон, но в 8.1 защита системы из коробки включена для системного диска.
Владимир Куприков
Я не знаю, как из коробки — не имею. У меня Windows 8.1 Pro VL with Update (x64) собранная весной 2014 г. ISO-образ MSDN, дату сборки точно не помню. CheckBootSpeed выдает: Майкрософт Windows 8.1 Профессиональная 6.3.9600 64-разрядная.
И вот в этой сборке, и в Windows 8.1 Enterprise with Update после чистой установки защита системы отключена. Ваше право мне не верить. Но так оно и есть. Сам удивляюсь.
Vadim Sterkin
Владимир, я проверил на августовском ru_windows_8.1_enterprise_with_update_x64_dvd_4048711.iso
(сейчас уже с ноябрьским роллапом)
Сразу после установки защита системы отключена. Я установил одно обновление, перезагрузился — включено (5% от 127GB), создана точка.
Владимир Куприков
Вадим, что-то похожее и у меня происходило в разных установках. Только я чаще включаю защиту сам — перед установкой обновлений. Значит теперь не буду этого делать, сэкономлю время.
Спасибо Вам за анализ, сам не догадался проанализировать.
gorinich
лично для меня в этой теме кроется еще одна смежная проблема Windows: он не в состоянии опознать ssd в томах на raid массиве. и относится к ним соответственно. хотя сторонние утилиты давно в массивах распознают ssd без проблем.
Vadim Sterkin
Это не проблема Windows как таковая. Поддержка TRIM в RAID зависит от чипсета.
gorinich
нет-нет, я не о TRIM. с тримом сейчас порядок благодаря Intel а не Microsoft, да. я о признаке накопителя. мы в администрировании windows открываем список томов, и видим признак, тип — как windows определил накопитель, на котором находится том. в русской редакции это «жесткий диск», «логический диск», «твердотельный накопитель», етц. дальше, базируясь на этом признаке, windows применяет тот или иной сценарий обслуживания этого тома. так вот, даже после Вашей титанической работы, если разработчики изменят свой взгляд на сценарий обслуживания ssd в windows, владельцам массивов ssd ничего не светит, потому что windows определяет ssd raid массив как «жесткий диск», а не «твердотельный накопитель». ну, и дальше опять дефрагментация…
Vadim Sterkin
А что написано в dfrgui (скриншот) и журналах (отчет CheckBootSpeed)?
gorinich
Вадим, я не могу прямо сейчас дать ответ. :( Но! Я с радостью сообщаю, что был неправ выше! Или, как говорят в Майкрософте, недоправ. Ту картину я наблюдал в Win8, Win8.1, Win8.1Update1, когда выполнял Ваши инструкции по отмене дефрагментации. Я так запомнил ситуацию, которая меня сильно удивила (что windows в принципе не опознает ssd в рейде). Пару недель у меня стоит Win10TP. На ней я в расписание еще не лез. Сейчас по Вашей просьбе запустил dfrgui, и вижу, что здесь ssd опознаны нормально! То есть, несмотря на то, что оказался неправ, я рад. :)
Vadim Sterkin
Отлично :)
Lecron
Возник любопытный вопрос. Может проблемы фрагментации ФС также не существует?
Если представить, что существует 100% фрагментация, т.е. ни один файл, не занимает больше одного кластера подряд, то каким объемом адресуемых кластеров может уверенно оперировать NTFS?
Спецификация утверждает, что максимальное количество файлов — 4 294 967 295. Предположу, что эту цифру можно рассматривать и как предел адресуемых кластеров, что на современных дисках с 4К кластерах, позволит работать с 16ТБ жестким диском.
А уж для пользовательских SSD, чей объем не превышает 1ТБ, причем разбитом на несколько разделов, влиянием фрагментации ФС можно вовсе пренебречь. Объем адресации составит 6% от максимального, а реальный и вовсе менее 1%.
Дмитрий Еремин
В самом деле очень интересная статья, но правильно ли я понял что NTFS уже «жмет в плечах» современным SSD?
Vadim Sterkin
Дмитрий, я думаю, вам будет интересен этот мой комментарий.
Lecron
Не. Не выйдет. Слишком много слоев абстракции.
Протокол работы с диском. Контроллер на плате. Драйвер контроллера. Драйвер файловой системы. Абстрактное API работы с файловыми системами. Компиляторы. Софт.
Изменить что-то одно — мало радости. Бутылочное горло образуется в другом. Изменить всю цепочку — проблем с совместимостью не оберешься.
Диск — материнки (процессора) — операционки — компилятора. Причем на каждом этапе придется поддерживать Legacy Mode. Иначе внедрения вообще не дождемся. Выигрыш для этого должен быть непредставимым.
Для серверов, где все специализированно и часто меняется оптом — еще поверю, но для десктопов…
Vadim Sterkin
Для мобильных ОС же :)
crazymushro0m
Здравствуйте, может что-то не так сделал, но все по инструкции
http://pastebin.com/1RdtQTDL
Владимир Куприков
Вы, похоже, вместо файла SR.txt с рабочего стола, выложили скрипт Вадима.
crazymushro0m
Простите, не заметил)
Исправил
http://pastebin.com/Rmmq00Zn
Vadim Sterkin
У вас защита системы включена, про дефраг с ней и так известно.
Vadim Sterkin
По итогам первого дня очень интересные результаты опроса получились. Отбрасывая тех, для кого пришлось сделать последний пункт, получаем голоса свыше 200 владельцев 8+. По ним вышла такая картина, если перефразировать пункты опроса:
Роман Прохоркин
Истина — дефргментация это снежный ком запущенный командой Microsoft с горы (Арарат)……
Viktor
После переустановки win 8.1×64 дефраг не отключал. Защита системы отключена и заменена акронисом. Отчет: http://pastebin.com/9kWi4G6R
ССД: SmartBuy Ignition 2 (сата2). Утилита trimcheck-0.6 сообщает о нормальной работе трим, но по факту трим не работает. За 2 месяца диск приходит в такое состояние: http://i.imgur.com/3daDfSv.png Отправка команды retrim ничего не дает. Отправка команды трим из программы O&O Defrag 18 возвращает диску скорость: http://i.imgur.com/K0JWyEU.png Прокомментируйте ситуацию?
Vadim Sterkin
Виктор, событий дефрага SSD нет, т.е. это совпадает с заявлением разработчиков.
По вашему диску… Возможно, это печальная особенность контроллера Phison или текущей прошивки. Сторонний дефраг записывает разреженные файлы по всему свободному пространству диска, потом удаляет их, вынуждая контроллер прибираться.
Alexander O.
Занимательное расследование.
Считаю, что не имеет смысла перечить рекомендациям Microsoft [ничего не менял в настройках обслуживания дисков с момента установки Windows 8.1] в таких сугубо технических вопросах (не кнопку «Пуск» же оплакиваем в очередной раз).
Ведь, в конце-концов, если этот подход в долгосрочной перспективе вдруг покажет какие-то серьёзные негативные последствия, я смогу с совершенно чистой совестью сказать, чья это вина. А если же я внесу какое-то явно нерекомендованное изменение в настройки, то, в случае чего, никого, кроме себя самого, обвинить не получится.
Да, возможно такой подход кому-то покажется «инфантильным», однако я считаю, что работая в такой ОС как Windows, тем более не являясь постоянным бета-тестером очередного Technical Preview, я имею на него полное право хотя бы в таких вопросах.
Vadim Sterkin
Александр, это — нормальная позиция, однако есть любопытный нюанс. Рекомендации Microsoft в данном случае не отличаются последовательностью (7 vs. 8+). Это ставит под сомнение ценность рекомендации, одновременно создавая поле для обсуждения и делая разбор технических аспектов интересным.
Alexander O.
Вадим, мне кажется это следствие того, что SSD со времён релиза Win7 обрели куда бОльшую популярность. Соответственно, появилась более обширная статистика использования и производительности твердотельных накопителей, в которой, возможно, стали вскрываться какие-то неприглядные детали, которые привели к пересмотру мнения Microsoft касательно необходимости дополнительного дефрагментирования таких дисков.
P.S. Результат работы PowerShell-скрипта, чисто для статистики: http://pastebin.com/KXhv0mwB
Vadim Sterkin
Александр, да, конечно, но не забывайте, что работа над 8 началась сразу после выхода 7. Опять же, если неприглядные детали есть, их можно устранять постфактум. Видимо, проблема не настолько существенна.
Billy Kid
А у меня Windows RT 8.1. И она по умолчанию вообще не имеет защиты системы и не создаёт точек. Видимо это говорит о более инновационном подходе.
Настройки дефрагментации и оптимизации не менял и менять не собираюсь.
Vadim Sterkin
Это говорит о том, что защита в первую очередь необходима для отката при неудачных изменениях системных файлов и параметров после установки стороннего ПО и драйверов, чего в RT сделать невозможно. Страховка от неудачных обновлений тоже нужна, но их можно удалить из среды восстановления, если что.
Виталий
Я периодически (раз в полгода) вручную запускаю дефрагментацию утилитой O&O Defrag. Она конечно ругается, что диск твердотельный, но после дополнительного нажатия делает. Делал и буду делать из соображений оптимизации файловых структур и таблицы MFT.
Виталий
Вот сейчас- 2,5%фрагментации, 2,5 минуты)) И всё готово.
Vadim Sterkin
А в чем технический смысл дефрага при 2.5%?
Виталий
Чёрт его знает))) Раз уж зашёл- то и дефрагментировал.
Сергей
Thin provisioning (https://en.wikipedia.org/wiki/Thin_provisioning) — это совсем другая штука, нежели «тонкая подготовка». Это такая технология выделения пространства хранения приложениям не сразу при создании диска, а по мере возникновения в нем потребности у данных приложения.
Vadim Sterkin
Сергей, так где ваш вариант перевода? Другая штука?:) Мой взят с официального портала терминологии.
Алексей Аркадьев
Был уверен, что у меня защита включена, но, судя по всему, при смене SSD она отключилась (интересно, почему). Ошибки в логе на том «Восстановить» — это как раз на старый диск ругается.
http://pastebin.com/cq5scanw
Олег Мустафин
Вот это да. Интересная история.
Все таки я был прав, что дефрагментация была добавлена в Windows 8 и 8.1 преднамеренно.
https://www.outsidethebox.ms/14900/comment-page-4/#comment-20087
Ну крайне маловероятно было, чтобы такая большая и значимая компания как Microsoft допустила бы столь крупный косяк. Хотя такое и возможно.
Я спрашивал себя:
«В Windows 7 преднамеренно отменили дефраг для SSD а в Windows 8 он опять ВДРУГ появился? Что это — недоработка, халатность разработчиков? Нет. Это не спроста.»
Так все и оказалось.
Скотт Хансельман — это да. Опростоволосился ) Только начав читать эту статью и не понимая что да как я подумал, глядя на его фотографию: «синие толстые джинсы, поло на выпуск — ну что за кретин». Безвкусно и неуместно.
Ну а далее все прояснилось )
Вот уж поистине: В каждом человеке ровно столько тщеславия, сколько ему недостает ума.
© Александр Поп.
Все как обычно, к сожалению (. Классический пример «идолов» разума по батеньке Бэкону. А все потому, что люди в большинстве совоем не работают над своим разумом. Поэтому пороки разума имеют место быть — с чего бы им деться.
P.S. Исходя из информации в этой статье оставлю дефраг SSD отключенным.
Юрий
Здравствуйте.Купил SSD 120Gb и Paragon Migrate OS toSSD.В BIOS,а у меня «SMOS Setup Utility-Copyright(C) 1985-2005,American Megatrends,ins»,не нашел пункт ACHI,есть пункт S.M.A.R.T.Auto,Disabled,Enabled.Не моги бы Вы ответить,будет ли в данном случае работать SSD и какие настройки необходимо сделать в BIOS и др.Благодарю.
Vadim Sterkin
Будет работать, настройки — default.
Евгений Казанцев
Очень интересная информация, следил за развитием истории. Действительно с точки зрения дефрагментатора SSD жутко как фрагментирован тк. пишет инфу не по порядку дорожками а куды попало. Однако же, что поражает. В качестве решения проблемы (если таковая вообще есть, хотя я лично сталкивался с проблемами фрагментации на SSD, правда это было старое полуаппаратное решение которое просто не знало что SSD бывают, про трим не знало тем более, и не хотело читать с них фрагментированные образы дисков) применен костыль. Я бы понял если бы костыль применили разрабы прикладного приложения, у них тупо нет ни возможностей ни способов как то повлиять на поведение ОС и железа. Но костыль применяют минуточку, да да, разработчики ОС. То есть те самые люди которые занимаются написанием низкоуровневых драйверов и ядра ОС, которые могут повлиять на разработчиков контроллеров SSD. Хотя может я и ошибаюсь и эти люди все поголовно заняты решением проблемы уменьшения кнопок в очередном «современном» интерфейсе…
ЗЫ. Решение отключить теневое копирование для меня неприемлимо, эта палочка-выручалочка спасает меня с завидной регулярностью. С мнением автора что дефрагментация ничем не повредит нормальным SSD полностью согласен. Одна только проблема, на рынке массово появляются ненормальные SSD сделанные на памяти с ресурсом три с половиной перезаписи и контроллерах в которых безымянные китайцы чего-нибудь безымянно упростили… И в таком случае вариант судебного иска ннкоей компании производителя (ну из тех кто «производит» трудоемкую операцию наклейки своего логотипа на оем продукцию) потрясающей ящиком с тысячью гарантийных SSD c убитым ресурсом к корпорации майкософт становится куда как реальным… Может хоть тогда зашевелятся, хотя вряд ли, заплатят все одно адвокатам, а не инженерам и программистам
Валерий
Вадим, если используется гибридный диск, то в какой части изложенное в ваших статьях о дефрагментации SSD его касается?
Vadim Sterkin
Валерий, ищите ответ на вопрос в журнале событий (258).
Валерий
Вадим, по источнику событий Defrag?
Я пару месяцев назад отключил Дефраг, сейчас выдало «Модуль оптимизации дисков успешно завершил оптимизация загрузочного сектора на Windows8_OS (C:)».
Раньше я установливал дефрагментацию 1 раз в месяц штатными средствами Windows, но журналы событий я периодически чищу, поэтому о том периоде записей нет.
Vadim Sterkin
Валерий, в моих статьях достаточно информации для понимания ситуации и принятия решения. А вы приходите ко мне и говорите: «у меня железки такие, я это отключил, то почистил, что мне делать?»
Разберитесь, что у вас происходит:
• есть дефраг или нет
• если есть, дефраг чего
• нужен ли он вам
Если не можете разобраться, не трогайте системные настройки в принципе.
Гриша
Мои слова (год назад):
«Мораль: нечастая (эпизодическая) дефрагментация SSD имеет смысл, чтобы повысить скорость работы с сильно фрагментированными файлами.»
«Если у вас сильная фрагментация файлов, вы получите тормоза на любом диске, даже если это будет RAM-диск.»
«Система будет собирать файл из маленьких фрагментов, а на эту операцию требуются ресурсы и время.»
«Вы, наверное, думаете, что файл из фрагментов «собирает» контроллер SSD? Нет! Он всего лишь считывает участки этого файла, «сборкой» занимается драйвер файловой системы.»
Ваши слова (год назад):
«Гриша, не вижу связи между случаем с HDD на XP и выводом о пользе дефрага SSD на Windows 8.»
«Гриша, непонятно тут то, почему вы применяете мерки HDD к SSD, а заодно приплетаете RAM-диск.»
«Гриша, чтобы вам было не странно слышать такое от MVP, разберитесь, как работает SSD.»
«Я остаюсь при своем мнении, что в статье описан баг. Продолжайте дефраг своего SSD и в Спортлото пишите сами.»
Ваши слова (сейчас):
«Наверное, она в каких-то редких условиях может и дойти до уровня, когда становится заметно снижение производительности в ряде задач.»
«Если компания считает, что в каких-то условиях дефраг имеет смысл, оставьте все как есть – SSD это легко переживет.»
«Если даже фрагментация достигнет такой степени, когда замедление станет очевидным, можно вручную выполнить задание ScheduledDefrag.»
«Для современного домашнего ПК без разницы, выполняет ОС дефраг SSD или нет.»
Вывод:
Нужно опираться на здравый смысл и верить реальным тестам, не дожидаясь выхода информации из недр MS.
Vadim Sterkin
Что, Гриша, пришли острой палочкой в меня потыкать? Мое мнение за год не изменилось — я считаю, что такой дефраг не нужен. А вы год назад не знали причины дефрага, результатов тестов не приводили, а главный ваш тезис был:
Я им доверяю, но считаю необходимым проверять.
Теперь что касается вашего вывода. У нас с вами разный здравый смысл. Мой подсказывает, что SSD не нужен дефраг утилитой/алгоритмами для жестких дисков. Да, дефраг выполнятся по задумке программистов Microsoft, и посему не баг. Но так они тем самым покрывают свой же косяк в volsnap (причины и серьезность которого не объясняют), да еще и не заморачиваются на предмет поиска умного решения — просто гоняют обычный дефраг.
Гриша
Что значит «не знали причины дефрага»? Год назад я доходчиво объяснил вам, что процесс дефрагментации затрагивает не только физическое размещение файлов на диске, но также распутывает клубок логических структур файловой системы. Данный процесс не имеет отношения к типу диска в принципе, а, значит, стандартная утилита дефрагментации (которую вы обозвали «утилитой для жестких дисков») подходит к любым типам дисков, включая SSD.
Теперь что касается «результатов тестов не приводили». Это неправда. Вспомните мой самый первый комментарий, в котором я подробно описал наблюдавшееся замедление работы из-за логической фрагментации файловой системы, когда все данные были прочитаны с диска и находились в RAM. Но вы, видимо, не стали заморачиваться на этот счёт и остались при своём мнении. То же самое вы делаете сейчас, ссылаясь на «косяк в volsnap».
Если вы действительно захотите разобраться в этом непростом вопросе, мы можем вместе подумать на счёт организации теста в числах. Кроме того, я могу предоставить ссылку на независимый тест, показывающий замедление работы стороннего программного обеспечения на фрагментированном разделе SSD. Однако я не буду тратить своё время впустую: бесполезно доказывать что-либо человеку, который не старается вникнуть в технические детали.
Vadim Sterkin
Я с удовольствием прочту ваш план теста. В первую очередь, в контексте объяснений Майкрософт, считающей дефраг нбх только при включённой защите системы.
Гриша
Неужели вы думаете, что «увеличение объема обработки метаданных при чтении/записи файла» касается SSD только в контексте включенной системы защиты?
Vadim Sterkin
А при чем тут я? Вы цитируете высказывание разработчиков. Они выполняют дефраг только при включенной защите → не считают цитируемую вами проблему настолько существенной, чтобы дефрагментировать. Год назад вы предлагали доверяться им в этом вопросе. Что-то изменилось?
[исправлено во избежание неправильного толкования моих слов.]
Гриша
В цитате говорится как раз о том, что эта проблема общего характера, и логично предположить, что «можно упереться в потолок фрагментации» даже при отключенной system protection. Я доверяю словам разработчиков, и, судя по всему, наши взгляды совпадают. Фрагментация на SSD имеет место быть, и поэтому в системе существует процедура дефрагментации. Ваша позиция («такой дефраг не нужен») отличается от позиции разработчиков, которые оставили эту возможность не только из-за volsnap, но и по общим соображениям (стабильности и быстродействия).
1) Если вы считаете, что «такой дефраг не нужен», тогда почему в своей статье вы всё-таки рекомендуете оставлять дефрагментацию включенной («оставьте все как есть – SSD это легко переживет»)? Будьте последовательны.
2) Если вы считаете, что проблема проявляется только в условиях работающей system protection, значит укажите в статье что-то вроде: «Ребята, отключайте защиту системы — фрагментация файлов исчезнет (каким-то чудесным образом)».
Vadim Sterkin
Вы о чем? Дефраг SSD:
1. Возможен только в рамках автоматического обслуживания (также возможен ручной запуск задания ScheduledDefrag, но это следствие реализации)
2. Работает только в том случае, если включена защита системы.
Никакой другой возможности дефрагментировать SSD средствами Windows 8+ я не знаю. Вы знаете? Излагайте.
Я имею право на частное мнение.
Я озвучиваю свою официальную рекомендацию, которая совпадает с позицией Microsoft, чтобы меня не мучали вопросами типа:
• почему MVP рекомендует что-то отличное от компании?
• почему вы всегда советуете следовать рекомендациям Microsoft, а тут нет?
При этом моя официальная рекомендация не совпадает с моим мнением. И то и другое я имею право публиковать в блоге. Если вас не устраивает такая подача информации, селяви.
Я такого нигде не говорил. Я вообще не утверждал о каких-либо проблемах! Не путайте слова разработчиков с моими.
Еще раз, и в последний раз, право. Разработчики реализовали дефраг SSD только при включенной защите системы. Я это интерпретирую так: если защита отключена, создатели Windows не видят причин выполнять дефраг SSD, т.е. считают, что какие-то известные только им проблемы при отключенной защите не возникают.
Вы можете интерпретировать это↑ как угодно, но не вкладывайте свои или чьи-то еще слова мне в уста.
Олег Мустафин
Ну потыкать есть за что.
Все справедливо.
Для того чтобы разобраться в какой-то проблеме нужно исследование со многосторонними подходами (всесторонними подходами — в идеале).
Этого автором проделано год назад небыло. Был принят тезис: «я считаю, что такой дефраг не нужен» — и взят за аксиому.
На поставленный мной прямой вопрос общественности и автору в т.ч.: «Кто-нибудь допускает, что дефрагментация ССД задействована инженерами Microsoft в Win 8 и 8.1 преднамеренно а не по ошибке?»
(см. https://www.outsidethebox.ms/14900/comment-page-4/#comment-20087 ), Вадим не дал прямого ответа. Вместо этого была разведена почти что демагогия.
Если человек, который претендует на глубокое понимание вопроса, изначально ограничивает себя (пусть и бесзознательно, эмоционально) в многостороннем рассмотрении оного , вринципе не может быть объективным. Это носит принципиальное значение.
Я, не являясь компетентным в области аппаратных и програмных технических сторон ЭВМ, не могу, например, сказать, прав Гриша или нет. Но допускать саму возможность чего-то подобного в принципе — необходимо.
Вадим доказательно констатировал наличие дефрага для SSD в Win 8 и 8.1. Это заслуга, несомненно. (И поставил этого олуха, Хансельмана не место).
Но дальше (хотя, скорее изначально) — провал. Не было попытки разобраться, «для чего это нужно?» За аксиому бездумно был принят частный вариант ответа на этот вопрос: «ни для чего не нужно». Все — провал обеспечен — суть вопроса не может быть раскрыта.
Поэтому, когда MS говорит что «На самом деле Скотт и Вадим оба неправы», то это абсолютно справедливо: Вадим не прав.
Vadim Sterkin
Что значит «не было»? Я крутил вопрос по-всякому несколько месяцев, но каждый раз при стандартных настройках системы. Для каждой проверки нужно ждать месяц!
Отключить защиту мне в голову не пришло да. А кому-то еще пришло? :) A за аксиому был принят тезис «Windows не дефрагментирует SSD и точка». Другого-то не было нигде.
Вопрос был риторический. Конечно, кто-нибудь допускает, поэтому непонятно, какой прямой ответ был нужен. Да, я допускал, но не нашел оснований и упоминаний в документации.
Гм… раскрыть суть вопроса могут только разработчики. Получается, что мне во избежание провала надо было вообще молчать в тряпочку :)
Я вам так скажу. Я в целом очень осторожен в формулировках, и в данном слуачае правильнее было занять позицию «моя хата с краю» — вот вам дефраг, а почему он происходит — хз, не задавайте мне никаких вопросов, пишите в Microsoft.
Но прозреваю, вам было бы не так интересно читать мой блог, да и возможность потыкать MVP палочкой лишний раз дорогого стоит. Я рад, что смог предоставить этот шанс ↓
Угу, и я это в записи признал уже.
freestic
И все же, ради интереса я пожалуй загляну в фурнал сервера, был ли там дефраг или нет.
Win server 2008 R2
Vadim Sterkin
На Windows Server 2008 R2 дефрага по описанной в статье причине быть не должно, т.к. это времена Windows 7. Однако он может быть по другой причине — RAID.
wzrdse wzrd
SSD Plextor 128M
Win8.1 Pro Update3 MSDN x64
Службы теневого копирования, superfetch, window updater отключаю всегда и сразу же, после установки винды, профиль так же частично перенесен на HDD и на RAMDRIVE Дефрагментация, к сожалению, 2 раза уже прошла :(
за 2.5 месяца, судя по crystal diskinfo: 48Gb nand записей, при этом я вообще ничего не устанавливал, не удалял, pagefile.sys отключен (16Гб DDR3), hyberfile.sys так же отключен.
PS Видимо нужно и «Оптимизация дисков» отключать, иначе мне SSD на 5-6 лет точно не хватит :(
Vadim Sterkin
Видимо, вам нужно прочесть остальные статьи об SSD, чтобы избавиться от веры в заскорузлые мифы.
Ivan A.
В настройках расписания утилиты дефрагментации можно выбрать ежемесячно вместо еженедельно. Что я и сделал.
Лев
Я вообще не понимаю «физику процесса»: если на пальцах, то процесс дефрагментации со стороны ОС заключается в собирании файла из кусочков и расталкивании мелочёвки по диску, освобождая непрерывное пространство для этого файла. Вроде бы цель достигнута, можно писать в эту область «собранный» файл. Ан нет: ОС выдаёт этот файл «на вход» драйверу SSD, а тот, руководствуясь высшими принципами, заложенными в нём как «отче наш», распихает этот файл по наименее «изношенным» ячейкам… вроде так? Тогда вообще, о какой полезности процедуры может идти речь? Спасибо.
Vadim Sterkin
Лев, полезность может быть только для ФС, а для SSD ее быть не может.
Лев
…антонимом полезности является вредность. Возникает второй вопрос, почему бы время от времени не делать бэкап и тут же его переустанавливать на «чистый» раздел SSD? Вот это действительно (как мне кажется) полезно… основная масса файлов перезапишется в лучшем виде, да и SSD избавится от «пролежней», возникших от той части ОС, которая лежит на нарде аки инсультный больной :)
Vadim Sterkin
Лев, мне не интересен оффтоп и уж тем более я не планирую вести с вами дискуссию параллельно тут и в форуме. Уважайте чужое время.
Лев
…О.К.
попутно извиняюсь за то, что вспылил в «личке» :(
Дм Буров
Какая-то всё же муть насчет пределов файловой системы.
«NTFS does have it’s limitations with the overall size of this attribute list per file and can have roughly around 1.5 million fragments. This is not an absolute maximum, but is around the area when problems can occur»
http://blogs.technet.com/b/mikelag/archive/2011/02/09/how-fragmentation-on-incorrectly-formatted-ntfs-volumes-affects-exchange.aspx
OK, поверим оценке, возьмём от нее 1% как триггер — если файл разбит на 10К экстентов — пора его «склеивать».
В принципе, если файл не пересоздаётся time and again — а тогда его вообще дефрагментировать смысла нет — то соглашусь, что такие файлы стоит иногда сливать даже и на SSD, из общих соображений. Вплоть до того, что файл, логически расположенный в непрерывной области, проще восстановить в спец-фирмах в случае поломки диска/ФС. 10K экстентов это уже перебор. Правда в наличие таких файлов на рядовом домашнем ПК верится слабо, но система должна закладываться на худшее, ок.
Вот только тот скриншот с работающим дефрагом и заметным disk I/O в диспетчере задач — как-то отсюда выбивается. Если цель дефрага — отползти от пределов ФС, то зачем трогать файлы, которым до этого предела ещё как пешком до луны???
И вишенка на тортике
«For files that are not compressed or sparse, the problem can be lessened by running Disk Defragmenter or a third-party defragmentation tool for Windows such as Diskeeper defragmentation software. NOTE: Running Disk Defragmenter will not resolve this problem for compressed or sparse files»
https://support.microsoft.com/en-us/kb/967351
vsddsoiw
Придумал тест влияния дефрагментации на скорость чтения, может кто сделает.
Теория:
Размер кластера NTFS 4 k
размер страницы FLASH 16 k
размер блока FLASH 4 M
размер буфера Windows 64 k
Файл теневой копии в винде порядка нескольких гигабайт, и создается он в течении часов дней а то и недель,
и пишутся в него маленькие кусочки изменений файлов, реестра и т.д.
винда (NTFS) может выделять для файла последовательные кластера кусками достаточного размера,
но как физически они будут записаны в страницы флэша это дело SSD.
Поэтому нам надо сделать файл, который раскидан по разным страницам и блокам FLASH .
Практика:
Берем SSD, на MLC, а не на TLC, а то нам SLC кэш все испортит, и без внутреннего сжатия данных.
Лучше какой нибудь SMARTBUY чтобы потупей внутренний контроллер был, и не занимался оптимизациями.
Пишем на диск тестовый файл write 4k flush — чтобы винда буфер на диск сбрасывала плюс
ПАРАЛЕЛЬНО 1 (эксперементально до 16 файлов) файлов write 16 k (эксперементально до 4 М)
добиваясь эффекта что в одну страницу FLASH попадут 4к из тестового и 12к мусора,
можно по эксперементировать с паузой после каждой порцией,
можно еще для эффекта, после записи всего файла, пройтись записью в случайные места,
но обязательно по адресам выровнеными по 4к и размером 4к , и обязательно так же с паралельной
мусорной записью в другие файлы
Размер тестового файла я думаю гигов на 5 хватит для оценки скорости чтения,
можно фаром в nul копировать, только каждый раз не забывать очищать RAM кэш (утилитка RAMmap)
Надеюсь что кто нибудь осилит.
PS
сам пока отключил дефрагментацию.
Подскажите пожалуйста как посмотреть, что пишется в файл теневых копий.
Vadim Sterkin
Интересно, но очень сложно :)
vsddsoiw
Если сильно интересно могу помочь реализовать, но проверить не смогу у меня 850 EVO
Напишу для Ембаркадеро С++, код для генерации файла, надо будет вставить его в
OnClickButton и откомпилировать.
Vadim Sterkin
У меня нет свободных дисков для тестирования.
Михаил Обухов
Вадим, добрый день!
Обнаружил у себя (Win10 Pro x64) следующее:
Защита системы отключена в настройках. (Не помню, отключал ли её сам. Не должен был. Насколько я помню — на этой системе никаких таких настроек не делал. По идее она была отключена по умолчанию.)
История файлов отключена в настройках.
Резервное копирование отключено в настройках. Когда-то ставил veeam endpoint backup free, но потом снёс.
Глянул журнал — дефрагментация SSD раз в месяц, а скрытого раздела на SSD — итого чаще. Диск D заменил на SSD 14-го числа сего месяца, поэтому логи про него оставил после 14-го числа.
Вот логи, из которых убрал ненужное (и не касающееся HDD). Логи появляются с июня, хотя система установлена в марте и обновлена в апреле:
https://pastebin.com/hWMKKiMf
Я как-то неправильно понял разработчиков Windows? У меня не включено ничего похожего на защиту системы, но событие дефрагментации фиксируется.
Если надо, могу выполнить ваш скрипт из статьи.
Vadim Sterkin
Михаил, разработчики объясняли это почти три года назад. Возможно, в какой-то момент они передумали и решили, что дефрагментировать SSD надо в любом случае :) Мне проверить не на чем — я на инсайдерских сборках, да и защиту систему включаю всегда.
Пишите Хансельману в твиттер — мол, так и так, защита системы отключена, а дефраг есть :)