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

Содержание

ava.jpg

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

Технические особенности процедуры

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

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

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

disk1.jpg

Преимущества дефрагментации жесткого диска

  • Соединение данных в общую систему. Если ПК предназначен для масштабной работы с файлами, процедура поможет лучше рассортировать информацию по кластерам винчестера. Сбор одиночных элементов в единую систему улучшает работу с данными. Обработка, ввод и вывод информации осуществляется гораздо быстрее.
  • Скорость считывания. Если все отдельно стоящие фрагменты собрать воедино, системе будет легче найти необходимую информацию. Процесс поиска проходит быстро даже при отсутствии должного обслуживания (стандартный пользователь не обращает внимание на время выполнения задачи). Однако после дефрагментации будет заметное увеличение скорости, что особенно необходимо для мощных ПК.
  • Функциональность. Работа компьютера зависит от функциональности всех комплектующих. Если считывание информации с кластеров проходит быстро, другие системы работают эффективнее. Загрузка комплектующих и самого компьютера осуществляется лучше.
  • Экономия памяти. Так как все общие элементы собираются в полноценную систему, освобождаются кластеры винчестера. Пользователь может записать дополнительные файлы, и для этого не придется покупать дополнительное устройство хранения.
  • Износ головки жесткого диска. Главный недостаток винчестера — наличие подвижного механизма. Считывающая головка двигается по кластерам, обрабатывая информацию. Если сократить время поиска данных, функция чтения, также, будет проходить быстрее, что увеличит срок эксплуатации головки винчестера.
  • Доступность. Для дефрагментации, пользователю не нужно отдавать устройство в руки специалиста. Процедуру можно провести самостоятельно. В Интернете есть широкий выбор программ, которые способны выполнить упорядочивание файлов в кластерах. Владелец ПК может быстро и бесплатно улучшить функциональность устройства. Однако эффективность процесса зависит от качества программы. На данный момент, скриптов огромное множество, но не все они обладают необходимой мощностью.

Возможный вред от дефрагментации

  • Нагрузка на жесткий диск. Дефрагментация — это принудительное изменение работы устройства. При регулярном проведении процедуры, происходит чрезмерная нагрузка на винчестер, что приводит к поломке и выходу из эксплуатации. Процесс необходимо осуществлять периодически, в зависимости от степени нагрузки. Если наблюдается медленная работа, можно провести упорядочивание.
  • Восстановление данных. Иногда, пользователю необходимо восстановить удаленные сведения. Это возможно при сбое или изменении технической ситуации. Вернуть утраченную информацию можно только с того диска, который не подвергался упорядочиванию. В противном случае, восстановить сведения невозможно.
  • Повреждение или потеря файлов. После проведения упорядочивания, особенно при регулярном использовании процедуры, возрастает риск частичной или полной потери некоторых данных. Восстановить утраченные сведения невозможно.
  • Лишняя нагрузка. Процедура подходит пользователям, которые активно работают с файлами. Если информация записана на небольшом количестве фрагментов, дефрагментация бессмысленна — это только вызовет чрезмерную нагрузку. Также, если обращение к файлам осуществляется редко или минимально (видеозаписи, аудиозаписи и пр.), процедура не требуется. Проводить упорядочивание нужно при необходимости.
  • Перезапись. Постоянные процедуры над кластерами (удаление старых файлов, запись новой информации) снижают срок службы элементов. Множественная перезапись ведет к потере данных.

Стоит ли проводить дефрагментацию жесткого диска?

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

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

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

Если после процесса слышен шум, заметно торможение работы, необходимо отдать компьютер специалисту.

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

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

Если вы используете Windows и твердотельный диск SSD

Реклама

При условии, что вы используете SSD на компьютере с Windows — вам не нужно использовать дефрагментацию диска во избежание быстрого износа твердотельного накопителя. На скорость работы дефрагментация SSD также никак не повлияет. Windows 7 и Windows 8 отключают дефрагментацию для дисков SSD (имеется в виду автоматическая дефрагментация, о чем будет ниже). Если же у вас Windows XP и SSD, то прежде всего можно рекомендовать обновить операционную систему и, так или иначе, не запускать дефрагментацию вручную. Подробнее: вещи, которых не нужно делать с SSD.

Если у вас Windows 7, 8 или 8.1

В последних версиях операционных систем от Microsoft — Windows 7, Windows 8 и Windows 8.1, дефрагментация жесткого диска запускается автоматически. В Windows 8 и 8.1 она происходит в произвольное время, во время простоя компьютера. В Windows 7, если вы зайдете в параметры дефрагментации, то скорее всего увидите, что она будет запускаться каждую среду в 1 час ночи.

Таким образом, в Windows 8 и 8.1 вероятность того, что вам потребуется ручная дефрагментация маловероятна. В Windows 7 такое может быть, особенно, если поработав за компьютером вы сразу выключаете его и включаете каждый раз, когда вам снова требуется что-то сделать. Вообще, частое включение и выключение ПК — плохая практика, которая может привести к проблемам с большей вероятностью, чем круглосуточно включенный компьютер. Но это тема отдельной статьи.

Дефрагментация в Windows XP

А вот в Windows XP автоматическая дефрагментация отсутствует, что и не удивительно — операционной системе более 10 лет. Таким образом, дефрагментацию придется регулярно выполнять вручную. Насколько регулярно? Это зависит от того, сколько данных вы скачиваете, создаете, переписываете туда-сюда и удаляете. Если ежедневно устанавливаются и удаляются игры и программы, можно запускать дефрагментацию раз в неделю — две. Если же вся работа заключается в использовании Word и Excel, а также просиживании в контакте и одноклассниках, то достаточно будет и ежемесячной дефрагментации.

Кроме этого, вы можете настроить и автоматическую дефрагментацию в Windows XP с помощью планировщика задач. Только она будет менее «интеллектуальна» чем в Windows 8 и 7 — если в современных ОС дефрагментация будет «дожидаться», когда вы не будете работать на компьютере, то в XP будет запущена независимо от этого.

Нужно ли использовать сторонние программы для дефрагментации жесткого диска?

Эта статья будет неполной, если не упомянуть программы для дефрагментации диска. Есть большое количество таких программ, как платных, так и тех, которые можно скачать бесплатно. Лично я не проводил таких тестов, однако поиск в Интернете не дал четкой информации о том, эффективнее ли они встроенной в Windows утилиты для дефрагментации. Можно отметить лишь некоторые возможные преимущества таких программ:

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

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

Бесплатная программа для дефрагментации диска Defraggler

На всякий случай, включу в эту статью и краткую отсылку к одной из лучших бесплатных программ для дефрагментации диска — Defraggler. Разработчик программы — компания Piriform, которая может быть вам известна по своим продуктам CCleaner и Recuva. Скачать бесплатно Defraggler вы можете с официального сайта http://www.piriform.com/defraggler/download. Работает программа со всеми современными версиями Windows (начиная с 2000), 32-х и 64-х разрядными.

Установка программы довольно-таки проста, в параметрах установки вы можете настроить некоторые параметры, например — подмена стандартной утилиты дефрагментации Windows, а также добавление Defragler в контекстное меню дисков. Все это на русском языке, если этот фактор является важным для вас. В остальном, использование бесплатной программы Defragler интуитивно понятно и выполнить дефрагментацию или анализ диска не составит никаких проблем.

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

Как сделать дефрагментацию встроенными средствами Windows

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

  1. Откройте «Мой компьютер» или Проводник Windows.
  2. Кликните правой кнопкой мыши по диску, который нужно дефрагментировать и выберите «Свойства». 
  3. Выберите вкладку «Сервис» и нажмите кнопку «Дефрагментировать» или «Оптимизировать», в зависимости от того, какая у Вас версия Windows.

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

Дефрагментация диска в Windows с помощью командной строки

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

Microsoft Windows [Version 6.3.9600] (c) Корпорация Майкрософт (Microsoft Corporation), 2013. Все права защищены.  C:WINDOWSsystem32>defrag Оптимизация диска (Майкрософт) (c) Корпорация Майкрософт (Microsoft Corporation), 2013.  Описание:          Служит для оптимизации и объединения фрагментированных файлов на локальн ых томах         в целях повышения производительности системы.  Синтаксис          defrag <тома> | /C | /E <тома> [<задачи>] [/H] [/M | [/U] [/V]]          где <задачи> или не указываются (обычная дефрагментация), или указываютс я следующим образом:                 /A | [/D] [/K] [/L] | /O | /X          Или, чтобы отследить операцию, которая уже выполняется на томе:         defrag <том> /T  Параметры          Значение        Описание          /A      Анализ указанных томов.          /C      Выполнение операции для всех томов.          /D      Стандартная дефрагментация (по умолчанию).          /E      Выполнение операции для всех томов, за исключением указанных.          /H      Запуск операции с обычным приоритетом (по умолчанию с низким).          /K      Оптимизация памяти на выбранных томах.          /L      Повторная оптимизация выбранных томов.          /M      Запуск операции одновременно на каждом томе в фоновом режиме.          /O      Оптимизация с использованием соответствующего типу носителя мето да.          /T      Отслеживание операции, которая уже выполняется на указанном томе .          /U      Отображение хода выполнения операции на экране.          /V      Вывод подробных данных статистики фрагментации.          /X      Объединение свободного пространства на указанных томах.  Примеры:          defrag C: /U /V         defrag C: D: /M         defrag C:точка_подключения /A /U         defrag /C /H /V  C:WINDOWSsystem32>defrag C: /A Оптимизация диска (Майкрософт) (c) Корпорация Майкрософт (Microsoft Corporation), 2013.  Вызов анализ на (C:)...  Операция успешно завершена.  Post Defragmentation Report:          Сведения о томе:                 Размер тома                 = 455,42 ГБ                 Свободное место                  = 262,55 ГБ                 Общий объем фрагментированного пространства      = 3%                 Максимальный размер свободного места     = 174,79 ГБ          Примечание. В статистику фрагментации не включаются фрагменты файлов, ра змер которых превышает 64 МБ.          Дефрагментация этого тома не требуется.  C:WINDOWSsystem32>

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

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

Что такое дефрагментация диска

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

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

Почему происходит фрагментация HDD

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

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

Как фрагментация влияет на скорость работы накопителя

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

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

Дефрагментация — процесс перестановки кусочков одного файла так, чтобы снизился общий процент фрагментации, и все файлы (по возможности) располагались на соседних секторах. Благодаря этому считывание будет происходить непрерывно, что положительно скажется на скорости работы HDD. Это особенно заметно при чтении объемных файлов.

Есть ли смысл использовать сторонние программы для дефрагментации

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

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

  • Собственные настройки автодефрагментации. Пользователь может более гибко управлять расписанием процедуры;
  • Иные алгоритмы проведения процесса. У стороннего ПО есть свои особенности, более выгодные в конечном итоге. Например, они требуют меньше процентов свободного места на HDD для запуска дефрагментатора. Параллельно осуществляется оптимизация файлов, повышающая их скорость загрузки. Также происходит объединение свободного пространства тома, чтобы в дальнейшем уровень фрагментации повышался медленнее;
  • Дополнительные возможности, к примеру, дефрагментация реестра.

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

Обязательно ли проводить постоянную дефрагментацию диска

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

Современные HDD имеют более высокую скорость работы, а новые версии операционных систем стали гораздо «умнее», поэтому даже с определенным процессом фрагментации пользователь может не замечать снижения скорости работы. И если используется винчестер с большим объемом (1 ТБ и выше), то система может распределить тяжелые файлы оптимальным для нее образом так, что это не отразится на производительности.

Кроме того, постоянный запуск дефрагментатора сокращает срок службы диска — это немаловажный минус, который стоит брать во внимание.

Поскольку по умолчанию в Windows дефрагментация включена, то ее необходимо отключать вручную:

  1. Зайдите в «Этот компьютер», нажмите правой кнопкой по диску и выберите «Свойства».
  2. Переключитесь на вкладку «Сервис» и нажмите на кнопку «Оптимизировать».
  3. В окне нажмите на кнопку «Изменить параметры».
  4. Снимите галочку с пункта «Выполнять по расписанию (рекомендуется)» и нажмите на «ОК».

Нужна ли дефрагментация SSD диска

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

Особенности дефрагментации

Есть несколько нюансов для качественного проведения этой процедуры:

  • Несмотря на то, что дефрагментаторы умеют работать в фоновом режиме, для достижения наилучшего результата запускать их лучше всего при отсутствии активности со стороны пользователя, либо при ее минимальном количестве (например, в перерыв или при прослушивании музыки);
  • При проведении периодической дефрагментации правильнее пользоваться быстрыми методами, ускоряющими доступ к основным файлам и документам, однако определенная часть файлов при этом не будет обработана. Полную процедуру в этом случае можно делать реже;
  • Перед полной дефрагментацией рекомендуется удалить мусорные файлы, и, по возможности, исключить из обработки файлы pagefile.sys и hiberfil.sys. Эти два файла используются как временные и пересоздаются вместе с каждым запуском системы;
  • Если в программе есть возможность дефрагментации файловой таблицы (MFT) и системных файлов, то не стоит ей пренебрегать. Как правило, такая функция недоступна при запущенной операционной системе, и может быть осуществлена после перезагрузки перед стартом Windows.

Как проводить дефрагментацию

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

На нашем сайте уже есть инструкция по проведению дефрагментации на примере Windows 7. В ней вы найдете руководство по работе с популярными программами и стандартной Windows-утилитой.

Подробнее: Способы дефрагментации диска на Windows

Подводя итоги вышесказанного, мы советуем:

  1. Не дефрагментировать твердотельный накопитель (SSD).
  2. Отключить запуск дефрагментации по расписанию в Windows.
  3. Не злоупотреблять этим процессом.
  4. Сперва делать анализ и выяснять, есть ли необходимость в выполнении дефрагментации.
  5. По возможности пользоваться качественными программами, чья эффективность выше встроенной Windows-утилиты.

Мы рады, что смогли помочь Вам в решении проблемы.Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Хранение данныхКомпьютерное железо

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

Со временем любой SSD всё равно сильно фрагментируется (внутри, в FTL)… Свежезаписанный SSD при линейном чтении даст высокую скорость, а уже поработавший — гораздо ниже, потому что линейными оно будет только для вас.

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

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

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

Про что тут вообще речь? Какая ещё фрагментация внутри SSD?

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

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

Немного о том, почему нужно заполнять SSD перед тестированием

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

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

шелловский скрипт

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

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

echo preparing... dd if=/dev/urandom of=testfile bs=1M count=4096 status=none sync for A in 1 2 3; do     sleep 10     dd if=testfile of=/dev/null bs=1M iflag=direct done  for A in 50 200 800 4000; do     echo fio: write ${A}M...     fio --name=test1 --filename=testfile --bs=4k --iodepth=1 --numjobs=1  --rw=randwrite  --io_size=${A}M --randrepeat=0 --direct=1 --size=4096M > /dev/null     sync      for B in 1 2 3; do         echo sleep ${B}0         sleep ${B}0         dd if=testfile of=/dev/null bs=1M iflag=direct     done done  echo sleep 3600 sleep 3600 dd if=testfile of=/dev/null bs=1M iflag=direct

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

вариант на ps

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

$testfile = "c:temptestfile" $fio = "c:tempfio-3.18-x64fio"  echo "preparing..."  $filestream = New-Object System.IO.FileStream($testfile, "Create") $binarywriter = New-Object System.IO.BinaryWriter($filestream) $out = new-object byte[] 1048576  For ($i=1; $i -le 4096; $i++) {     (new-object Random).NextBytes($out);     $binarywriter.write($out) } $binarywriter.Close()  For ($i=1; $i -le 3; $i++) {     sleep 10     $time = Measure-Command {         Invoke-Expression "$fio --name=test1 --filename=$testfile --bs=1M --iodepth=1 --numjobs=1  --rw=read --direct=1 --size=4096M" *>$null     }      $seconds = $time.Minutes*60+$time.Seconds+$time.Milliseconds/1000     echo "read in $seconds" }  foreach ($A in 50,200,800,4000) {     echo "fio: write ${A}M..."     Invoke-Expression "$fio --name=test1 --filename=$testfile --bs=4k --iodepth=1 --numjobs=1  --rw=randwrite  --io_size=${A}M --randrepeat=0 --direct=1 --size=4096M" *>$null     For ($i=10; $i -le 30; $i+=10) {         echo "sleep $i"         sleep $i         $time = Measure-Command {             Invoke-Expression "$fio --name=test1 --filename=$testfile --bs=1M --iodepth=1 --numjobs=1  --rw=read --direct=1 --size=4096M" *>$null         }          $seconds = $time.Minutes*60+$time.Seconds+$time.Milliseconds/1000         echo "read in $seconds"     } }  rm $testfile

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

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

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

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

Как бороться с внутренней фрагментацией SSD

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

sync fsfreeze -f /mountpoint dd  if=/dev/nvme0n1p2 of=/dev/nvme0n1p2 bs=512M iflag=direct oflag=direct status=progress fsfreeze -u /mountpoint

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

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

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

Опубликовано: 25 января 2017

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

Я составил перечень этих мероприятий и третьим пунктом в них идет дефрагментация жесткого диска.

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

Влияние дефрагментации

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

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

Дефрагментация средствами Windows

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

дефрагментация_диска_01.png

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

дефрагментация_диска_02.png

Нужна ли программа для дефрагментации?

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

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

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

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

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

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

дефрагментация_диска_04.jpeg

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

Итоги

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

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

Не упустите возможность сделать доброе дело:

нажмите на кнопку социальной сети, в которой вы зарегистрированы, чтобы другие люди тоже получили пользу от этого материала. СПАСИБО!

Используемые источники:

  • https://plusiminusi.ru/stoit-li-delat-defragmentaciyu-diska/
  • https://remontka.pro/defragmentation-windows/
  • https://lumpics.ru/hdd-defragmentation-analyze-process/
  • https://m.habr.com/ru/post/494614/
  • https://pcsecrets.ru/os/defragmentaciya-nuzhna-ili-net.html

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
7th-studio.ru
Добавить комментарий