Как проверить или включить SSD TRIM

Spacer
Поделитесь этим сайтом с друзьями!

Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354.

Или на телефон +7(928)274-0281.

Даже небольшая сумма может помочь написанию новых статей :)

Или поделитесь ссылкой на эту статью со своими друзьями.

Опубликовано: Последнее обновление этой статьи:

В этой статье описание ATA команды TRIM, которая используется для повышения скорости записи на SSD диски.

Использование ATA команды TRIM, не во всех случаях происходит автоматически, в некоторых ситуациях выполнение этой команды со стороны ОС необходимо включать явным образом.

Для начала нужно убедиться в том, что ваш SSD диск поддерживает эту команду. Впрочем, все новые диски ее поддерживают. Сделать такую проверку можно любой современной программой по работе с дисками. Например в Linux это можно сделать при помощи консольной команды:

hdparm -I /dev/sda | grep -i trim

Где sda ваш SSD диск. Вывод команды должен содержать строку "TRIM supported".

Оглавление

 

Как работает TRIM

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

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

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

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

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

 

Когда TRIM не работает!

  • Функция TRIM не работает если SSD диск подключен через USB.
  • Функция TRIM не работает для разделов c файловой системой FAT32.
  • Функция TRIM не работает еще для большого количества файловых систем (например Ext2).
  • Функция TRIM не работает, когда вы удаляете раздел целиком, даже если файловая система поддерживает TRIM, и эта опция включена.

 

Когда TRIM должен работать

  • Linux с ядром начиная от 2.6.33 и файловая система Ext4.
  • Windows 7, 8 и 10 и файловая система NTFS.
  • Mac OS X начиная с версии с 10.6.6 (но для этой версии нужно устанавливать обновление).

В любом из этих вариантов команда TRIM отправляется только после удаления файлов. Или отдельно, принудительно для всего свободного места, если ОС поддерживает такой вариант.

 

Включение TRIM в Linux

Примечание. В Ubuntu, начиная с версии 14.04, ничего дополнительно делать не нужно. Все работает из коробки.

Во-первых для использования TRIM, необходимо, чтобы файловая система была ext4.

Во-вторых включение команды TRIM указывается в опции монтирования для раздела ext4 в файле fstab. Конкретно это опция discard.

Кроме этого, для раздела на SSD диске можно добавить опции noatime (или realtime) и nodiratime - это снижение нагрузки  по записи, не будут обновляться даты доступа к файлам и папкам.

Также можно добавить опцию commit и указать значение допустим 60 секунд - отложенные операции записи будут выполняться на раздел раз в 60 секунд. Но эту опцию можно добавлять только в том случае если у вас есть UPS (ИБП), или на ноутбуке!

Таким образом примерная строка fstab может выглядеть таким образом:

UUID=aeade6fd-2b24-4e59-bc8c / ext4 noatime,discard,errors=remount-ro,commit=60 0 1

В Linux можно выполнить команду TRIM и вручную:

sudo fstrim / -v

В этом примере команда применяется к корневой файловой системе. Если есть несколько разделов ext4, тогда такую команду нужно выполнить для каждого такого раздела.

 

Проверка и включение TRIM на Windows 7, 8 или 10

Сначала нужно открыть консоль ("Командная строка") с правами администратора. Меню Пуск - Программы - Стандартные - Командная строка. Правая кнопка мыши - Запустить от имени Администратора.

Далее в консоли выполнить команду:

fsutil behavior query disabledeletenotify

Если вывод команды будет - disabledeletenotify=1, значит команда TRIM отключена. Включить ее можно командой:

fsutil behavior set disabledeletenotify 0

Не перепутайте! Ноль - TRIM включен, единица - TRIM выключен.

 

Как выполнить TRIM на разделе NTFS

Если у вас операционная система Windows 7, 8 или 10, тогда можно ничего не делать. Достаточно проверить включена для функция TRIM. Далее Windows будет автоматически отправлять команду TRIM при следующих операциях с диском:

  • Удаление файла(ов).
  • Быстрое форматирование раздела (диска) NTFS.

В Windows 8 и 10 можно вручную дать команду TRIM для целого раздела (диска) NTFS. В свойствах диска, на вкладке "Сервис" нужно открыть Оптимизатор дисков. Это новое название дефрагментатора Windows.

В Оптимизаторе дисков для разделов NTFS на SSD диске будет доступна команда "Оптимизировать диск". Выполнение этой команды приводит к тому, что Windows отправляет SSD диску команду TRIM для всех свободных блоков на этом диске. То есть выполняется "тримизация" всего свободного пространства на разделе (диске) NTFS.

В Windows 7, 8 и 10 можно сделать "тримизацию" всего раздела (диска) NTFS. Для этого нужно выполнить быстрое форматирование этого раздела (диска). Однако важно понимать, что это уничтожит все данные на разделе.

В последних (2015, 2016 годы) версиях драйвера ntfs-3g (драйвер ntfs для линукс) добавлена функция TRIM. Теперь можно "тримизировать" раздел NTFS из Linux. Команда в терминале:

fstrim -v /media/ntfs/

где /media/ntfs/ примонтированный раздел NTFS.

 

Как выполнить TRIM на Windows XP и Vista

Ни Windows XP, ни Vista не поддерживают функцию TRIM. Если нужно "тримизировать" SSD диск, который используется в этих ОС, тогда есть следующие варианты:

  • Программа производителя SSD диска. Если такая есть.
  • Подключить этот диск на другой компьютер, где установлена Windows 8 или 10. И через Оптимизатор дисков выполнить оптимизацию NTFS разделов на этом диске. Важно! Диск нужно подключать через SATA, а не через USB. Подробно об этом в разделе "TRIM на NTFS".
  • Загрузить компьютер с флешки со свежим дистрибутивом Linux (2016 года или позднее). Примонтировать разделы NTFS и выполнить команду fstrim. Подробно об этом в разделе "TRIM на NTFS".

 

Что такое TRIM (сбор мусора)

У SSD дисков есть важное отличие от HDD которое влияет на скорость записи. В HDD запись выполняется "поверх" старых данных. Блоки диска, которые ранее содержали данные, а затем эти данные были удалены, просто помечаются как свободные. И когда нужно выполнять запись,  контроллер HDD сразу пишет в эти свободные блоки.

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

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

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

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

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

Использование этой команды позволяет вернуть полную скорость записи для повторно используемых блоков флэш-памяти. Однако не все ОС поддерживают эту команду. А только относительно свежие версии:

  • Ядро Linux начиная с версии 2.6.33.
  • Windows 7, 8 и 10
  • Mac OS X начиная с версии с 10.6.6 (но для этой версии нужно устанавливать обновление).

До сих пор популярная WIndows XP (как и Vista) не поддерживают эту команду.

Обходной вариант для старых ОС, заключается в использовании, сторонних программ. Например это может быть программа hdparm (версии 9.17 и выше) или фирменные программы производителя SSD диска, например Intel SSD Toolbox.

Есть две модели SSD дисков у которых деградация скорости повторно используемых блоков выражена слабее чем у других:

  • Plextor M5 pro (снята с производства).
  • Plextor M5S (снята с производства).
  • Intel 545s
  • Samsung 860 EVO

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

В 2019 многие модели SSD дисков умеют самостоятельно "собирать мусор". Точнее по конкретной модели можно узнать почитав обзоры тестов. В серьезных Интернет-изданиях, среди прочих тестов, делают и тест на способность диска самостоятельно выполнять очистку блоков.

Команда TRIM может не работать если SATA контроллер материнской платы был установлен в режим IDE (для совместимости со старой ОС или программой).

Команда TRIM чаще всего отключается при использовании RAID массива.

 

Восстановление удаленных данных

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

 

Влияние TRIM на скорость записи

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

Иначе говоря, скорость записи зависит от количества свободного места на диске. Если у вас диск почти полностью заполнен, то скорость записи упадет даже если вы используете TRIM. И наоборот, если у вас 20-30% емкости диска оставлены без разметки (unallocated disk space), тогда можно обойтись и без использования TRIM. Контроллер диска будет использовать неиспользуемую под разделы емкость для выравнивания скорости записи.

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

Если вы хотите зарезервировать свободное место на полностью размеченном SSD диске, тогда нужно выполнить принудительную команду ТРИМ для всего раздела и только после этого удалять раздел (или уменьшать его размер).

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

Функция TRIM действительно даст возможность поддерживать высокую скорость записи только при двух условиях:

  1. Под разделы выделена вся емкость SSD диска.
  2. Радел(ы) с файловой системой не заполнены более чем на 70-80% от своего размера.
Поделитесь этим сайтом с друзьями!

Если вам оказалась полезна или просто понравилась эта статья, тогда не стесняйтесь - поддержите материально автора. Это легко сделать закинув денежек на Yoomoney № 410011416229354.

Или на телефон +7(928)274-0281.

Даже небольшая сумма может помочь написанию новых статей :)

Или поделитесь ссылкой на эту статью со своими друзьями.

Сопутствующие статьи:

  Copyright digital.workshop 1999 - 2021.  
Это произведение доступно по лицензии Creative Commons Attribution-NoDerivs 3.0.
Developed by digital.workshop