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

от admin

Стоит ли оптимизировать / дефрагментировать SSD?

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

Но тут возникает вопрос: Стоит ли оптимизировать свой SSD? Ответ немного сложнее, чем простое «да» или «нет». Итак, давайте углубимся в эту тему и узнаем, почему оптимизация или дефрагментация SSD может быть не очень хорошей идеей.

Почему не следует оптимизировать SSD

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

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

Стоит ли оптимизировать / дефрагментировать SSD?

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

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

Нужно ли дефрагментировать SSD?

Стоит ли оптимизировать / дефрагментировать SSD?

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

Из-за большого времени поиска на HDD предпочтительнее хранить фрагменты данных, принадлежащие одному файлу, последовательно. Дефрагментация — это процесс последовательного расположения разрозненных фрагментов данных, сокращающий время, необходимое для чтения одного полного файла.

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

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

Как Windows автоматически поддерживает SSD в здоровом состоянии

Стоит ли оптимизировать / дефрагментировать SSD?

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

5 лучших недорогих SSD в 2020-2022

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

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

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

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

Современные SSD прослужат долгие годы без вашего вмешательства

Стоит ли оптимизировать / дефрагментировать SSD?

Современные SSD рассчитаны на многолетнее использование. Samsung 850 EVO, например, имеет ограниченную гарантию 5 лет, а его ресурс составляет 300 ТБ. В сочетании со встроенными в Windows методами оптимизации SSD, такой высокий показатель выносливости гарантирует, что вы скорее всего обновите диск по собственному желанию, чем из-за сбоев в системе хранения данных.

Ещё один взгляд на вопрос «нужна ли дефрагментация для SSD»

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

Да, обычно такое не должно происходить: или мы пишем «понемногу» в мелкие файлы/небольшие блоки метаинформации ФС (скорость линейного чтения которых нас не особо волнует), либо же мы пишем «помногу» в большие файлы и всё будет хорошо. Бывает и дозапись мелкими блоками в большие файлы — логи, например, однако они относительно короткоживущие и особой проблемы я тут не вижу.
Но легко представился вполне реальный сценарий, при котором всё-таки внутренняя фрагментация SSD может проявиться: файл базы данных, в который идёт достаточно активная случайная запись. Со временем он (оставаясь нефрагментированным на уровне операционной системы) окажется физически очень даже фрагментированным, что может существенно снизить скорость seq scan, резервного копирования и т.п.

Для проверки я написал скрипт и провёл тесты.

Спойлер: проблема присутствует (существенно влияет на производительность) только на одной из попавшихся под руки моделей (и та позиционируется производителем не как datacenter, а как десктопная/ноутбучная).

Если в двух словах, SSD устроен очень непросто. В NAND flash можно писать (точнее стирать) только большими блоками. А операционная система видит SSD как набор 512-байтовых (или 4096-байтовых) секторов, каждый из которых может быть адресован независимо.
Чтобы как-то это совместить, придумана такая вещь, как FTL (flash translation layer): данные во flash-памяти лежат не последовательно, а (очень условно) в том порядке, в котором они были записаны, что-то вроде log-структурированных файловых систем.
Такие структуры очень хорошо обрабатывают случайную запись, превращая её в последовательную, но, увы, ничто не бывает бесплатно — в результате зачастую последовательное чтение превращается в случайное.

Алгоритмы, по которым работают FTL, закрыты, однако, насколько мы можем судить, у разных производителей они могут кардинально различаться. Соответственно, кардинально может различаться и поведение накопителей под нагрузкой.
Именно это мы и будет исследовать.

Идея скрипта: создаём файл на несколько гигабайт, заполненный случайными данными, замеряем скорость последовательного чтения.
Далее используя случайный доступ переписываем часть тестового файла и снова измеряем скорость линейного чтения. Если наши подозрения верны, то теперь чтение из файла будет идти медленнее.
После каждой записи делаем по три операции чтения с задержкой между ними на случай, если какой-то накопитель в фоне производит дефрагментацию и потом скорость чтения улучшится.

Не раз встречал обзоры, в которых запускают чтение с нового накопителя, получают какие-то фантастические цифры и, ничтоже сумняшеся, публикуют их. Через какое-то время тест повторяют уже на не столь девственном диске, и вдруг оказывается, что время доступа выросло, а скорость, соответственно, упала.
Дело в поддержке TRIM: контроллер внутри SSD может «знать», что в конкретном блоке нет полезных данных, информация об этом хранится в FTL. И при запросе на чтение из такого блока он не обращается к медленной NAND flash, а сразу возвращает нули. На новом накопителе все блоки помечены как неиспользуемые, соответственно, в тестах на чтение он готов ставить рекорды. Только нас же интересует с какой скоростью SSD умеет отдавать не нули, а данные.

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

Поэтому, перед тестированием стоит заполнять SSD несжимаемыми данными (в linux хорошим источником может служить /dev/urandom ).

тестовый файл создаётся в текущем каталоге.

тестировал только под linux c dash, coreutils и fio из debian buster, с другими дистрибутивами навряд ли будут проблемы, а вот под freebsd и другие операционные системы скорее всего скрипт придётся «допиливать».

Обнаружилось, что NVMe-накопители intel у меня сейчас только на серверах с windows; пришлось с помощью гугла, stackexchange и какой-то матери слепить вариант и под винду

Из внешних зависимостей только fio ; путь к exe-файлу и временному файлу указывается в первых строчках скрипта.

Получил следующие результаты:

  • фоновой дефрагментации в тестируемых моделях не обнаружено: скорость чтения не повышается через некоторое время после записи, в том числе длительный «отстой» (час и даже более суток) ничего не меняет, поэтому в таблице ниже привожу просто лучший результат из трёх запусков;
  • под windows почему-то время чтения менее стабильно и оказалось выше ожидаемого (впрочем, возможно, дело в том, что эти сервера оказались более нагружены);
  • продолжение записи сверх указанного в скрипте (перезапись файла более одного раза) не влияет на производительность.

Время чтения (в секундах) файла размером 4Гб для разных дисков:

Диск Первое чтение после последовательного заполнения файла После случайной записи 50Мб +200Мб +800Мб +4000Мб
intel S3510 SSDSC2BB480G6 10.7 10.7 10.8 10.8 10.8
toshiba XG5 KXG50ZNV512G 1.9 2.9 3.7 4.8 6.8
samsung PM963 MZQLW960HMJP 2.8 3.2 3.5 3.7 4.2
samsung PM983 MZQLB960HAJR 3.3 3.6 3.4 3.4 3.4
samsung PM981 MZVLB1T0HALR 1.8 1.8 2.1 2.5 3.5
samsung PM1725b MZPLL1T6HAJQ 1.8 1.9 2.0 2.3 2.9
micron 5200 eco 9.3 9.8 10.4 12.2 10.7
samsung PM883 MZ7LH1T9HMLT 7.9 7.9 8.1 8.1 8.0
intel P3520 (win) 5.8 5.9 6.0 6.1 5.8
intel P4500 (win) 4.2 4.2 4.3 4.4 4.3

Жирным отмечены DC модели (остальные — десктопные/ноутбучные); где SATA, а где NVMe, думаю, видно без пояснений.

Мы видим, что по мере случайной записи в файл у самсунга PM981 скорость чтения падала и в итоге упала вдвое (но осталась, правда, достаточно неплохой), а у единственной тошибы в таблице — вовсе в 3.5 раза, фактически сравнявшись с таковой у SATA устройств.
С другой стороны, у большинства устройств случайная запись или вовсе не повлияла на производительность, или повлияла незначительно.

Моя интерпретация этих результатов: скорость линейного чтения у SSD действительно может деградировать со временем, однако деградация, вызванная внутренней фрагментацией, не носит совсем уж фатального характера на большинстве дисков (на дисках intel, например, она вовсе незаметна; на дисках samsung если и заметна, всё равно скорость чтения остаётся вполне приемлемой).

Остаётся открытым вопрос деградирует ли скорость чтения со временем по другим причинам (например, из-за износа NAND flash).
Могу сказать про тошибу XG5: разницы в поведении между диском, на который по SMART было записано >>150Тб, и новым диском я не заметил ­— или 300-400 перезаписей недостаточно, чтобы износ flash стал заметен, или он вовсе не влияет на производительность SSD.

По поводу падения производительности после случайной записи: у меня как раз на такой тошибе хранится достаточно нагруженная БД mysql размером около 100Гб. Действительно, в полном соответствии с изложенными выше теорией и измерениями, скорость чтения «боевых» таблиц mysql оказалась достаточно низкой (около 600Мб/с), скорость же чтения других крупных файлов с той же файловой системы гораздо выше (>2Гб/с).

Если хочется побороть, то можно воспользоваться одним из первых методов дефрагментации: делаем бэкап, удаляем файлы, восстанавливаем из бэкапа. Недостаток этого метода в том, что он достаточно долгий и подразумевает downtime (а через некоторое время данные во флеш-памяти снова окажутся фрагментированными и всё придётся повторять сначала). Так что проще или смириться, или выбирать диски, которые не подвержены этой проблеме.
Придумал относительно быстрый способ избавиться от внутренней (и только от внутренней) фрагментации SSD:

Не должно приводить к потере данных, но я не тестировал на боевых системах, ничего не гарантирую!
Есть ещё одно «но»: я не уверен на 100%, что все SSD правильно обрабатывают ситуацию «пишем нули в область, для которой до этого делали TRIM» (то есть с точки зрения накопителя области ФС, на которые ранее делали TRIM, могут теперь считаться не свободными, а занятыми данными).
В целом, рекомендация « забить смириться или выбирать диски» остаётся в силе.

Резюме: дефрагментация может быть полезна для некоторых SSD, однако не совсем такая (совсем не такая?) как для HDD. Нам важно не только то, что файл расположен в непрерывной цепочке секторов, но и то, что запись в эти секторы шла последовательно.

5 вещей, которые не следует делать с твердотельными дисками SSD.

Jetway

Не следует выполнять дефрагментацию на твердотельных дисках. Диски SSD имеют ограниченное количество циклов записи — а дефрагментация выполняет множественные перезаписи при перемещении кусочков файлов.

Более того, после дефрагментации SSD вы не заметите никаких изменений в скорости работы. На механическом жестком диске дефрагментация полезна, поскольку уменьшает количество необходимых для считывания информации передвижений головки: на сильно фрагментированном HDD из-за значительного времени, необходимого на механический поиск фрагментов информации, компьютер может «тормозить» при операциях обращения к жесткому диску.

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

Не используйте Windows XP, Vista и не отключайте TRIM.

Если на вашем компьютере установлен SSD, следует использовать современную операционную систему. В частности, не нужно использовать Windows XP или Windows Vista. Обе эти ОС не поддерживают команду TRIM. Таким образом, когда вы удаляете файл в старой операционной системе, она не может послать данную команду твердотельному диску и, таким образом, данные остаются на нем.

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

Не заполняйте SSD полностью.

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

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

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

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

Тести показывают, что следует использовать около 75% емкости SSD для идеального баланса между производительностью и количеством хранимой информации. Таким образом, на 128 Гб SSD оставляйте 28 Гб свободными и по аналогии для твердотельных дисков большего объема.

Ограничьте запись на SSD.

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

Не храните большие файлы, к которым не нужен быстрый доступ на SSD.

Это достаточно очевидный пункт. Твердотельные диски SSD меньше по объему и более дорогие, чем обычные жесткие диски. При этом они обеспечивают большую скорость, меньшее потребление энергии и шум при работе.

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

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

Дефрагментация SSD, нужна ли она?

«Дефрагментируйте ваш жесткий диск» — это главный совет для проблем производительности ПК, поскольку командная строка была стандартным интерфейсом для домашних компьютеров. Это метод, предназначенный для повышения производительности традиционных механических жестких дисков, но нужно ли дефрагментировать SSD?

Эти новые твердотельные диски работают по совершенно иному принципу, чем механические приводы, так есть ли еще причина для этого? Что еще более важно, может ли это быть на самом деле плохо для вашего SSD?

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

Какой смысл дефрагментации?

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

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

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

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

Почему механические приводы (теоретически) нуждаются в хорошей дефрагментации

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

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

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

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

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

Вам нужно дефрагментировать SSD?

Со всей этой преамбулой мы переходим к основному вопросу — нужно ли дефрагментировать SSD? Краткий ответ: нет. Есть две основные причины. Первый связан с отсутствием выигрыша в производительности, что, в конце концов, и заключается в дефрагментации. Вторая причина связана со здоровьем вашего SSD. Оказывается, дефрагментация SSD может сократить срок его службы.

Производительность и дефрагментация SSD

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

По своей природе SSD не имеют этой проблемы. У них нет механических частей вообще. Они хранят информацию внутри микросхем памяти, которые считываются в электронном виде.

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

SSD износ и слезы

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

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

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

TRIM и оптимизация: отправка дефрагментации в мусорную корзину

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

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

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

Читать:
Crt secure no warnings c как подключить

Похожие статьи