Дефрагментация SSD

22 June 2019

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

SSD-накопитель
SSD-накопитель

Фрагментирование на "обычных" HDD-винчестерах - древняя проблема, которая успешно (хотя и зубодробительно долго) решается дефрагментацией. При работе системы, летящий на диск файл записывается, как придётся; если на диске мало места или он уже весь "в дырках" от удаления предыдущих файлов - новый файл разбивается на фрагменты. Иногда на целую кучу фрагментов, которые лежат в совершенно разных областях магнитного диска(ов) у HDD. Результатом является увеличенное время чтения файла, ведь винчестеру надо "попрыгать" головками туда-сюда, чтобы "собрать" файл. А так как файлов в типичной системе десятки и сотни тысяч - при долгой работе без дефрагментации скорость работы со временем будет ощутимо деградировать. Дефрагментация "собирает" фрагменты файла в единый кусок, да ещё и располагает некоторые файлы поближе друг к другу (особенно хорошо это работает для системных файлов, ответственных за загрузку - она становится ощутимо быстрее).

У SSD-дисков нет никаких головок и магнитных "блинов". Доступ к любой ячейке - мгновенный. Без разницы, на сколько фрагментов разбит файл - диск выдаст его практически так же быстро, как и "нефрагментированный". Более того, в SSD встроен целый контроллер, который занимается тем, что оптимизирует запись в ячейки так, чтобы они (по возможности) равномерно использовались. Исходя из этого, вопрос "дефрагментировать ли SSD-диск", вроде бы, не стоит. Однако, есть некоторые мысли о том, что иногда дефрагментировать SSD можно (сразу скажу, мысли - не мои, но рациональное зерно в них есть).

Дело в том, что, львиная доля файлов на диске, скорее всего, будет записана "раз и навсегда". В то время как некоторая часть будет постоянно перезаписываться, удаляться и т.п. С перезаписываемой информацией нет проблем, а вот "постоянная" находится в одних и тех же ячейках SSD. И эти ячейки никак не используются в парадигме "равномерной записи": они постоянно заняты и не перезаписываются. К чему, в сущности, приведёт дефрагментация SSD? К конкретной "перетасовке" всех данных в ячейках. И вот, есть мысль, что таким образом мы "поможем" SSD более равномерно использовать ячейки.

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

Оригинал статьи на saanvi.ru